開封市中儀流量儀表有限公司
暫無信息 |
閱讀:176發(fā)布時(shí)間:2021-12-23
電磁流量計(jì)部分功能模塊的設(shè)計(jì)
4.5.1看門狗定時(shí)器模塊凹
看門狗定時(shí)器(WDT)是MSP430系列單片機(jī)常用的一種部件。因?yàn)閱纹瑱C(jī)系統(tǒng)容易受到干擾,而導(dǎo)致系統(tǒng)跑飛或陷入死循環(huán)。看門狗的技術(shù)就是單片機(jī)抗干擾的軟件措施,它具有的特點(diǎn)是本身能獨(dú)立工作,基本不依賴于CPU,CPU 只在一個(gè)固定的時(shí)間間隔內(nèi)與其打一次交道,表明整個(gè)系統(tǒng)“目前尚屬正常"。當(dāng)看門狗被使用時(shí),它先設(shè)置一定時(shí)時(shí)間,程序運(yùn)行時(shí),要在這個(gè)設(shè)定的定時(shí)時(shí)間內(nèi)將看門狗計(jì)數(shù)器WDTCNT的值清零(通常是通過WDTCTL寄存器中的WDTCNTCL的位置位來清零該計(jì)數(shù)器),計(jì)數(shù)器重新計(jì)數(shù)。否則看門狗計(jì)數(shù)器就會溢出,就會認(rèn)為程序陷入死循環(huán),那么CPU復(fù)位就可以脫離死循環(huán)狀態(tài)。本系統(tǒng)設(shè)計(jì)多用的MSP430F149的看門狗模塊空間分配如表4.1所示。表4.1看門狗模塊空間分配名稱地址位15 8 7 6 5 4 讀出時(shí)是69H HOLD NMIES 瑚TMSEL 看門狗控寫入時(shí)是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
一般來說看門狗定時(shí)器的硬件電路為一獨(dú)立于CPU之外的單穩(wěn)部件,可用單穩(wěn)電路構(gòu)成,也可用自帶脈沖源的計(jì)數(shù)器構(gòu)成。CPU正常工作時(shí)每隔一段時(shí)間就輸出一個(gè)脈沖,將單穩(wěn)態(tài)系統(tǒng)觸發(fā)到暫穩(wěn)態(tài)系統(tǒng)。當(dāng)CPU陷入死循環(huán)后,再也不去觸發(fā)單穩(wěn)態(tài)系統(tǒng)了,單穩(wěn)態(tài)系統(tǒng)就可順利返回穩(wěn)態(tài)。利用它返回穩(wěn)態(tài)時(shí)輸出的信號作為復(fù)位信號,就可以使CPU退出死循環(huán)。部分程序如下: void main(void) { WDTCTL=WDTTPW+WDTHOLD; //停止看門狗初始化.. While(1) //死循環(huán){ WDTCTL=WDT ARST 1 000; //看門狗模式,計(jì)數(shù)器從O開始計(jì)數(shù).. //時(shí)間間隔1s ..特定功能的程序主體) }程序進(jìn)入while循環(huán)后,設(shè)置看門狗定時(shí)間隔為1s,同時(shí)計(jì)數(shù)值清零,然后執(zhí)行特定功能的程序主體,如此反復(fù)執(zhí)行。如果特定功能程序主體部分的執(zhí)行. 時(shí)間加上這段時(shí)間所執(zhí)行的所有中斷處理時(shí)間之和小于設(shè)定的看門狗定時(shí)間隔1s,那么程序總是正常進(jìn)行的;如果系統(tǒng)受到干擾,程序跑飛或陷入死循環(huán),這時(shí)執(zhí)行不至UWDTCTL=WDY ARST_1000;從而計(jì)數(shù)器沒有被清零,當(dāng)計(jì)數(shù)器溢出時(shí)WDTIFG置位,產(chǎn)生系統(tǒng)PUC信號復(fù)位,這樣就脫離了死循環(huán)狀態(tài)。由于系統(tǒng)的PUC信號不會將WDTIFG位清零(POR信號將WDTIFG位清零), 所以可以在復(fù)位時(shí)通過檢測wDTIFG是否置位來判斷復(fù)位產(chǎn)生源:若WDTIFG為置位狀態(tài),則為看門狗溢出復(fù)位或看門狗訪問出錯(cuò)復(fù)位;若WDTIFG為復(fù)位狀態(tài), 則為非看門狗復(fù)位。
4.5.2掉電保護(hù)模塊
以單片機(jī)為核心的儀表系統(tǒng)在高速運(yùn)行時(shí)必須要考慮到掉電時(shí)的數(shù)據(jù)保存問題。當(dāng)電源電壓還沒有降到危及系統(tǒng)正常工作的電壓以前就及時(shí)發(fā)出預(yù)警信號,單片機(jī)系統(tǒng)在收到此信號后,立即轉(zhuǎn)入中斷服務(wù)程序進(jìn)行數(shù)據(jù)的保護(hù),待干擾脈沖過去或系統(tǒng)重新上電后再次恢復(fù)被保護(hù)的數(shù)據(jù)。
由于本系統(tǒng)涉及到流量測量,流量的歷史數(shù)據(jù)以及累計(jì)數(shù)據(jù)對于系統(tǒng)本身來說是非常重要的。所以,本設(shè)計(jì)在解決掉電保護(hù)問題時(shí)采用了存貯器保存系統(tǒng)數(shù)據(jù)和狀態(tài)的方案,即掉電時(shí)將系統(tǒng)當(dāng)時(shí)的數(shù)據(jù)和狀態(tài)保護(hù)在鐵電存儲器中, 電源電壓恢復(fù)后,系統(tǒng)保留掉電時(shí)的工作狀態(tài)并繼續(xù)工作或初始化后重新工作。此方案對于一般測控系統(tǒng)、尤其是在工業(yè)現(xiàn)場使用的大負(fù)荷的系統(tǒng)來說,增加成本不多,經(jīng)濟(jì)實(shí)用。本設(shè)計(jì)采用是RAMTRON公司的FM25CL64系列的鐵電存儲器, (F&蝴)具有非易失性,并且可以像&蝴一樣快速讀寫,數(shù)據(jù)在掉電后可以保存10年。部分程序(延時(shí)和其他程序)如下: 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模塊
液晶顯示器對于儀表越來越重要,它就像人的眼睛一樣。因而,良好的顯示界面可以說是智能化儀表的發(fā)展趨勢。在本系統(tǒng)設(shè)計(jì)中,我們采用的是HFl286481圖形點(diǎn)陣液晶顯示器來顯示數(shù)據(jù)信息,此液晶顯示的工作原理等方面的內(nèi)容在前面章節(jié)已經(jīng)做過一些介紹了。其內(nèi)部控制模塊為KS0108和KS0107。主要由行驅(qū)動器/列驅(qū)動器及128x64全點(diǎn)陣液晶顯示器組成??赏瓿蓤D形顯示, 也可以顯示8x4個(gè)(16x16點(diǎn)陣)漢字。在本系統(tǒng)中,我們將流量、總量、報(bào)警、以及所有的小數(shù)點(diǎn)都作為一段,當(dāng)需要符號表示時(shí)就點(diǎn)亮相應(yīng)的段。流量測量結(jié)果的單位為m3/h。該液晶顯示模塊具有自定義字符庫,允許用戶呵以根據(jù)顯盤示的需要在內(nèi)部建立字符。對于存在的字符就不需要再進(jìn)行字符的自定義了。液晶顯示模塊共有5種字符寫入方式:逐字依次輸入方式,光標(biāo)左移輸入方式,光標(biāo)右移輸入方式,頁面左滾動輸入方式和頁面右滾動輸入方式。本系統(tǒng)設(shè)計(jì)中,根據(jù)人們的正常習(xí)慣,采用光標(biāo)右移輸入方式。液晶顯示模塊是一個(gè)慢顯示器件,在執(zhí)行每條命令之前都必須先確定“忙" 標(biāo)志為低電平,表示顯示模塊可以接受命令。顯示程序的步驟為:顯示模塊的初始化和根據(jù)所選的輸入字符方式顯示字符。顯示模塊的程序設(shè)計(jì)主要包括一下幾個(gè)子程序:寄存器與位聲明、“忙"標(biāo)志位測試子程序、寫命令子程序、清顯示屏子程序、光標(biāo)歸位子程序、初始化程序、設(shè)置地址子程序、寫入字符子程序、延時(shí)子程序等。
在本系統(tǒng)軟件部分的設(shè)計(jì)中,主要討論液晶模塊的初始化、流體流速的顯示、流體的累積流量顯示等信息。按系統(tǒng)設(shè)計(jì)的要求,在正常運(yùn)行和顯示狀態(tài)下,LCD能夠設(shè)置瞬時(shí)流量、流向指示、累積流量及其單位,在查詢設(shè)置參數(shù)或參數(shù)設(shè)置狀態(tài)下,能顯示相應(yīng)的漢字、操作菜單和被顯示或修改的參數(shù)值。顯示功能模塊由鍵盤消息和運(yùn)算子程序后產(chǎn)生驅(qū)動,并根據(jù)狀態(tài)變量做出不同的反應(yīng)。一般的軟件處理方法是根據(jù)實(shí)際顯示流量值,計(jì)算出每位等待顯示的數(shù)值,查找對應(yīng)的段碼,按照LCD寫命令/數(shù)據(jù)的時(shí)序圖,從最小的地址位置開始發(fā)送段碼。同時(shí),判斷位等待顯示的數(shù)值是否為零,而后做出相應(yīng)的一些動作。
下面給出了本系統(tǒng)中液晶顯示初始化部分的程序; #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); ∥液晶顯示器復(fù)位∥脫離復(fù)位狀態(tài)//關(guān)閉左半屏顯示//打開左半屏顯示∥關(guān)閉右半屏顯示∥打開右半屏顯示
4.6本章小結(jié)
本章主要詳細(xì)的介紹了基于MSP430F149單片機(jī)的流量計(jì)轉(zhuǎn)換器設(shè)計(jì)中的軟件部分。整個(gè)系統(tǒng)軟件包括系統(tǒng)控制主程序、初始化程序、中斷服務(wù)程序(定時(shí)器中斷、AD轉(zhuǎn)換中斷、鍵盤輸入中斷)、其他功能模塊(看門狗模塊、鐵電存儲器模塊、LCD模塊)的程序設(shè)計(jì)。其中軟件設(shè)計(jì)的重點(diǎn)是系統(tǒng)控制主程序(菜單程序),初始化程序及中斷服務(wù)部分,這使得系統(tǒng)可以實(shí)時(shí)的顯示當(dāng)前流量、累積流量、歷史數(shù)據(jù),輸出控制信號,并且具備了相關(guān)數(shù)據(jù)的設(shè)置功能等.擴(kuò)展閱讀:開封中儀流量儀表有限公司專業(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ì)、長徑噴嘴流量計(jì)、標(biāo)準(zhǔn)噴嘴、長徑噴嘴、插入渦街流量計(jì)、智能渦街流量計(jì),更多信息請?jiān)L問開封中儀網(wǎng)站:
儀表網(wǎng) 設(shè)計(jì)制作,未經(jīng)允許翻錄必究 .? ? ?
請輸入賬號
請輸入密碼
請輸驗(yàn)證碼
請輸入你感興趣的產(chǎn)品
請簡單描述您的需求
號碼可能有誤,請核對!
請選擇省份