[ღია წყარო] ცემენტის მრავალრიცხოვანი საზომი ინსტრუმენტი

——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-ის გამოყენებით, შემდეგია:

void app_init()

{

არის_ტესტირება = 0;

ტესტის_გაშვების_დრო = 0;

არის_წმ = 0;

პერიოდი1 = 0;

არის_პერიოდი1 = 0;

uart2_init(115200);

send_bytes ("AT+INIT=0\r\n", ზომა ("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)

{

არის_წმ = 0;

test_run_time++;

btn_val = sprintf(commbuff,"%02u:%02u",(u16)(test_run_time/60),(u16)(test_run_time%60));

combuff[btn_val+1] = 0;

sys_write_vp(TEST_TIME_VP,commbuff,5);

if (uart2rxsta&UART2_PACKET_OK)

{

if(uart2buf[0]==0x01&&uart2buf[1]==0x02)

{

საწყისი_წონა = *(float*)(uart2buf+2);

საწყისი_წონა *= (*(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)

{

სულ_რაოდენობა = uart2buf[1]*256+uart2buf[2];

}სხვა თუ (uart2buf[0]==0x05)

{

is_en_tmp = uart2buf[2];

}

uart2rxsta = 0;

}

}

if (is_period1)

{

არის_პერიოდი1 = 0;

t_sample();

if (is_testing&&is_en_tmp)

sys_write_vp(0x1170,(u8*)&tmp,2);

}

if(is_btn_scan==0)

დაბრუნების;

არის_btn_სკანირება = 0;

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

if(btn_val==0)

დაბრუნების;

if(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