——DWIN dasturchilar forumidan
DWIN forumi tomonidan tavsiya etilgan mukofotga sazovor bo'lgan ochiq kodli korpusdan qurilish sanoatida sement komponentlarini aniqlash uchun foydalanish mumkin - T5L smart-ekraniga asoslangan tsement ko'p miqdorda o'lchash vositasi. Muhandislar T5L aqlli ekranidan elektron og'irlikni aniqlash moduli, haroratni o'lchash moduli, isitish moduli, namlik sensori va aralashtirish modulini boshqarish uchun qattiq eritma va suyuq tsement komponentlari tarkibini aniqlash funktsiyasini amalga oshirish va real vaqt rejimida tezlikni ko'rsatishni qo'llab-quvvatlash uchun foydalanadilar. haroratni sozlash, tarixni yozish, Bosqich parametrlarini sozlash va boshqa funktsiyalar.
1. Dastur tuzilishi
![acdsb (1)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb534d9587236.jpg)
2.UI Material Displey
![acdsb (2)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb6b626488123.jpg)
![acdsb (4)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb84270f77694.jpg)
![acdsb (3)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb975b6581165.jpg)
![acdsb (5)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bbaf20a513069.jpg)
3.UI ishlab chiqish misoli
![acdsb (6)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bbc7a0f429134.jpg)
4.C51 dasturiy ta'minot dizayni
T5L seriyali port 2 dan foydalangan holda muhandisning boshqaruv paneli bilan bog'lanishi uchun ishga tushirish buyrug'i dasturi quyidagicha:
app_init() bekor
{
is_testing = 0;
test_run_time = 0;
is_sec = 0;
davr1 = 0;
is_period1 = 0;
uart2_init(115200);
send_bayt("AT+INIT=0\r\n",sizeof("AT+INIT=0\r\n")-1);
sys_delay_ms (2500);
sys_pic(1);
send_bayt("AT+START\r\n",sizeof("AT+START\r\n")-1);
}
T5L aqlli ekranining tsement tarkibini aniqlash funktsiyasini amalga oshirish uchun boshqaruv paneli bilan o'zaro ta'sirining asosiy dasturi quyidagicha:
void btn_click_handler()
{
#BTN_VAL_ADDR 0x1000 ni aniqlang
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));
commbuff[btn_val+1] = 0;
sys_write_vp(TEST_TIME_VP,commbuff,5);
agar(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);
}alse 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);
}alse if(uart2buf[0]==0x03&&uart2buf[1]==0x07)
{
speed_val = *(float*)(uart2buf+2);
disp_val += (tezlik_valli * 2.45f);
sys_write_vp(0x1180, (u8*)&disp_val, 2);
}alse if(uart2buf[0]==0x04)
{
jami_num = uart2buf[1]*256+uart2buf[2];
}alse if(uart2buf[0]==0x05)
{
is_en_tmp = uart2buf[2];
}
uart2rxsta = 0;
}
}
agar(1-davr)
{
is_period1 = 0;
t_sample();
if(is_testing&&is_en_tmp)
sys_write_vp(0x1170,(u8*)&tmp,2);
}
if(is_btn_scan==0)
qaytish;
is_btn_scan = 0;
sys_read_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
agar(btn_val==0)
qaytish;
if(btn_val
start_win_btn_click_handler(btn_val);
btn_val = 0;
sys_write_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
}
Qo'shimcha ma'lumot uchun manba kodiga qarang.
Yuborilgan vaqt: 2023-yil 2-dekabr