開(kāi)封市中儀流量?jī)x表有限公司
暫無(wú)信息 |
閱讀:191發(fā)布時(shí)間:2021-12-27
智能電磁流量計(jì)軟件系統(tǒng)的開(kāi)發(fā)
3_3.1開(kāi)發(fā)環(huán)境
MCS5l是世界范圍內(nèi)的8位控制器架構(gòu)之一,雖然現(xiàn)在單片機(jī)的主流市場(chǎng)已不是Mcs5l系列單片機(jī),但McS51系列單片機(jī)在工業(yè)控制、儀器儀表、計(jì)算機(jī)、通信、家用電器等許多領(lǐng)域都有著極為廣泛的應(yīng)用,在應(yīng)用技術(shù)上已經(jīng)很成熟,在國(guó)內(nèi)外已有許多的產(chǎn)品開(kāi)發(fā)范例,且具有價(jià)格便宜、體積小巧、功耗低等的特點(diǎn),適于做工業(yè)產(chǎn)品的開(kāi)發(fā)應(yīng)用。Mcs5l是一種8位微處理器,但與目前的16位甚至32位的微控制器相比,8 位微處理器實(shí)現(xiàn)結(jié)構(gòu)簡(jiǎn)單,代碼密度高,內(nèi)置頻率達(dá)12洲z的時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機(jī)運(yùn)行的脈沖時(shí)序,其指令集簡(jiǎn)單易懂,許多指令可直接訪問(wèn)I/O 引腳,便于迅速操作(位操作)外圍設(shè)備。從結(jié)構(gòu)上說(shuō),Mcs5l包含處理器、程序存儲(chǔ)器(ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,分別說(shuō)明如下;
1.處理器(cPu)
處理器(c})u)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,cPu負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作, 完成運(yùn)算和控制輸入輸出功能等操作。
2.?dāng)?shù)據(jù)存儲(chǔ)器(RAM)
McS5l內(nèi)部有128個(gè)8位用戶數(shù)據(jù)存儲(chǔ)單元和128個(gè)專用寄存器單元,它們是統(tǒng)一編址的,用戶能使用的R柵只有128個(gè),可存放讀寫(xiě)的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問(wèn), 而不能用于存放用戶數(shù)據(jù);
3.程序存儲(chǔ)器(ROM)
MCs5l有4096個(gè)8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。
4.定時(shí)/計(jì)數(shù)器(ROM)
Mcs5l有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。
5.并行輸入輸出(I/O)口
Mcs51有4組8位I/O口(PO、P1、P2或P3),用于對(duì)外部數(shù)據(jù)的傳輸。
6.全雙工串行口
Mcs51內(nèi)置一個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用;另外,外部程序與數(shù)據(jù)存儲(chǔ)器的尋址范圍可達(dá)到64K。
7.中斷系統(tǒng)
Mcs5l具備較完善的中斷功能,有5個(gè)中斷源,包括2個(gè)外中斷、2個(gè)定時(shí)/ 計(jì)數(shù)器中斷和一個(gè)串行中斷,每個(gè)中斷源的優(yōu)先級(jí)是可編程的,可滿足不同的控制要求,并具有2級(jí)的優(yōu)先級(jí)別選擇。
3.3.2開(kāi)發(fā)工具
本文軟件開(kāi)發(fā)采用的編程語(yǔ)言是匯編語(yǔ)言。匯編語(yǔ)言雖然是一種層次非常低的語(yǔ)言,僅僅高于直接手工編寫(xiě)二進(jìn)制的機(jī)器指令碼,但作為最基本的編程語(yǔ)言之一,匯編語(yǔ)言雖然應(yīng)用的范圍不算很廣,但重要性卻勿庸置疑,因?yàn)樗軌蛲瓿稍S多其它語(yǔ)言所無(wú)法完成的功能。使用匯編語(yǔ)言編程,優(yōu)點(diǎn)是速度快,運(yùn)行效率高,可直接對(duì)硬件內(nèi)部進(jìn)行控制,匯編語(yǔ)言直接同計(jì)算機(jī)的底層軟件甚至硬件進(jìn)行交互,它具有如下一些優(yōu)點(diǎn):
1.能夠直接訪問(wèn)與硬件相關(guān)的存儲(chǔ)器或I/O端口;
2.能夠不受編譯器的限制,對(duì)生成的二進(jìn)制代碼進(jìn)行*的控制;
3.能夠?qū)﹃P(guān)鍵代碼進(jìn)行更準(zhǔn)確的控制,避免因線程共同訪問(wèn)或者硬件設(shè)備共享引起的死鎖;
4.能夠根據(jù)特定的應(yīng)用對(duì)代碼做的優(yōu)化,提高運(yùn)行速度;
5.能夠限度地發(fā)揮硬件的功能。
轉(zhuǎn)換器軟件代碼與硬件的關(guān)系非常密切,所以即使使用匯編語(yǔ)言編寫(xiě)的代碼非常難懂、開(kāi)發(fā)效率很低,但基于匯編語(yǔ)言的上述優(yōu)點(diǎn),能夠很好揚(yáng)長(zhǎng)避短,限度地發(fā)揮硬件的性能,所以采用匯編語(yǔ)言。3-3_3各模塊的開(kāi)發(fā)
1.MCS51資源的分配
對(duì)于電磁流量計(jì)信號(hào)轉(zhuǎn)換器系統(tǒng)來(lái)說(shuō),有三個(gè)系統(tǒng)的輸入:外部采集信號(hào)、外部觸發(fā)按鈕、用戶對(duì)鍵盤(pán)的操作。比較這三個(gè)輸入,系統(tǒng)對(duì)于外部采集的信號(hào)和外部觸發(fā)按鈕的響應(yīng)具有高實(shí)時(shí)性的要求,相對(duì)而言,對(duì)用戶操作鍵盤(pán)的響應(yīng)的實(shí)時(shí)}蘿靼瞧北辯硎二黻t鞋辮燁S5T實(shí)際開(kāi)發(fā)環(huán)境j聃Fs5 T只有兩個(gè)中斷源接][; 鍵盤(pán)的響應(yīng)可眨通過(guò)鍵盤(pán)掃描的方式來(lái)實(shí)現(xiàn),因此,將設(shè)計(jì)實(shí)時(shí)響應(yīng)外部信號(hào)的采集和外部觸發(fā)按鈕的動(dòng)作作為兩個(gè)中斷源的觸發(fā)源。另外,對(duì)中斷處理存在優(yōu)先級(jí)的問(wèn)題,在本系統(tǒng)中,毫無(wú)疑問(wèn),對(duì)外部信號(hào)的采集優(yōu)先級(jí)高于外部觸發(fā)按鈕的優(yōu)先級(jí),因此本系統(tǒng)設(shè)計(jì)將電極信號(hào)和參考信號(hào)設(shè)為中斷1的中斷源, 系統(tǒng)每lOms就對(duì)外部進(jìn)行一次采樣;中斷0設(shè)為中斷1的8分頻,每秒鐘對(duì)外部進(jìn)行大約12次采樣,迅速反應(yīng)系統(tǒng)外部狀態(tài),以及進(jìn)行系統(tǒng)自診斷處理,中斷1 的優(yōu)先級(jí)高于中斷0的優(yōu)先級(jí)。
2.程序的開(kāi)發(fā)
軟件系統(tǒng)所包含的模塊包括采集信號(hào)模塊、系統(tǒng)自診斷模塊、系統(tǒng)保護(hù)模塊、系統(tǒng)檢測(cè)模塊、系統(tǒng)日志模塊、系統(tǒng)算法實(shí)現(xiàn)模塊、顯示模塊、用戶操作處理模塊、外部觸發(fā)處理模塊、數(shù)據(jù)模塊。根據(jù)MCS51開(kāi)發(fā)環(huán)境,分成中斷處理模塊、主程序模塊、采樣模塊、鍵盤(pán)操作處理模塊、數(shù)據(jù)處理模塊、串行EEPROM操作模塊來(lái)實(shí)現(xiàn)軟件系統(tǒng)的功能。各程序模塊完成的任務(wù)及程序流程框圖如下;
1.中斷處理模塊
中斷0程序完成系統(tǒng)的自診斷、處理外部觸發(fā)動(dòng)作以及計(jì)算累計(jì)流量這些任務(wù)。診斷系統(tǒng)的工作狀態(tài),處理各種異常事件,給系統(tǒng)報(bào)警,異常事件包括電極電壓過(guò)大或者過(guò)小、參考電壓過(guò)大或者過(guò)小、A/D采樣飽和、上限報(bào)警、下限報(bào)警、累計(jì)流量溢出;外部觸發(fā)動(dòng)作,是指外部系統(tǒng)調(diào)零、外部觸發(fā)累計(jì)流量復(fù)位。中斷程序0程序框圖如圖3.15所示。圖3.16 MCS51主程序流程圖Fig.3.16 Main program flow chart for MCS51
3.采樣模塊的開(kāi)發(fā)
采樣模塊主要完成對(duì)外部信號(hào)的采集這一任務(wù),分別采集電極信號(hào)、參考信號(hào)盼波峰和波谷,采樣流程框圖如圖3.17圖3.18所示:Fig.3.18 AIDC program flow chartII
4.鍵盤(pán)操作模塊的開(kāi)發(fā)
鍵盤(pán)操作主要完成按鍵的確認(rèn)這一任務(wù)。本鍵盤(pán)采用的是4×4矩陣式接口方式,本系統(tǒng)采用掃描法實(shí)現(xiàn)按鍵的確認(rèn)。此方法分兩步進(jìn)行:步,識(shí)別鍵盤(pán)有無(wú)按鍵被按下;第二步,如果有鍵被按下,識(shí)別出具體的按鍵。
識(shí)別鍵盤(pán)有無(wú)按下的方法:讓所有的行線均置為低電平,檢查各列線電平是否有變化,如果有變化,則說(shuō)明有鍵按下,如果沒(méi)有變化,則說(shuō)明沒(méi)有鍵按下。識(shí)別具體按鍵的方法:逐列置低電平,其余各列置為高電平,檢查各行線的電平的變化,如果某行線為低電平,則可確定該行該列交叉點(diǎn)處的鍵被按下。處理按鍵的識(shí)別過(guò)程要考慮兩點(diǎn)問(wèn)題:去按鍵抖動(dòng)和防按鍵粘連。去抖動(dòng)一般采用軟件延時(shí)的方法,防粘連一般是通過(guò)邏輯判斷設(shè)標(biāo)志位的解決措施。按鍵確認(rèn)的流程框圖如下所示:圖3.19鍵值確認(rèn)流程圖Fig.3.19 Check the key flow chart
5.EEPROM操作模塊的開(kāi)發(fā)
EEPROM操作模塊主要完成從EEPROM讀取數(shù)據(jù)和把數(shù)據(jù)寫(xiě)到EEPROM的任務(wù)。根據(jù)所使用的EEPROM的使用規(guī)則,EEPROM操作程序流程如下圖所示:羞起始位“I“ ◆ 送操作碼◆ E次送操作地址t 《次送操作數(shù)據(jù)圖3.20 EEPROM操作流程Fig.3.20 EEPROM operation flow chart
6.顯示模塊
顯示模塊完成數(shù)據(jù)的顯示和系統(tǒng)菜單的顯示這兩個(gè)任務(wù)。數(shù)據(jù)的顯示比較簡(jiǎn)單,系統(tǒng)菜單的顯示則由于系統(tǒng)具有比較多的菜單選項(xiàng)而顯得略為復(fù)雜,其程序流程框圖如下所示: 開(kāi)始工按鍵的確認(rèn)冒標(biāo)志付查找數(shù)據(jù)表格,確定顯示入口程序地址顯示菜單烹結(jié)束圖3.21顯示程序流程框圖Fig.3.21 Display program flow chart
7.?dāng)?shù)據(jù)處理模塊
數(shù)據(jù)處理模塊完成的任務(wù)主要包括將采集進(jìn)來(lái)的數(shù)據(jù)進(jìn)行加、減、乘、除的運(yùn)算以及進(jìn)行數(shù)據(jù)碼制之間的轉(zhuǎn)換。在本系統(tǒng)中,在運(yùn)算時(shí)使用的數(shù)據(jù)格式是二MUVC A.@A+DP’I’R MOV DPL.A POP ACC MOV DPH.A CLR A JMP @A十DPTR
本系統(tǒng)的NVRAM容量為255B,可以存儲(chǔ)255個(gè)參數(shù),由于本系統(tǒng)的參數(shù)種類比較繁雜,數(shù)量卻不是很多,所以對(duì)該NVR塒的數(shù)據(jù)存儲(chǔ)作如下設(shè)計(jì):比較獨(dú)立的參數(shù),比如最小流量報(bào)警(Min alarm)、流量報(bào)警(Max alarm)、掉電次數(shù)(Main interrupt)等等參數(shù)存儲(chǔ)在NVRAM的前半部分,與運(yùn)算要用到的變量參數(shù)以及運(yùn)算過(guò)程中產(chǎn)生的中間變量存儲(chǔ)在NVRAM的后半部分,以阻尼系數(shù)為例, 與阻尼系數(shù)相關(guān)的在運(yùn)算過(guò)程中需要用到的中間變量,都存儲(chǔ)在該變量的后續(xù)的存儲(chǔ)空間內(nèi)。所有的參數(shù)都對(duì)應(yīng)一個(gè)固定的存儲(chǔ)位置,如表3.1所示表3.1NvRAM存儲(chǔ)參量對(duì)應(yīng)表存儲(chǔ)地址參量含義01H 最小流量報(bào)警02H 流量報(bào)警03II 掉電次數(shù)04H 出錯(cuò)標(biāo)志70H.74H 阻尼系數(shù)75H-79H 阻尼系數(shù)中間變量95H一99H 計(jì)算瞬時(shí)流量中間變量AOH-A5H 瞬時(shí)流量
EEPROM的容量為128B,本系統(tǒng)EEPROM內(nèi)記錄的是該轉(zhuǎn)換器的一些基本參數(shù), 如最小流量報(bào)警、流量報(bào)警、一次儀表的管徑、阻尼系數(shù)、脈沖寬度等等, 由于這部分參數(shù)數(shù)量不是很巨大,本系統(tǒng)設(shè)計(jì)一個(gè)數(shù)據(jù)表格,每個(gè)參數(shù)對(duì)應(yīng)一個(gè)固定的存儲(chǔ)位置,以方便參數(shù)的改寫(xiě)與查找。另外,當(dāng)用戶修改在EEPROM內(nèi)存儲(chǔ)的參數(shù)時(shí),EEPROM內(nèi)的參數(shù)也會(huì)作相應(yīng)的修改。擴(kuò)展閱讀:開(kāi)封中儀流量?jī)x表有限公司專業(yè)生產(chǎn)電磁流量計(jì)、孔板流量計(jì)、渦街流量計(jì)、文丘里流量計(jì)、V錐流量計(jì)、V型錐流量計(jì)、噴嘴流量計(jì)、插入式電磁流量計(jì)、智能電磁流量計(jì)、分體式電磁流量計(jì)、一體式電磁流量計(jì)、標(biāo)準(zhǔn)孔板流量計(jì)、標(biāo)準(zhǔn)孔板、一體化孔板流量計(jì)、標(biāo)準(zhǔn)噴嘴流量計(jì)、長(zhǎng)徑噴嘴流量計(jì)、標(biāo)準(zhǔn)噴嘴、長(zhǎng)徑噴嘴、插入渦街流量計(jì)、智能渦街流量計(jì),更多信息請(qǐng)?jiān)L問(wèn)開(kāi)封中儀網(wǎng)站:
儀表網(wǎng) 設(shè)計(jì)制作,未經(jīng)允許翻錄必究 .? ? ?
請(qǐng)輸入賬號(hào)
請(qǐng)輸入密碼
請(qǐng)輸驗(yàn)證碼
請(qǐng)輸入你感興趣的產(chǎn)品
請(qǐng)簡(jiǎn)單描述您的需求
請(qǐng)選擇省份