——Са ДВИН форума за програмере
Награђивана кутија отвореног кода коју препоручује ДВИН форум може се користити у грађевинској индустрији за детекцију садржаја цементних компоненти – мерни инструмент за више количине цемента заснован на Т5Л паметном екрану. Инжењери користе паметни екран Т5Л за контролу електронског модула за детекцију тежине, модула за мерење температуре, модула за грејање, сензора влаге и модула за мешање да би реализовали функцију детекције садржаја чврстог раствора и течног цемента и подржавају приказ брзине у реалном времену, подешавање температуре, запис историје, подешавање параметара фазе и друге функције.
1. Структура програма
![ацдсб (1)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb534d9587236.jpg)
2. Приказ материјала УИ
![ацдсб (2)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb6b626488123.jpg)
![ацдсб (4)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb84270f77694.jpg)
![ацдсб (3)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb975b6581165.jpg)
![ацдсб (5)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bbaf20a513069.jpg)
3. Пример развоја корисничког интерфејса
![ацдсб (6)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bbc7a0f429134.jpg)
4.Ц51 дизајн софтвера
Командни програм за иницијализацију за инжењера да комуницира са контролном плочом користећи Т5Л серијски порт 2 је следећи:
воид апп_инит()
{
ис_тестинг = 0;
тест_рун_тиме = 0;
ис_сец = 0;
период1 = 0;
ис_период1 = 0;
уарт2_инит(115200);
сенд_битес("АТ+ИНИТ=0\р\н",сизеоф("АТ+ИНИТ=0\р\н")-1);
сис_делаи_мс(2500);
сис_пиц(1);
сенд_битес("АТ+СТАРТ\р\н",сизеоф("АТ+СТАРТ\р\н")-1);
}
Главни програм Т5Л интелигентног екрана у интеракцији са контролном плочом да би се реализовала функција детекције састава цемента је следећи:
воид бтн_цлицк_хандлер()
{
#дефине БТН_ВАЛ_АДДР 0к1000
у16 бтн_вал;
иф(ис_тестинг&&ис_сец)
{
ис_сец = 0;
тест_рун_тиме++;
бтн_вал = спринтф(цоммбуфф,"%02у:%02у",(у16)(тест_рун_тиме/60),(у16)(тест_рун_тиме%60));
цоммбуфф[бтн_вал+1] = 0;
сис_врите_вп(ТЕСТ_ТИМЕ_ВП,цоммбуфф,5);
иф(уарт2ркста&УАРТ2_ПАЦКЕТ_ОК)
{
иф(уарт2буф[0]==0к01&&уарт2буф[1]==0к02)
{
инит_веигхт = *(флоат*)(уарт2буф+2);
инит_веигхт *= (*(флоат*)фласхдат);
сис_врите_вп(0к1178, (у8*)&инит_веигхт, 2);
}елсе иф(уарт2буф[0]==0к02&&уарт2буф[1]==0к05)
{
инит_мл = *(флоат*)(уарт2буф+2);
инит_мл /= (*(флоат*)фласхдат+20);
сис_врите_вп(0к1180, (у8*)&инит_мл, 2);
}елсе иф(уарт2буф[0]==0к03&&уарт2буф[1]==0к07)
{
спеед_вал = *(флоат*)(уарт2буф+2);
дисп_вал += (спеед_вал*2.45ф);
сис_врите_вп(0к1180, (у8*)&дисп_вал, 2);
}елсе иф(уарт2буф[0]==0к04)
{
тотал_нум = уарт2буф[1]*256+уарт2буф[2];
}елсе иф(уарт2буф[0]==0к05)
{
ис_ен_тмп = уарт2буф[2];
}
уарт2ркста = 0;
}
}
иф(је_период1)
{
ис_период1 = 0;
т_сампле();
иф(ис_тестинг&&ис_ен_тмп)
сис_врите_вп(0к1170,(у8*)&тмп,2);
}
иф(ис_бтн_сцан==0)
повратак;
ис_бтн_сцан = 0;
сис_реад_вп(БТН_ВАЛ_АДДР,(у8*)&бтн_вал,1);
иф(бтн_вал==0)
повратак;
иф(бтн_вал
старт_вин_бтн_цлицк_хандлер(бтн_вал);
бтн_вал = 0;
сис_врите_вп(БТН_ВАЛ_АДДР,(у8*)&бтн_вал,1);
}
Погледајте изворни код за више.
Време поста: 02.12.2023