[Отворен код] Циментов измервателен уред за множество количества

——От форума за разработчици на 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()

{

е_тестване = 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()

{

#define BTN_VAL_ADDR 0x1000

u16 btn_val;

if(is_testing&&is_sec)

{

is_sec = 0;

тест_време_за_изпълнение++;

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

ако (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);

}иначе 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);

}иначе 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);

}друго ако(uart2buf[0]==0x04)

{

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

}друго ако (uart2buf[0]==0x05)

{

is_en_tmp = uart2buf[2];

}

uart2rxsta = 0;

}

}

ако (е_период1)

{

е_период1 = 0;

t_sample();

if(is_testing&&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);

}

 

Обърнете се към изходния код за повече.


Време на публикуване: 2 декември 2023 г