[Otvorený zdroj] Cement Multi-amount Measuring Instrument

——Z fóra vývojárov DWIN

Ocenené puzdro s otvoreným zdrojovým kódom odporúčané fórom DWIN môže byť použité v stavebníctve na zisťovanie obsahu cementových zložiek – cementový multi-množstevný merací prístroj založený na inteligentnej obrazovke T5L.Inžinieri používajú inteligentnú obrazovku T5L na ovládanie modulu elektronickej detekcie hmotnosti, modulu merania teploty, vykurovacieho modulu, snímača vlhkosti a modulu miešania na realizáciu funkcie detekcie obsahu tuhých roztokov a tekutých cementových komponentov a na podporu zobrazenia rýchlosti v reálnom čase, nastavenie teploty, záznam histórie, nastavenie parametrov Stage a ďalšie funkcie.

1. Štruktúra programu

acdsb (1)

2. Zobrazenie materiálu používateľského rozhrania

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

3. Príklad vývoja používateľského rozhrania

acdsb (6)

4. Návrh softvéru C51

Inicializačný príkazový program pre inžiniera na komunikáciu s riadiacou doskou pomocou sériového portu T5L 2 je nasledovný:

void app_init()

{

is_testing = 0;

test_run_time = 0;

is_sec = 0;

perióda1 = 0;

is_period1 = 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);

}

Hlavný program inteligentnej obrazovky T5L interagujúcej s riadiacou doskou na realizáciu funkcie detekcie zloženia cementu je nasledujúci:

void btn_click_handler()

{

#define BTN_VAL_ADDR 0x1000

u16 btn_val;

if(is_testing&&is_sec)

{

is_sec = 0;

test_run_time++;

btn_val = sprintf(commbuff,"%02u:%02u",(u16)(čas_testu/60),(u16)(čas_testu%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 = *(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 = *(float*)(uart2buf+2);

disp_val += (speed_val*2,45f);

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

}else if(uart2buf[0]==0x04)

{

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

}else if(uart2buf[0]==0x05)

{

is_en_tmp = uart2buf[2];

}

uart2rxsta = 0;

}

}

if(is_period1)

{

is_period1 = 0;

t_sample();

if(is_testing&&is_en_tmp)

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

}

if(is_btn_scan==0)

návrat;

is_btn_scan = 0;

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

if(btn_val==0)

návrat;

if(btn_val<=0x10)

start_win_btn_click_handler(btn_val);

 

btn_val = 0;

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

}

 

Ďalšie informácie nájdete v zdrojovom kóde.


Čas odoslania: 2. decembra 2023