SPCE061A在語(yǔ)音環(huán)境濕度測(cè)量?jī)x的應(yīng)用
本系統(tǒng)直接使用SPCE061A精簡(jiǎn)開(kāi)發(fā)板上的按鍵,61板上按鍵電路如圖 2.7。
圖 2.7 61板按鍵電路3 系統(tǒng)軟件設(shè)計(jì)
本方案的軟件系統(tǒng)包括下面模塊:
按鍵掃描:掃描按鍵,判斷是否有鍵按下,在Key.c文件中實(shí)現(xiàn);
濕度測(cè)量:端口初始化,測(cè)量濕度并返回濕度值,在Hum_Measure.c文件中實(shí)現(xiàn);
語(yǔ)音播放任意數(shù)字:播放任意的整數(shù),本系統(tǒng)中用來(lái)播放濕度值,在PlayVoice.c文件中實(shí)現(xiàn);
中斷服務(wù):語(yǔ)音播放中斷服務(wù)程序和IRQ2中斷讀計(jì)數(shù)值程序,在isr.asm文件中定義。
3.1 各模塊程序說(shuō)明
3.1.1 主程序
主程序流程如圖 3.1:調(diào)用按鍵掃描程序讀取鍵值,如果是KEY1鍵按下則啟動(dòng)測(cè)量,調(diào)用濕度測(cè)量函數(shù)測(cè)量濕度,并根據(jù)測(cè)量結(jié)果進(jìn)行相應(yīng)播放;如果不是KEY1鍵按下,返回繼續(xù)掃描按鍵。
注意:在每次測(cè)量前都會(huì)關(guān)斷快速中斷FIQ,這是因?yàn)樵跍y(cè)量過(guò)程中用到了定時(shí)/計(jì)數(shù)器TimerA,而在語(yǔ)音播放時(shí)打開(kāi)了FIQ中斷,所以在測(cè)量前需先關(guān)閉,以免在測(cè)量過(guò)程中CPU一直相應(yīng)FIQ中斷,造成不必要的麻煩。
圖 3.1 主程序流程圖3.1.2 按鍵掃描模塊
本系統(tǒng)中只用到了一個(gè)按鍵--61板上的KEY1鍵,這個(gè)鍵和IOA0連接。按鍵掃描程序流程如圖 3.2所示。利用延時(shí)去抖的方法,先取一次端口數(shù)據(jù),延時(shí)一段時(shí)間,一般延時(shí)幾十ms即可,再取一次端口數(shù)據(jù),如果二者相同,說(shuō)明取到了正確的鍵值。
圖 3.2 按鍵掃描程序流程圖
評(píng)論