[Nyílt forráskódú] Cement Több mennyiségű mérőműszer

——A DWIN fejlesztői fórumról

A DWIN fórum által ajánlott, díjnyertes nyílt forráskódú tok az építőiparban használható cementkomponens-tartalom kimutatására - T5L intelligens képernyőre épülő cementtöbbszörös mérőműszer.A mérnökök a T5L intelligens képernyőt használják az elektronikus súlyérzékelő modul, a hőmérsékletmérő modul, a fűtőmodul, a nedvességérzékelő és a keverőmodul vezérlésére, hogy megvalósítsák a szilárd oldat és a folyékony cementkomponens-tartalom észlelési funkcióját, és támogassák a sebesség valós idejű megjelenítését, hőmérséklet beállítás, előzmények rögzítése, színpadi paraméterek beállítása és egyéb funkciók.

1. A program felépítése

acdsb (1)

2.UI Anyag kijelző

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

3. UI fejlesztési példa

acdsb (6)

4.C51 szoftver tervezés

Az alábbi inicializálási parancsprogram, amellyel a mérnök kommunikálhat a vezérlőkártyával a T5L 2. soros portján keresztül:

void app_init()

{

is_tesztelés = 0;

teszt_futási_idő = 0;

is_sec = 0;

periódus1 = 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);

}

A T5L intelligens képernyő fő programja, amely kölcsönhatásba lép a vezérlőpanellel, hogy megvalósítsa a cementösszetétel-érzékelés funkcióját, a következő:

void btn_click_handler()

{

#define BTN_VAL_ADDR 0x1000

u16 btn_val;

if(tesztelés&&s_sec)

{

is_sec = 0;

teszt_futási_idő++;

btn_val = sprintf(commbuff,"%02u:%02u",(u16)(teszt_futási_idő/60),(u16)(teszt_futási_idő%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)

{

kezdeti_súly = *(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);

diszp_val += (speed_val*2.45f);

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

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

{

teljes_szám = 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(tesztelés&&is_en_tmp)

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

}

if(is_btn_scan==0)

Visszatérés;

is_btn_scan = 0;

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

if(btn_val==0)

Visszatérés;

if(btn_val<=0x10)

start_win_btn_click_handler(btn_val);

 

btn_val = 0;

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

}

 

További információért lásd a forráskódot.


Feladás időpontja: 2023. december 02