[Atviro kodo] Cemento kelių kiekių matavimo priemonė

——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 – tai cemento kelių kiekių matavimo priemonė T5L išmaniojo ekrano pagrindu.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)

2.UI medžiagos ekranas

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

3.UI kūrimo pavyzdys

acdsb (6)

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 += (greičio_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<=0x10)

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-12-02