[Åpen kildekode] Sement måleinstrument for flere mengder

——Fra DWIN Developer Forum

Den prisbelønte åpen kildekode-saken anbefalt av DWIN-forumet kan brukes i byggebransjen for å oppdage innhold av sementkomponenter – et sementmåleinstrument for flere mengder basert på T5L smartskjerm.Ingeniører bruker T5L-smartskjermen til å kontrollere den elektroniske vektdeteksjonsmodulen, temperaturmålingsmodulen, varmemodulen, fuktighetssensoren og blandemodulen for å realisere deteksjonsfunksjonen til fast løsning og innhold av flytende sementkomponenter, og støtte sanntidsvisning av hastighet, temperaturinnstilling, historikk, sceneparameterinnstilling og andre funksjoner.

1. Programstruktur

acdsb (1)

2. UI Material Display

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

3.Utviklingseksempel

acdsb (6)

4.C51 programvaredesign

Initialiseringskommandoprogrammet for ingeniøren for å kommunisere med kontrollkortet ved hjelp av T5L seriell port 2 er som følger:

void app_init()

{

is_testing = 0;

test_run_time = 0;

er_sek = 0;

periode1 = 0;

er_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);

}

Hovedprogrammet til den intelligente T5L-skjermen som samhandler med kontrollkortet for å realisere funksjonen til sementsammensetningsdeteksjon er som følger:

void btn_click_handler()

{

#define BTN_VAL_ADDR 0x1000

u16 btn_val;

if(er_tester&&er_sek.)

{

er_sek = 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)

{

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

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

}

}

if(er_periode1)

{

er_periode1 = 0;

t_sample();

if(er_tester&&er_en_tmp)

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

}

if(er_btn_scan==0)

komme tilbake;

is_btn_scan = 0;

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

if(btn_val==0)

komme tilbake;

if(btn_val<=0x10)

start_win_btn_click_handler(btn_val);

 

btn_val = 0;

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

}

 

Se kildekoden for mer.


Innleggstid: Des-02-2023