開封市中儀流量儀表有限公司
暫無信息 |
閱讀:176發(fā)布時(shí)間:2021-12-24
智能電磁流量計(jì)中斷服務(wù)程序
在主程序中,主要進(jìn)行各種初始化設(shè)置和操作,所有功能的實(shí)現(xiàn)都是以中斷形式喚醒單片機(jī)執(zhí)行,而單片機(jī)大部分時(shí)間處于休眠狀態(tài)。中斷是MSP430單片機(jī)的一大特色,有效地利用中斷可以簡化程序和提高執(zhí)行效率。本系統(tǒng)軟件設(shè)計(jì)部分主要涉及到的中斷服務(wù)程序主要有3個(gè),分別是定時(shí)器中斷服務(wù)程序、A/D中斷服務(wù)程序和鍵盤輸入中斷服務(wù)程序。
4.4.1定時(shí)器中斷
定時(shí)中斷是定時(shí)器最基本的工作應(yīng)用方式,其功能為,預(yù)定一個(gè)時(shí)間值, 到時(shí)間后產(chǎn)生中斷。定時(shí)器可以用來計(jì)時(shí),同樣也可以按照一定的頻率來執(zhí)行某一段程序,如定時(shí)信號(hào)檢測等。運(yùn)用計(jì)數(shù)器,隨著每次程序循環(huán)的次數(shù)來修改定時(shí)時(shí)間,程序每循環(huán)一次,改變一次狀態(tài)。程序每一個(gè)周期循環(huán)結(jié)束后, CPU就進(jìn)入低功耗模式。定時(shí)時(shí)間到后,觸發(fā)中斷,使CPU退出低功耗模式,開始新的循環(huán)。由于定時(shí)時(shí)間不斷地改變,所反映出來的狀態(tài)周期也隨著不斷地改變。
定時(shí)器中斷服務(wù)程序主要是用來控制勵(lì)磁方式和輸出PWM信號(hào)。在本系統(tǒng)設(shè)計(jì)中,通過控制定時(shí)器中斷程序來調(diào)節(jié)勵(lì)磁的變化及控制單片機(jī)輸出電流PWM輸出信號(hào),在程序初始化之后,中斷一被打開,此程序就一直在運(yùn)行。根據(jù)系統(tǒng)設(shè)計(jì)的需求來設(shè)定定時(shí)器的溢出時(shí)間及周期等。本系統(tǒng)軟件設(shè)計(jì)中的部分定時(shí)器中斷服務(wù)程序如下: #pragma vector=TIMERAQ)ECTOR interrupt void Timer.—A(void) { PlOUT^=0x10; nowfltnmb++; if(nowfltnmb>1 50) { nowfltnmb=O; nowfltflg=l; ) if(KeydelayFlag>0) { KeydelayNub=KeydelayNub+l; if(KeydelayNub>50) { KeydelayNub=0; KeydelayFlag=0; KeySwitch(1); >
) )
4.4.2~D轉(zhuǎn)換中斷
對(duì)于AD7790轉(zhuǎn)換器的數(shù)據(jù)讀取和控制,系統(tǒng)軟件設(shè)計(jì)主要用外部中斷服務(wù)程序的執(zhí)行。為了保證流量較小時(shí)也能達(dá)到較高的精度,在A/D的轉(zhuǎn)換的軟件設(shè)計(jì)中提出了要求,同時(shí)還考慮到了流量均勻時(shí)及流量不均勻時(shí)計(jì)數(shù)的區(qū)別。因?yàn)閷?duì)A/D轉(zhuǎn)換的讀取存在要有實(shí)時(shí)性,本系統(tǒng)設(shè)計(jì)采用外部中斷來完成這個(gè)功能。本系統(tǒng)設(shè)計(jì)中ADC為Σ-△型模數(shù)轉(zhuǎn)換器,ADC初始化的內(nèi)容包括:設(shè)定轉(zhuǎn)換時(shí)鐘頻率、數(shù)據(jù)采集、設(shè)置PGA、與CPU通信、選擇數(shù)字濾波方式和標(biāo)定模式、設(shè)定轉(zhuǎn)換速率等。ADC軟件設(shè)計(jì)的流程圖如圖4.3所示。圖4.3 ADC軟件設(shè)計(jì)的流程圖
AD7790模數(shù)轉(zhuǎn)換器的具體轉(zhuǎn)換原理等在第3.2.3節(jié)已經(jīng)作了詳細(xì)的介紹,在這里,系統(tǒng)與CPU的通信采用了該芯片*的三線通信方式。當(dāng)片選信號(hào)為低電平時(shí),三線方式選通,在這種情況下,SCLK、DIN和DOU啪Y三線就可以與CPU通信,這種狀態(tài)的轉(zhuǎn)變直到RDY端口的狀態(tài)變化而產(chǎn)生。這對(duì)于CPU的接口來說是比較適應(yīng)的,如果片選信號(hào)CS認(rèn)作為一個(gè)解碼信號(hào),它就能被當(dāng)作一個(gè)端口引腳。ADC開始工作后,直接進(jìn)行模擬信號(hào)的采樣轉(zhuǎn)換工作,然后等待轉(zhuǎn)換的完成。
鍵盤輸入中斷
MSP430單片機(jī)指令系統(tǒng)具有的跳轉(zhuǎn)指令和C語言的switch語句非常適合對(duì)鍵盤輸入信息處理,這些指令可以看成是鍵盤信息輸入的軟件接口。鍵盤輸入中斷服務(wù)程序主要完成對(duì)鍵盤管理工作,鍵盤通過接口與CPU相連,在相應(yīng)軟件的配合下,CPU可以采取中斷或者查詢方式了解有無鍵信息輸入并檢查是哪個(gè)鍵按下,然后執(zhí)行該按鍵所對(duì)應(yīng)的功能程序。最后再回到原始狀態(tài)。對(duì)于鍵盤處理,包括硬件和軟件兩部分,硬件電路在前面章節(jié)已經(jīng)給出,在這里不再敘述了,而對(duì)于軟件的處理,有如下一些問題要解決:
(1)去抖動(dòng)問題按鍵和鍵盤采用的是利用機(jī)械觸點(diǎn)的閉合與斷開來產(chǎn)生輸入電信號(hào),但是由于機(jī)械觸點(diǎn)的彈性作用,在鍵閉合與彈開的時(shí)候,往往會(huì)產(chǎn)生抖動(dòng),若系統(tǒng)處理不好,一次按鍵會(huì)被誤認(rèn)為是連續(xù)按了多次鍵。圖4.4給出的是按鍵帶來的電壓波形。一按鍵按下· ~ ∥ 前沿抖動(dòng)穩(wěn)定期k沿抖動(dòng)圖4.4按鍵開、閉時(shí)的電壓抖動(dòng)波形按鍵抖動(dòng)的時(shí)間長短取決于觸點(diǎn)的機(jī)械特性,一般按鍵抖動(dòng)時(shí)間大約5.10ms。因此,必須對(duì)按鍵的抖動(dòng)作相應(yīng)的處理,確保CPU只會(huì)對(duì)一次鍵入信息作一次處理,處理程序在按鍵穩(wěn)定后再檢查鍵的信息。當(dāng)然,克服按鍵抖動(dòng)的方法很多, 一種是用硬件,即在每個(gè)鍵上}JIIRC濾波電路或用一個(gè)RS觸發(fā)器組成防抖動(dòng)的電路。另一種方法是加入一個(gè)軟件延時(shí)程序,然后再確認(rèn)該按鍵是否被按下,從而防止誤判斷。在本系統(tǒng)中,我們采取的是軟硬件結(jié)合的方式來消除鍵盤抖動(dòng), 當(dāng)有按鍵下按時(shí),就會(huì)有一個(gè)的中斷,在中斷服務(wù)程序里,首先有一定的延時(shí), 這里本設(shè)計(jì)設(shè)置為10ms,然后再進(jìn)行鍵值的讀取。
(2)對(duì)于按鍵進(jìn)行編號(hào)以便于識(shí)別
為了使CPU能夠識(shí)別出鍵入的信息,對(duì)不同的按鍵必須有不同的鍵入的值或鍵盤編碼,以便轉(zhuǎn)入到相應(yīng)的處理程序。鍵的編碼一般由按鍵的硬件連接方式?jīng)Q定。
(3)按鍵信息的邏輯處理
在系統(tǒng)軟件設(shè)計(jì)中,除對(duì)按鍵能作識(shí)別處理外,還要考慮到人在操作時(shí)易產(chǎn)生的其他問題的邏輯處理。如多個(gè)按鍵同時(shí)被按下、在一個(gè)鍵功能正在處理的時(shí)候另外按鍵被誤按下、按鍵時(shí)間長短的影響等,所有這些問題一般情況下都能通過軟件解決。在這給出按鍵的中斷部分服務(wù)程序。初始化程序: void InitKey(void) { KEYDIR&=~(KEY0+KEYI+KEY2); //設(shè)置端口為輸入KEYIFG&=~(KEY0+KEYI+KEY2); //清除中斷標(biāo)志KEYIES l=KEY0+KEYI+KEY2; //設(shè)置下降沿中斷KEYIE I-KEY0+KEYl+KEY2; //打開端口中斷key0Count=O: //按鍵次數(shù)清零keyl Count=0: //按鍵次數(shù)清零key2Countl=0: //按鍵次數(shù)清零key2Count2=O; //按鍵次數(shù)清零) 打開及關(guān)閉鍵盤中斷程序: //sw: 0:關(guān)閉100-打開void KeySwitch(unsigned char sw) {if(sw—O、KEYIE&=~(KEY0+KEYI+KEY2);//關(guān)閉端121中斷elseKEYIE I_KEY0+KEYI+KEY2; //打開端口中斷) 系統(tǒng)用于消除抖動(dòng)的延時(shí)程序如下: void Delay(void) { inti; for(i=100;i一;》0); //延時(shí)一點(diǎn)時(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ì),更多信息請(qǐng)?jiān)L問開封中儀網(wǎng)站:
商 鋪:開封市中儀流量儀表有限公司 http://m.liuyangwu.com/st137260/
主營產(chǎn)品:分離式電磁流量傳感器
移動(dòng)端:開封市中儀流量儀表有限公司手機(jī)站
儀表網(wǎng) 設(shè)計(jì)制作,未經(jīng)允許翻錄必究 .? ? ?
請(qǐng)輸入賬號(hào)
請(qǐng)輸入密碼
請(qǐng)輸驗(yàn)證碼
請(qǐng)輸入你感興趣的產(chǎn)品
請(qǐng)簡單描述您的需求
號(hào)碼可能有誤,請(qǐng)核對(duì)!
請(qǐng)選擇省份