[Открытый исходный код] Многократный измерительный прибор для цемента

—— С форума разработчиков DWIN

Отмеченный наградами корпус с открытым исходным кодом, рекомендованный форумом DWIN, может быть использован в строительной отрасли для определения содержания компонентов цемента — прибор для измерения нескольких объемов цемента на основе интеллектуального экрана T5L.Инженеры используют интеллектуальный экран T5L для управления электронным модулем определения веса, модулем измерения температуры, модулем нагрева, датчиком влажности и модулем смешивания, чтобы реализовать функцию обнаружения содержания компонентов твердого раствора и жидкого цемента, а также поддерживать отображение скорости в реальном времени. настройка температуры, запись истории, настройка параметров этапа и другие функции.

1. Структура программы

акдсб (1)

2. Отображение материала пользовательского интерфейса

акдсб (2)
акдсб (4)
акдсб (3)
акдсб (5)

3.Пример разработки пользовательского интерфейса

акдсб (6)

4.C51 дизайн программного обеспечения

Программа команд инициализации для связи инженера с платой управления с помощью последовательного порта 2 T5L выглядит следующим образом:

недействительный app_init()

{

is_testing = 0;

test_run_time = 0;

is_sec = 0;

период1 = 0;

is_ period1 = 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;

если (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);

если (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);

}иначе если(uart2buf[0]==0x02&&uart2buf[1]==0x05)

{

init_ml = *(float*)(uart2buf+2);

init_ml /= (*(float*)flashdat+20);

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

}иначе если(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];

}

уарт2рхста = 0;

}

}

если (is_ period1)

{

is_ period1 = 0;

т_образец();

если (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);

 

бтн_вал = 0;

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

}

 

Обратитесь к исходному коду для получения дополнительной информации.


Время публикации: 02 декабря 2023 г.