[مصدر مفتوح] أداة قياس متعددة الكميات للأسمنت

——من منتدى مطوري DWIN

يمكن استخدام الحالة مفتوحة المصدر الحائزة على جوائز والتي أوصى بها منتدى DWIN في صناعة البناء والتشييد للكشف عن محتوى مكونات الأسمنت - أداة قياس الأسمنت متعددة الكميات تعتمد على شاشة T5L الذكية.يستخدم المهندسون شاشة T5L الذكية للتحكم في وحدة الكشف عن الوزن الإلكتروني، ووحدة قياس درجة الحرارة، ووحدة التسخين، ومستشعر الرطوبة، ووحدة الخلط لتحقيق وظيفة الكشف عن المحلول الصلب ومحتوى مكون الأسمنت السائل، ودعم عرض المعدل في الوقت الفعلي، إعداد درجة الحرارة، وسجل التاريخ، وإعداد معلمة المرحلة وغيرها من المهام.

1. هيكل البرنامج

ايه سي دي اس بي (1)

2.عرض مواد واجهة المستخدم

ايه سي دي اس بي (2)
ايه سي دي اس بي (4)
ايه سي دي اس بي (3)
ايه سي دي اس بي (5)

3.مثال لتطوير واجهة المستخدم

ايه سي دي اس بي (6)

4.C51 تصميم البرمجيات

برنامج أمر التهيئة للمهندس للتواصل مع لوحة التحكم باستخدام المنفذ التسلسلي T5L 2 هو كما يلي:

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 التي تتفاعل مع لوحة التحكم لتحقيق وظيفة الكشف عن تكوين الأسمنت هو كما يلي:

باطلة btn_click_handler()

{

#تعريف 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)

{

إذا (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 += (speed_val*2.45f);

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

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

{

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

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

{

is_en_tmp = uart2buf[2];

}

uart2rxsta = 0;

}

}

إذا (is_period1)

{

is_period1 = 0;

t_sample();

إذا (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);

}

 

الرجوع إلى الكود المصدري للمزيد.


وقت النشر: 02 ديسمبر 2023