[Ашық көз] Цемент көп мөлшерлі өлшеу құралы

——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)(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)

{

егер(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 += (жылдамдық_валь*2,45f);

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

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

{

жалпы_сан = uart2buf[1]*256+uart2buf[2];

}else if(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);

}

 

Қосымша ақпарат алу үшін бастапқы кодты қараңыз.


Жіберу уақыты: 02 желтоқсан 2023 ж