[Otvoreni kod] Instrument za mjerenje više količina cementa

——S DWIN Developer Foruma

Nagrađivani slučaj otvorenog koda koji preporučuje forum DWIN može se koristiti u građevinskoj industriji za otkrivanje sadržaja cementnih komponenti - mjerni instrument za više količina cementa temeljen na T5L pametnom ekranu.Inženjeri koriste T5L pametni zaslon za kontrolu elektroničkog modula za detekciju težine, modula za mjerenje temperature, modula za grijanje, senzora vlage i modula za miješanje kako bi ostvarili funkciju detekcije sadržaja čvrste otopine i tekuće cementne komponente, te podržali prikaz brzine u stvarnom vremenu, postavka temperature, zapis povijesti, postavka parametara pozornice i druge funkcije.

1. Struktura programa

acdsb (1)

2.Prikaz materijala korisničkog sučelja

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

3. Primjer razvoja korisničkog sučelja

acdsb (6)

4.C51 dizajn softvera

Program naredbe za inicijalizaciju za inženjera za komunikaciju s upravljačkom pločom pomoću T5L serijskog priključka 2 je sljedeći:

poništi app_init()

{

je_testiranje = 0;

vrijeme_izvođenja testa = 0;

je_sek = 0;

period1 = 0;

je_razdoblje1 = 0;

uart2_init(115200);

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

sys_odgoda_ms(2500);

sys_pic(1);

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

}

Glavni program inteligentnog zaslona T5L u interakciji s upravljačkom pločom za realizaciju funkcije detekcije sastava cementa je sljedeći:

void btn_click_handler()

{

#define BTN_VAL_ADDR 0x1000

u16 btn_val;

ako(je_testiranje&&je_sek)

{

je_sek = 0;

test_vrijeme_izvođenja++;

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

{

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

disp_val += (brzina_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;

}

}

ako(je_razdoblje1)

{

je_razdoblje1 = 0;

t_uzorak();

if(is_testiranje&&is_en_tmp)

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

}

if(is_btn_scan==0)

povratak;

is_btn_scan = 0;

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

if(btn_val==0)

povratak;

if(btn_val<=0x10)

start_win_btn_click_handler(btn_val);

 

btn_val = 0;

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

}

 

Pogledajte izvorni kod za više.


Vrijeme objave: 2. prosinca 2023