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