[Нээлттэй эх сурвалж] Цементийн олон хэмжээ хэмжих хэрэгсэл

——DWIN хөгжүүлэгчдийн форумаас

DWIN форумаас санал болгосон шагналт нээлттэй эхийн кейсийг барилгын салбарт цементийн бүрэлдэхүүн хэсгийн агуулгыг илрүүлэхэд ашиглах боломжтой - T5L ухаалаг дэлгэц дээр суурилсан цементийн олон хэмжээг хэмжих хэрэгсэл.Инженерүүд T5L ухаалаг дэлгэцийг ашиглан жин тодорхойлох электрон модуль, температур хэмжих модуль, халаалтын модуль, чийг мэдрэгч, холих модулийг удирдаж, хатуу уусмал, шингэн цементийн бүрэлдэхүүн хэсгийн агуулгыг илрүүлэх функцийг хэрэгжүүлж, хурдыг бодит цаг хугацаанд харуулахыг дэмждэг. температурын тохиргоо, түүхийн бичлэг, Тайзны параметрийн тохиргоо болон бусад функцууд.

1. Хөтөлбөрийн бүтэц

acdsb (1)

2. UI материалын дэлгэц

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

3. UI хөгжүүлэлтийн жишээ

acdsb (6)

4.C51 програм хангамжийн дизайн

T5L цуваа порт 2-ыг ашиглан хяналтын самбартай холбогдох инженерийг эхлүүлэх командын програм нь дараах байдалтай байна.

хүчингүй болгох app_init()

{

is_testing = 0;

туршилтын_хугацаа = 0;

is_sec = 0;

үе 1 = 0;

хугацаа1 = 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);

}

Цементийн найрлагыг илрүүлэх функцийг хэрэгжүүлэхийн тулд хяналтын самбартай харилцан үйлчилдэг T5L ухаалаг дэлгэцийн үндсэн програм нь дараах байдалтай байна.

void btn_click_handler()

{

#BTN_VAL_ADDR 0x1000-г тодорхойлох

u16 btn_val;

хэрэв(туршилт хийж байна&ис_сек)

{

is_sec = 0;

test_run_time++;

btn_val = sprintf(commbuff,"%02u:%02u",(u16)(туршилтын_ажиллуулах_цаг/60),(u16)(туршилтын_ажиллуулах_цаг%60));

commbuff[btn_val+1] = 0;

sys_write_vp(TEST_TIME_VP,commbuff,5);

хэрэв(uart2rxsta&UART2_PACKET_OK)

{

хэрэв(uart2buf[0]==0x01&&uart2buf[1]==0x02)

{

init_weight = *(хөвөгч*)(uart2buf+2);

init_weight *= (*(хөвөгч*)флэшдат);

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

}эсвэл (uart2buf[0]==0x02&&uart2buf[1]==0x05)

{

init_ml = *(хөвөгч*)(uart2buf+2);

init_ml /= (*(хөвөгч*)flashdat+20);

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

}эсвэл (uart2buf[0]==0x03&&uart2buf[1]==0x07)

{

speed_val = *(хөвөгч*)(uart2buf+2);

disp_val += (хурд_валь *2.45f);

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

}эсвэл (uart2buf[0]==0x04)

{

нийт_тоо = uart2buf[1]*256+uart2buf[2];

}эсвэл (uart2buf[0]==0x05)

{

is_en_tmp = uart2buf[2];

}

uart2rxsta = 0;

}

}

хэрэв(1-р үе)

{

хугацаа1 = 0;

t_sample();

хэрэв(туршиж байна&&is_en_tmp)

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

}

хэрэв(is_btn_scan==0)

буцаах;

is_btn_scan = 0;

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

хэрэв(btn_val==0)

буцаах;

хэрэв(btn_val<=0x10)

start_win_btn_click_handler(btn_val);

 

btn_val = 0;

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

}

 

Дэлгэрэнгүйг эх кодоос үзнэ үү.


Шуудангийн цаг: 2023 оны 12-р сарын 02