[Avatud lähtekoodiga] Tsemendi mitmekoguse mõõteriist

——DWINi arendajafoorumist

DWIN-i foorumi soovitatud auhinnatud avatud lähtekoodiga korpust saab kasutada ehitustööstuses tsemendikomponentide sisalduse tuvastamiseks – T5L nutiekraanil põhinev tsemendi mitmekoguse mõõteriist.Insenerid kasutavad T5L nutiekraani elektroonilise kaalutuvastusmooduli, temperatuuri mõõtmise mooduli, küttemooduli, niiskusanduri ja segamismooduli juhtimiseks, et realiseerida tahke lahuse ja vedela tsemendi komponendi sisalduse tuvastamise funktsioon ning toetada kiiruse reaalajas kuvamist, temperatuuri seadistus, ajaloo kirje, etapi parameetrite seadistus ja muud funktsioonid.

1. Programmi struktuur

acdsb (1)

2. UI materjali ekraan

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

3. UI arendamise näide

acdsb (6)

4.C51 tarkvara projekteerimine

Insenerile T5L jadaporti 2 kasutades juhtplaadiga suhtlemiseks lähtestamise käsuprogramm on järgmine:

void app_init()

{

is_testing = 0;

test_run_time = 0;

is_sec = 0;

periood1 = 0;

on_periood1 = 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",suurus("AT+START\r\n")-1);

}

Juhtpaneeliga suhtleva T5L intelligentse ekraani põhiprogramm tsemendi koostise tuvastamise funktsiooni realiseerimiseks on järgmine:

void btn_click_handler()

{

#define BTN_VAL_ADDR 0x1000

u16 btn_val;

if(on_testing&&on_sec)

{

is_sec = 0;

test_run_time++;

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)

{

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)

{

kiiruse_väärtus = *(float*)(uart2buf+2);

disp_val += (speed_val*2.45f);

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

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

{

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

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

{

is_en_tmp = uart2buf[2];

}

uart2rxsta = 0;

}

}

if(on_periood1)

{

on_periood1 = 0;

t_sample();

if(on_testing&&is_et_tmp)

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

}

if(is_btn_scan==0)

tagastamine;

is_btn_scan = 0;

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

if(btn_val==0)

tagastamine;

if(btn_val<=0x10)

start_win_btn_click_handler(btn_val);

 

btn_val = 0;

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

}

 

Lisateabe saamiseks vaadake lähtekoodi.


Postitusaeg: detsember 02-2023