[Sumber Terbuka] Alat Pengukur Berbilang Jumlah Simen

——Dari Forum Pembangun DWIN

Sarung sumber terbuka yang memenangi anugerah yang disyorkan oleh forum DWIN boleh digunakan dalam industri pembinaan untuk mengesan kandungan komponen simen - alat pengukur pelbagai amaun simen berdasarkan skrin pintar T5L.Jurutera menggunakan skrin pintar T5L untuk mengawal modul pengesanan berat elektronik, modul pengukuran suhu, modul pemanasan, penderia kelembapan dan modul pencampuran untuk merealisasikan fungsi pengesanan larutan pepejal dan kandungan komponen simen cecair, dan menyokong paparan kadar masa nyata, tetapan suhu, rekod sejarah, tetapan parameter peringkat dan fungsi lain.

1. Struktur Program

acdsb (1)

2. Paparan Bahan UI

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

3.Contoh Pembangunan UI

acdsb (6)

4.C51 reka bentuk perisian

Program arahan permulaan untuk jurutera berkomunikasi dengan papan kawalan menggunakan port bersiri T5L 2 adalah seperti berikut:

batal app_init()

{

is_testing = 0;

test_run_time = 0;

is_sec = 0;

tempoh1 = 0;

ialah_tempoh1 = 0;

uart2_init(115200);

send_bait("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);

}

Program utama skrin pintar T5L yang berinteraksi dengan papan kawalan untuk merealisasikan fungsi pengesanan komposisi simen adalah seperti berikut:

batal btn_click_handler()

{

#define BTN_VAL_ADDR 0x1000

u16 btn_val;

if(is_testing&&is_sec)

{

is_sec = 0;

test_run_time++;

btn_val = sprintf(commbuff,"%02u:%02u",(u16)(test_run_time/60),(u16)(test_run_time%60));

combuff[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 += (kelajuan_val*2.45f);

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

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

{

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

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

{

is_en_tmp = uart2buf[2];

}

uart2rxsta = 0;

}

}

jika(ialah_tempoh1)

{

ialah_tempoh1 = 0;

t_sample();

if(is_testing&&is_en_tmp)

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

}

if(is_btn_scan==0)

kembali;

is_btn_scan = 0;

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

jika(btn_val==0)

kembali;

jika(btn_val<=0x10)

start_win_btn_click_handler(btn_val);

 

btn_val = 0;

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

}

 

Rujuk kod sumber untuk maklumat lanjut.


Masa siaran: Dis-02-2023