——No DWIN izstrādātāju foruma
DWIN foruma ieteikto godalgoto atvērtā koda korpusu var izmantot būvniecības nozarē, lai noteiktu cementa komponentu saturu - cementa daudzu daudzumu mērinstrumentu, kura pamatā ir T5L viedais ekrāns. Inženieri izmanto T5L viedo ekrānu, lai kontrolētu elektronisko svara noteikšanas moduli, temperatūras mērīšanas moduli, sildīšanas moduli, mitruma sensoru un sajaukšanas moduli, lai realizētu cietā šķīduma un šķidrā cementa komponentu satura noteikšanas funkciju un atbalstītu ātruma reāllaika displeju, temperatūras iestatīšana, vēstures ieraksts, Stage parametru iestatīšana un citas funkcijas.
1. Programmas struktūra
![acdsb (1)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb534d9587236.jpg)
2. UI materiāla displejs
![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 izstrādes piemērs
![acdsb (6)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bbc7a0f429134.jpg)
4.C51 programmatūras projektēšana
Inicializācijas komandu programma inženierim, lai sazinātos ar vadības paneli, izmantojot T5L seriālo portu 2, ir šāda:
Void app_init()
{
ir_testēšana = 0;
testa_izpildes_laiks = 0;
is_sec = 0;
periods1 = 0;
ir_periods1 = 0;
uart2_init(115200);
send_bytes("AT+INIT=0\r\n",sizeof("AT+INIT=0\r\n")-1);
sys_delay_ms(2500);
sys_pic(1);
send_bytes("AT+START\r\n",sizeof("AT+START\r\n")-1);
}
T5L viedā ekrāna galvenā programma, kas mijiedarbojas ar vadības paneli, lai realizētu cementa sastāva noteikšanas funkciju, ir šāda:
void btn_click_handler()
{
#define BTN_VAL_ADDR 0x1000
u16 btn_val;
if(ir_testēšana&&ir_sek)
{
is_sec = 0;
test_run_time++;
btn_val = sprintf(commbuff,"%02u:%02u",(u16)(test_run_time/60),(u16)(test_run_time%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)
{
init_weight = *(peldēt*)(uart2buf+2);
init_weight *= (*(float*)flashdat);
sys_write_vp(0x1178, (u8*)&init_weight, 2);
}else if(uart2buf[0]==0x02&&uart2buf[1]==0x05)
{
init_ml = *(peldēt*)(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 = *(pludiņš*)(uart2buf+2);
disp_val += (speed_val*2.45f);
sys_write_vp(0x1180, (u8*)&disp_val, 2);
}else if(uart2buf[0]==0x04)
{
kopējais_skaits = uart2buf[1]*256+uart2buf[2];
}else if(uart2buf[0]==0x05)
{
is_en_tmp = uart2buf[2];
}
uart2rxsta = 0;
}
}
ja(ir_periods1)
{
ir_periods1 = 0;
t_sample();
if(ir_testing&&is_en_tmp)
sys_write_vp(0x1170,(u8*)&tmp,2);
}
if(is_btn_scan==0)
atgriešanās;
is_btn_scan = 0;
sys_read_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
if(btn_val==0)
atgriešanās;
if(btn_val
start_win_btn_click_handler(btn_val);
btn_val = 0;
sys_write_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
}
Plašāku informāciju skatiet avota kodā.
Publicēšanas laiks: Dec-02-2023