[Malferma Fonto] Cementa Multkvanta Mezurilo

——El Forumo por Programistoj de DWIN

La premiita malfermfonta kazo rekomendita de la forumo DWIN povas esti uzata en la konstrua industrio por detekti enhavon de cementaj komponantoj - cementa multkvanta mezurinstrumento bazita sur inteligenta ekrano T5L.Inĝenieroj uzas la inteligentan ekranon T5L por kontroli la elektronikan pezon-detektan modulon, temperaturmezuran modulon, varmigan modulon, humidan sensilon kaj miksan modulon por realigi la detektan funkcion de solida solvaĵo kaj enhavo de likva cemento-komponento, kaj subteni realtempan montradon de indico, agordo de temperaturo, historia rekordo, Stage parametro agordo kaj aliaj funkcioj.

1. Programa Strukturo

acdsb (1)

2.UI Materiala Ekrano

acdsb (2)
acdsb (4)
acdsb (3)
acdsb (5)

3.UI Disvolva Ekzemplo

acdsb (6)

4.C51 programaro-dezajno

La komenca komandprogramo por la inĝeniero por komuniki kun la kontroltabulo uzante la serian havenon T5L 2 estas kiel sekvas:

malplena app_init()

{

is_testing = 0;

test_run_time = 0;

is_sec = 0;

periodo1 = 0;

estas_periodo1 = 0;

uart2_init(115200);

send_bytes ("AT+INIT=0\r\n", grandeco de ("AT+INIT=0\r\n")-1);

sys_delay_ms(2500);

sys_pic(1);

send_bytes ("ĈE+START\r\n", sizeof("ĈE+START\r\n")-1);

}

La ĉefa programo de la inteligenta ekrano T5L interaganta kun la kontroltabulo por realigi la funkcion de detekto de cemento-konsisto estas jena:

malplena btn_click_handler ()

{

#define BTN_VAL_ADDR 0x1000

u16 btn_val;

if(estas_testanta&&estas_sek)

{

is_sec = 0;

test_run_tempo++;

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)

{

se(uart2buf[0]==0x01&&uart2buf[1]==0x02)

{

init_pezo = *(float*)(uart2buf+2);

init_weight *= (*(float*)flashdat);

sys_write_vp(0x1178, (u8*)&init_weight, 2);

}alie se(uart2buf[0]==0x02&&uart2buf[1]==0x05)

{

init_ml = *(float*)(uart2buf+2);

init_ml /= (*(float*)flashdat+20);

sys_write_vp(0x1180, (u8*)&init_ml, 2);

}alie se(uart2buf[0]==0x03&&uart2buf[1]==0x07)

{

rapido_val = *(float*)(uart2buf+2);

disp_val += (rapido_val*2.45f);

sys_write_vp(0x1180, (u8*)&disp_val, 2);

}alie se (uart2buf[0]==0x04)

{

totala_num = uart2buf[1]*256+uart2buf[2];

}alie se (uart2buf[0]==0x05)

{

is_en_tmp = uart2buf[2];

}

uart2rxsta = 0;

}

}

se(estas_periodo1)

{

estas_periodo1 = 0;

t_specimeno();

if(estas_testanta&&estas_en_tmp)

sys_write_vp(0x1170,(u8*)&tmp,2);

}

if(estas_btn_scan==0)

reveni;

is_btn_scan = 0;

sys_read_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);

if(btn_val==0)

reveni;

if(btn_val<=0x10)

start_win_btn_click_handler (btn_val);

 

btn_val = 0;

sys_write_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);

}

 

Vidu al la fontkodo por pli.


Afiŝtempo: Dec-02-2023