——Iš DWIN kūrėjų forumo
DWIN forumo rekomenduotas apdovanojimus pelnęs atvirojo kodo dėklas gali būti naudojamas statybų pramonėje cemento komponentų kiekiui aptikti – cemento kelių kiekių matavimo priemonė, pagrįsta T5L išmaniuoju ekranu. Inžinieriai naudoja T5L išmanųjį ekraną, kad valdytų elektroninį svorio aptikimo modulį, temperatūros matavimo modulį, šildymo modulį, drėgmės jutiklį ir maišymo modulį, kad būtų galima aptikti kieto tirpalo ir skysto cemento komponentų turinį ir palaikyti greičio rodymą realiuoju laiku, temperatūros nustatymas, istorijos įrašas, Stage parametrų nustatymas ir kitos funkcijos.
1. Programos struktūra
![acdsb (1)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb534d9587236.jpg)
2.UI medžiagos ekranas
![acdsb (2)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb6b626488123.jpg)
![acdsb (4)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb84270f77694.jpg)
![acdsb (3)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb975b6581165.jpg)
![acdsb (5)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bbaf20a513069.jpg)
3.UI kūrimo pavyzdys
![acdsb (6)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bbc7a0f429134.jpg)
4.C51 programinės įrangos projektavimas
Inicializacijos komandų programa, skirta inžinieriui susisiekti su valdymo plokšte naudojant T5L 2 nuoseklųjį prievadą, yra tokia:
void app_init()
{
is_testing = 0;
bandymo_paleidimo laikas = 0;
is_sec = 0;
periodas1 = 0;
yra_periodas1 = 0;
uart2_init(115200);
send_bytes("AT+INIT=0\r\n",dydis("AT+INIT=0\r\n")-1);
sys_delay_ms(2500);
sys_pic(1);
send_bytes("AT+START\r\n",dydis("AT+START\r\n")-1);
}
Pagrindinė T5L išmaniojo ekrano, sąveikaujančio su valdymo plokšte, programa, skirta cemento sudėties aptikimo funkcijai, yra tokia:
void btn_click_handler()
{
#define BTN_VAL_ADDR 0x1000
u16 btn_val;
if(yra_testing&&y_sec)
{
is_sec = 0;
test_run_time++;
btn_val = sprintf(commbuff,"%02u:%02u",(u16)(bandymo_paleidimo_laikas/60),(u16)(bandymo_paleidimo_laikas%60));
commbuff[btn_val+1] = 0;
sys_write_vp(TEST_TIME_VP,commbuff,5);
if(uart2rxsta&UART2_PACKET_OK)
{
if(uart2buf[0]==0x01&&uart2buf[1]==0x02)
{
pradinis_svoris = *(float*)(uart2buf+2);
init_weight *= (*(float*)flashdat);
sys_write_vp(0x1178, (u8*)&init_weight, 2);
}else if(uart2buf[0]==0x02&&uart2buf[1]==0x05)
{
init_ml = *(float*)(uart2buf+2);
init_ml /= (*(float*)flashdat+20);
sys_write_vp(0x1180, (u8*)&init_ml, 2);
}else if(uart2buf[0]==0x03&&uart2buf[1]==0x07)
{
speed_val = *(plaukioti*)(uart2buf+2);
disp_val += (speed_val*2.45f);
sys_write_vp(0x1180, (u8*)&disp_val, 2);
}else if(uart2buf[0]==0x04)
{
bendras_skaičius = uart2buf[1]*256+uart2buf[2];
}else if(uart2buf[0]==0x05)
{
is_en_tmp = uart2buf[2];
}
uart2rxsta = 0;
}
}
if(yra_period1)
{
yra_periodas1 = 0;
t_sample();
if(yra_testing&&is_en_tmp)
sys_write_vp(0x1170,(u8*)&tmp,2);
}
if(is_btn_scan==0)
grąžinti;
is_btn_scan = 0;
sys_read_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
if(btn_val==0)
grąžinti;
if(btn_val
start_win_btn_click_handler(btn_val);
btn_val = 0;
sys_write_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
}
Norėdami sužinoti daugiau, žr. šaltinio kodą.
Paskelbimo laikas: 2023-02-02