——DWIN डेवलपर फोरम से
DWIN फोरम द्वारा अनुशंसित पुरस्कार विजेता ओपन सोर्स केस का उपयोग निर्माण उद्योग में सीमेंट घटक सामग्री का पता लगाने के लिए किया जा सकता है - T5L स्मार्ट स्क्रीन पर आधारित एक सीमेंट बहु-राशि मापने वाला उपकरण।ठोस समाधान और तरल सीमेंट घटक सामग्री का पता लगाने के कार्य का एहसास करने और दर के वास्तविक समय प्रदर्शन का समर्थन करने के लिए इंजीनियर इलेक्ट्रॉनिक वजन पहचान मॉड्यूल, तापमान माप मॉड्यूल, हीटिंग मॉड्यूल, नमी सेंसर और मिश्रण मॉड्यूल को नियंत्रित करने के लिए T5L स्मार्ट स्क्रीन का उपयोग करते हैं। तापमान सेटिंग, इतिहास रिकॉर्ड, स्टेज पैरामीटर सेटिंग और अन्य कार्य।
1. कार्यक्रम संरचना
2.यूआई सामग्री प्रदर्शन
3.यूआई विकास उदाहरण
4.C51 सॉफ्टवेयर डिजाइन
T5L सीरियल पोर्ट 2 का उपयोग करके नियंत्रण बोर्ड के साथ संचार करने के लिए इंजीनियर के लिए इनिशियलाइज़ेशन कमांड प्रोग्राम इस प्रकार है:
शून्य ऐप_इनिट()
{
is_testing = 0;
टेस्ट_रन_टाइम = 0;
is_sec = 0;
अवधि1 = 0;
is_अवधि1 = 0;
uart2_init(115200);
सेंड_बाइट्स("AT+INIT=0\r\n",sizeof("AT+INIT=0\r\n")-1);
sys_delay_ms(2500);
sys_pic(1);
सेंड_बाइट्स("AT+START\r\n",sizeof("AT+START\r\n")-1);
}
सीमेंट संरचना का पता लगाने के कार्य को साकार करने के लिए नियंत्रण बोर्ड के साथ बातचीत करने वाली T5L बुद्धिमान स्क्रीन का मुख्य कार्यक्रम इस प्रकार है:
शून्य 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));
कम्बफ[btn_val+1] = 0;
sys_write_vp(TEST_TIME_VP,commbuff,5);
यदि(uart2rxsta&UART2_PACKET_OK)
{
अगर(uart2buf[0]==0x01&&uart2buf[1]==0x02)
{
init_weight = *(फ्लोट*)(uart2buf+2);
init_weight *= (*(फ्लोट*)flashdat);
sys_write_vp(0x1178, (u8*)&init_weight, 2);
}अन्यथा यदि(uart2buf[0]==0x02&&uart2buf[1]==0x05)
{
init_ml = *(फ्लोट*)(uart2buf+2);
init_ml /= (*(फ्लोट*)फ्लैशडैट+20);
sys_write_vp(0x1180, (u8*)&init_ml, 2);
}अन्यथा यदि(uart2buf[0]==0x03&&uart2buf[1]==0x07)
{
स्पीड_वैल = *(फ्लोट*)(uart2buf+2);
डिस्प_वैल += (स्पीड_वैल*2.45एफ);
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];
}
uart2rxsta = 0;
}
}
यदि(is_period1)
{
is_अवधि1 = 0;
t_sample();
यदि(परीक्षण किया जा रहा है&&है_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)
प्रारंभ_विन_बीटीएन_क्लिक_हैंडलर(बीटीएन_वैल);
btn_val = 0;
sys_write_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
}
अधिक जानकारी के लिए स्रोत कोड देखें।
पोस्ट करने का समय: दिसम्बर-02-2023