[Open Source] Cement meetinstrument voor meerdere hoeveelheden

——Van het DWIN-ontwikkelaarsforum

De bekroonde open source-case die wordt aanbevolen door het DWIN-forum kan in de bouwsector worden gebruikt om de inhoud van cementcomponenten te detecteren - een meetinstrument voor meerdere hoeveelheden cement, gebaseerd op het slimme T5L-scherm.Ingenieurs gebruiken het slimme T5L-scherm om de elektronische gewichtsdetectiemodule, de temperatuurmeetmodule, de verwarmingsmodule, de vochtsensor en de mengmodule te bedienen om de detectiefunctie van de inhoud van vaste oplossingen en vloeibare cementcomponenten te realiseren en om real-time weergave van de snelheid te ondersteunen. temperatuurinstelling, geschiedenisrecord, faseparameterinstelling en andere functies.

1. Programmastructuur

acdsb (1)

2.UI-materiaalweergave

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

3. Voorbeeld van UI-ontwikkeling

acdsb (6)

4.C51 softwareontwerp

Het initialisatiecommandoprogramma waarmee de engineer met de besturingskaart kan communiceren via de T5L seriële poort 2 is als volgt:

ongeldige app_init()

{

is_testen = 0;

test_run_time = 0;

is_sec = 0;

periode1 = 0;

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

}

Het hoofdprogramma van het intelligente T5L-scherm dat communiceert met de besturingskaart om de functie van detectie van cementsamenstelling te realiseren, is als volgt:

void btn_click_handler()

{

#define BTN_VAL_ADDR 0x1000

u16 btn_val;

if(is_testen&&is_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);

als(uart2rxsta&UART2_PACKET_OK)

{

als(uart2buf[0]==0x01&&uart2buf[1]==0x02)

{

init_weight = *(zweven*)(uart2buf+2);

init_weight *= (*(float*)flashdat);

sys_write_vp(0x1178, (u8*)&init_weight, 2);

}else if(uart2buf[0]==0x02&&uart2buf[1]==0x05)

{

init_ml = *(zweven*)(uart2buf+2);

init_ml /= (*(float*)flashdat+20);

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

}else if(uart2buf[0]==0x03&&uart2buf[1]==0x07)

{

snelheid_val = *(zweven*)(uart2buf+2);

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

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

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

{

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

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

{

is_en_tmp = uart2buf[2];

}

uart2rxsta = 0;

}

}

als(is_periode1)

{

is_periode1 = 0;

t_voorbeeld();

if(is_testen&&is_en_tmp)

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

}

als(is_btn_scan==0)

opbrengst;

is_btn_scan = 0;

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

als(btn_val==0)

opbrengst;

als(btn_val<=0x10)

start_win_btn_click_handler(btn_val);

 

btn_val = 0;

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

}

 

Raadpleeg de broncode voor meer informatie.


Posttijd: 02-dec-2023