——DWIN dasturchilar forumidan
DWIN forumi tomonidan tavsiya etilgan mukofotga sazovor bo'lgan ochiq kodli korpusdan qurilish sanoatida tsement komponentlari tarkibini 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, haroratni sozlash, tarixni yozish, Bosqich parametrlarini sozlash va boshqa funktsiyalar.
1. Dastur tuzilishi
2.UI Material Displey
3.UI ishlab chiqish misoli
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);
}
Tsement tarkibini aniqlash funktsiyasini amalga oshirish uchun boshqaruv paneli bilan o'zaro ishlaydigan T5L aqlli ekranining asosiy dasturi quyidagilardan iborat:
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<=0x10)
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 02 dekabr