電磁流量計部分功能模塊的設計
4.5.1看門狗定時器模塊凹
看門狗定時器(WDT)是MSP430系列單片機常用的一種部件。因為單片機系統容易受到干擾,而導致系統跑飛或陷入死循環。看門狗的技術就是單片機抗干擾的軟件措施,它具有的特點是本身能獨立工作,基本不依賴于CPU,CPU 只在一個固定的時間間隔內與其打一次交道,表明整個系統“目前尚屬正常"。當看門狗被使用時,它先設置一定時時間,程序運行時,要在這個設定的定時時間內將看門狗計數器WDTCNT的值清零(通常是通過WDTCTL寄存器中的WDTCNTCL的位置位來清零該計數器),計數器重新計數。否則看門狗計數器就會溢出,就會認為程序陷入死循環,那么CPU復位就可以脫離死循環狀態。本系統設計多用的MSP430F149的看門狗模塊空間分配如表4.1所示。表4.1看門狗模塊空間分配名稱地址位15 8 7 6 5 4 讀出時是69H HOLD NMIES 瑚TMSEL 看門狗控寫入時是5AH nv.0 rw-0 n,v一0 rw-0 制寄存器120H 3 2 l O 、vDTCTL CNTCL SSEL ISl IS0 (w),rO rw-O rw一0 rw-0
一般來說看門狗定時器的硬件電路為一獨立于CPU之外的單穩部件,可用單穩電路構成,也可用自帶脈沖源的計數器構成。CPU正常工作時每隔一段時間就輸出一個脈沖,將單穩態系統觸發到暫穩態系統。當CPU陷入死循環后,再也不去觸發單穩態系統了,單穩態系統就可順利返回穩態。利用它返回穩態時輸出的信號作為復位信號,就可以使CPU退出死循環。部分程序如下: void main(void) { WDTCTL=WDTTPW+WDTHOLD; //停止看門狗初始化.. While(1) //死循環{ WDTCTL=WDT ARST 1 000; //看門狗模式,計數器從O開始計數.. //時間間隔1s ..特定功能的程序主體) }程序進入while循環后,設置看門狗定時間隔為1s,同時計數值清零,然后執行特定功能的程序主體,如此反復執行。如果特定功能程序主體部分的執行. 時間加上這段時間所執行的所有中斷處理時間之和小于設定的看門狗定時間隔1s,那么程序總是正常進行的;如果系統受到干擾,程序跑飛或陷入死循環,這時執行不至UWDTCTL=WDY ARST_1000;從而計數器沒有被清零,當計數器溢出時WDTIFG置位,產生系統PUC信號復位,這樣就脫離了死循環狀態。由于系統的PUC信號不會將WDTIFG位清零(POR信號將WDTIFG位清零), 所以可以在復位時通過檢測wDTIFG是否置位來判斷復位產生源:若WDTIFG為置位狀態,則為看門狗溢出復位或看門狗訪問出錯復位;若WDTIFG為復位狀態, 則為非看門狗復位。
4.5.2掉電保護模塊
以單片機為核心的儀表系統在高速運行時必須要考慮到掉電時的數據保存問題。當電源電壓還沒有降到危及系統正常工作的電壓以前就及時發出預警信號,單片機系統在收到此信號后,立即轉入中斷服務程序進行數據的保護,待干擾脈沖過去或系統重新上電后再次恢復被保護的數據。
由于本系統涉及到流量測量,流量的歷史數據以及累計數據對于系統本身來說是非常重要的。所以,本設計在解決掉電保護問題時采用了存貯器保存系統數據和狀態的方案,即掉電時將系統當時的數據和狀態保護在鐵電存儲器中, 電源電壓恢復后,系統保留掉電時的工作狀態并繼續工作或初始化后重新工作。此方案對于一般測控系統、尤其是在工業現場使用的大負荷的系統來說,增加成本不多,經濟實用。本設計采用是RAMTRON公司的FM25CL64系列的鐵電存儲器, (F&蝴)具有非易失性,并且可以像&蝴一樣快速讀寫,數據在掉電后可以保存10年。部分程序(延時和其他程序)如下: static void delay(void) { chari; for(i=20;i>0;i一); return; >static unsigned char Read_Status(void) { unsigned char status; P50UT&=-FM25一CS; P5DIR I=FM25_DIO; Send_ByteToFM25(CMD_RDSR); P5DIR&=~FM25 DIO;status 2 ReceByteFromFM250; P50UT I=FM25 CS; return status; >
4.5.3 LCD模塊
液晶顯示器對于儀表越來越重要,它就像人的眼睛一樣。因而,良好的顯示界面可以說是智能化儀表的發展趨勢。在本系統設計中,我們采用的是HFl286481圖形點陣液晶顯示器來顯示數據信息,此液晶顯示的工作原理等方面的內容在前面章節已經做過一些介紹了。其內部控制模塊為KS0108和KS0107。主要由行驅動器/列驅動器及128x64全點陣液晶顯示器組成。可完成圖形顯示, 也可以顯示8x4個(16x16點陣)漢字。在本系統中,我們將流量、總量、報警、以及所有的小數點都作為一段,當需要符號表示時就點亮相應的段。流量測量結果的單位為m3/h。該液晶顯示模塊具有自定義字符庫,允許用戶呵以根據顯盤示的需要在內部建立字符。對于存在的字符就不需要再進行字符的自定義了。液晶顯示模塊共有5種字符寫入方式:逐字依次輸入方式,光標左移輸入方式,光標右移輸入方式,頁面左滾動輸入方式和頁面右滾動輸入方式。本系統設計中,根據人們的正常習慣,采用光標右移輸入方式。液晶顯示模塊是一個慢顯示器件,在執行每條命令之前都必須先確定“忙" 標志為低電平,表示顯示模塊可以接受命令。顯示程序的步驟為:顯示模塊的初始化和根據所選的輸入字符方式顯示字符。顯示模塊的程序設計主要包括一下幾個子程序:寄存器與位聲明、“忙"標志位測試子程序、寫命令子程序、清顯示屏子程序、光標歸位子程序、初始化程序、設置地址子程序、寫入字符子程序、延時子程序等。
在本系統軟件部分的設計中,主要討論液晶模塊的初始化、流體流速的顯示、流體的累積流量顯示等信息。按系統設計的要求,在正常運行和顯示狀態下,LCD能夠設置瞬時流量、流向指示、累積流量及其單位,在查詢設置參數或參數設置狀態下,能顯示相應的漢字、操作菜單和被顯示或修改的參數值。顯示功能模塊由鍵盤消息和運算子程序后產生驅動,并根據狀態變量做出不同的反應。一般的軟件處理方法是根據實際顯示流量值,計算出每位等待顯示的數值,查找對應的段碼,按照LCD寫命令/數據的時序圖,從最小的地址位置開始發送段碼。同時,判斷位等待顯示的數值是否為零,而后做出相應的一些動作。
下面給出了本系統中液晶顯示初始化部分的程序; #Include”Display.h’’ void InitLCD(void) { P20UT&=一RST; DelayTime(100); P20UT l=RST; WritelnstruLeft(0x3e); WritelnstruLeft(Ox30; WriteInstmRight(0x3e); WritelnstruRight(0x30; SetStartLine(0); ShowString(0,0,"m3/s”); ShowString(1,0,flu); ∥液晶顯示器復位∥脫離復位狀態//關閉左半屏顯示//打開左半屏顯示∥關閉右半屏顯示∥打開右半屏顯示
4.6本章小結
本章主要詳細的介紹了基于MSP430F149單片機的流量計轉換器設計中的軟件部分。整個系統軟件包括系統控制主程序、初始化程序、中斷服務程序(定時器中斷、AD轉換中斷、鍵盤輸入中斷)、其他功能模塊(看門狗模塊、鐵電存儲器模塊、LCD模塊)的程序設計。其中軟件設計的重點是系統控制主程序(菜單程序),初始化程序及中斷服務部分,這使得系統可以實時的顯示當前流量、累積流量、歷史數據,輸出控制信號,并且具備了相關數據的設置功能等.擴展閱讀:開封中儀流量儀表有限公司專業生產電磁流量計、孔板流量計、渦街流量計、文丘里流量計、V錐流量計、V型錐流量計、噴嘴流量計、插入式電磁流量計、智能電磁流量計、分體式電磁流量計、一體式電磁流量計、標準孔板流量計、標準孔板、一體化孔板流量計、標準噴嘴流量計、長徑噴嘴流量計、標準噴嘴、長徑噴嘴、插入渦街流量計、智能渦街流量計,更多信息請訪問開封中儀網站:
免責聲明
客服熱線: 13199863987
加盟熱線: 13199863987
媒體合作: 0571-87759945
投訴熱線: 0571-87759942
下載儀表站APP
Ybzhan手機版
Ybzhan公眾號
Ybzhan小程序