單片機(jī)鍵盤中斷模塊與AD轉(zhuǎn)換模塊_第1頁(yè)
單片機(jī)鍵盤中斷模塊與AD轉(zhuǎn)換模塊_第2頁(yè)
單片機(jī)鍵盤中斷模塊與AD轉(zhuǎn)換模塊_第3頁(yè)
單片機(jī)鍵盤中斷模塊與AD轉(zhuǎn)換模塊_第4頁(yè)
單片機(jī)鍵盤中斷模塊與AD轉(zhuǎn)換模塊_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第九章第九章 鍵盤中斷模塊與鍵盤中斷模塊與A/D轉(zhuǎn)換模塊轉(zhuǎn)換模塊 主要內(nèi)容v 鍵盤基本問(wèn)題與GP32的鍵盤中斷口v 匯編語(yǔ)言鍵盤中斷模塊編程實(shí)例 v 08C語(yǔ)言鍵盤中斷模塊編程實(shí)例 v MC68HC908GP32 MCU內(nèi)部的A/D轉(zhuǎn)換模塊 v MC68HC908GP32 MCU A/D轉(zhuǎn)換編程實(shí)例 9.1 鍵盤基本問(wèn)題與GP32的鍵盤中斷口9.1 鍵盤基本問(wèn)題與鍵盤基本問(wèn)題與GP32的鍵盤中斷口的鍵盤中斷口9.1.1 鍵盤的基本問(wèn)題鍵盤的基本問(wèn)題 (1)鍵的識(shí)別)鍵的識(shí)別 如何知道鍵盤上哪個(gè)鍵被按下就是鍵盤識(shí)別問(wèn)題。鍵盤識(shí)別主要如何知道鍵盤上哪個(gè)鍵被按下就是鍵盤識(shí)別問(wèn)題。鍵盤識(shí)別主要有行掃描

2、法與行反轉(zhuǎn)法。有行掃描法與行反轉(zhuǎn)法。(2)抖動(dòng)問(wèn)題)抖動(dòng)問(wèn)題 當(dāng)按下一個(gè)鍵時(shí),會(huì)出現(xiàn)所按的鍵在閉合位置和斷開(kāi)位置之間跳當(dāng)按下一個(gè)鍵時(shí),會(huì)出現(xiàn)所按的鍵在閉合位置和斷開(kāi)位置之間跳幾下才穩(wěn)定到閉合狀態(tài)的情況,當(dāng)釋放一個(gè)按鍵時(shí)也會(huì)出現(xiàn)類似的情幾下才穩(wěn)定到閉合狀態(tài)的情況,當(dāng)釋放一個(gè)按鍵時(shí)也會(huì)出現(xiàn)類似的情況,這就是抖動(dòng)問(wèn)題。解決抖動(dòng)的方法通常是延遲等待抖動(dòng)的消失或況,這就是抖動(dòng)問(wèn)題。解決抖動(dòng)的方法通常是延遲等待抖動(dòng)的消失或多次識(shí)別判定。多次識(shí)別判定。(3)重鍵問(wèn)題)重鍵問(wèn)題 有兩個(gè)或兩個(gè)以上按鍵同時(shí)處于閉合狀態(tài)的處理問(wèn)題。在軟件上,有兩個(gè)或兩個(gè)以上按鍵同時(shí)處于閉合狀態(tài)的處理問(wèn)題。在軟件上,處理重鍵問(wèn)題通常

3、有連鎖法與巡回法。處理重鍵問(wèn)題通常有連鎖法與巡回法。 9.1 鍵盤基本問(wèn)題與GP32的鍵盤中斷口 +5V 5K4行線行線m1 m2 m3 m4 列線列線 n1 n2 n3 n4 44鍵盤結(jié)構(gòu)鍵盤結(jié)構(gòu)9.1 鍵盤基本問(wèn)題與GP32的鍵盤中斷口9.1.2 MC68HC908GP32單片機(jī)的鍵盤中斷模塊單片機(jī)的鍵盤中斷模塊(1)鍵盤狀態(tài)和控制寄存器()鍵盤狀態(tài)和控制寄存器(Keyboard Status and Control Register ,INTKBSCR) INTKBSCR包含了鍵盤中斷請(qǐng)求標(biāo)志、屏蔽鍵盤中斷請(qǐng)求、定義包含了鍵盤中斷請(qǐng)求標(biāo)志、屏蔽鍵盤中斷請(qǐng)求、定義鍵盤中斷的觸發(fā)方式、清除鍵

4、盤中斷標(biāo)志等功能。其地址是鍵盤中斷的觸發(fā)方式、清除鍵盤中斷標(biāo)志等功能。其地址是$001A。數(shù)據(jù)位數(shù)據(jù)位 D7 D6 D5 D4 D3 D2 D1 D0定義定義 KEY ACKK IMASKK MODEK復(fù)位復(fù)位 0 0 0 0 0 0 0 0鍵盤中斷鍵盤中斷屏蔽位屏蔽位 鍵盤中斷鍵盤中斷引腳觸發(fā)引腳觸發(fā)方式位方式位 鍵盤鍵盤(中斷中斷)應(yīng)答位應(yīng)答位鍵盤鍵盤(中斷中斷)標(biāo)志位標(biāo)志位 未用未用9.1 鍵盤基本問(wèn)題與GP32的鍵盤中斷口(2)鍵盤中斷允許寄存器()鍵盤中斷允許寄存器(Keyboard Interrupt Enable Register,INTBIER) INTBIER的各位決定所對(duì)應(yīng)

5、的引腳是否允許中斷進(jìn)入。地址為:的各位決定所對(duì)應(yīng)的引腳是否允許中斷進(jìn)入。地址為:$001B。 數(shù)據(jù)位數(shù)據(jù)位 D7 D6 D5 D4 D3 D2 D1 D0定義定義KBIE7 KBIE6 KBIE5 KBIE4 KBIE3 KBIE2 KBIE1 KBIE0復(fù)位復(fù)位 0 0 0 0 0 0 0 0 D7D0,分別記為,分別記為KBIE7KBIE0,可讀寫(xiě)。若,可讀寫(xiě)。若KBIEx=1,表,表示相應(yīng)引腳示相應(yīng)引腳KBIEx pin(也就是引腳(也就是引腳PTAx pin)被定義為中斷引入引)被定義為中斷引入引腳,反之則不能作為中斷輸入引腳。復(fù)位時(shí),全為腳,反之則不能作為中斷輸入引腳。復(fù)位時(shí),全為0

6、。 9.1 鍵盤基本問(wèn)題與GP32的鍵盤中斷口(3)鍵盤中斷編程相關(guān)問(wèn)題)鍵盤中斷編程相關(guān)問(wèn)題 要進(jìn)行鍵盤中斷方面的編程,需了解下列問(wèn)題:要進(jìn)行鍵盤中斷方面的編程,需了解下列問(wèn)題: 1)鍵盤中斷矢量地址:)鍵盤中斷矢量地址:$FFE0$FFE1。 2)鍵盤中斷初始化順序:先設(shè)置鍵盤狀態(tài)和控制寄存器)鍵盤中斷初始化順序:先設(shè)置鍵盤狀態(tài)和控制寄存器(INTKBSCR),后設(shè)置鍵盤中斷允許寄存器(),后設(shè)置鍵盤中斷允許寄存器(INTKBIER)。)。 3)為避免鍵盤誤中斷,在鍵盤初始化時(shí),建議按下列順序:)為避免鍵盤誤中斷,在鍵盤初始化時(shí),建議按下列順序: 令令I(lǐng)MASKK=1(屏蔽鍵盤中斷屏蔽鍵盤

7、中斷)、設(shè)置、設(shè)置KBIEx1(定義中斷引腳定義中斷引腳)、寫(xiě)、寫(xiě)ACKK=1(清除鍵盤中斷請(qǐng)求清除鍵盤中斷請(qǐng)求)、令、令I(lǐng)MASKK=0(開(kāi)放鍵盤中斷開(kāi)放鍵盤中斷)。 也可以用下述方法:也可以用下述方法: 通過(guò)通過(guò)DDRA定義定義PTAx pin為輸出、寫(xiě)為輸出、寫(xiě)1到到PTAx(使得(使得PTAx pin為高電為高電平)、設(shè)置平)、設(shè)置KBIEx1(定義中斷引腳定義中斷引腳)。 4)注意在中斷子程序中的入口和出口參數(shù)。)注意在中斷子程序中的入口和出口參數(shù)。 5)在)在Wait和和Stop模式下,鍵盤中斷仍可發(fā)生。模式下,鍵盤中斷仍可發(fā)生。返回返回9.2 匯編語(yǔ)言鍵盤中斷模塊編程實(shí)例9.2

8、匯編語(yǔ)言鍵盤中斷模塊編程實(shí)例匯編語(yǔ)言鍵盤中斷模塊編程實(shí)例44鍵盤與單片機(jī)接法示例鍵盤與單片機(jī)接法示例 VDD 單片機(jī)單片機(jī) 內(nèi)部上拉電阻內(nèi)部上拉電阻 1 2 3 A 單片機(jī)單片機(jī)PTA口引腳口引腳行線行線m1 PTA0 4 5 6 B m2 PTA1 7 8 9 C m3 PTA2 * 0 # D m4 PTA3 列線列線 n1 n2 n3 n4 PTA7 PTA6 PTA5 PTA49.2 匯編語(yǔ)言鍵盤中斷模塊編程實(shí)例(1)鍵值計(jì)算方法)鍵值計(jì)算方法按上圖的接法可以得出按上圖的接法可以得出鍵值表,如下圖。鍵值鍵值表,如下圖。鍵值可以通過(guò)掃描法獲得,可以通過(guò)掃描法獲得,由鍵值通過(guò)查表法編程由鍵

9、值通過(guò)查表法編程得到定義值。得到定義值。9.2.1 按鍵識(shí)別與鍵盤定義子程序按鍵識(shí)別與鍵盤定義子程序 1 EE 2 DE 3 BE A 7E 4 ED 5 DD 6 DD B 7D 7 EB 8 DB 9 BB C 7B * E7 0 D7 # B7 D 77定義符定義符鍵值鍵值鍵盤定義鍵盤定義(2)鍵盤編程匯編語(yǔ)言子程序鍵盤編程匯編語(yǔ)言子程序9.3 08C語(yǔ)言鍵盤中斷模塊編程實(shí)例(1)鍵盤中斷編程匯編主程序鍵盤中斷編程匯編主程序(2)鍵盤中斷編程的鍵盤中斷編程的PC機(jī)方的機(jī)方的VB界面與程序界面與程序9.3 08C語(yǔ)言鍵盤中斷模塊編程實(shí)例語(yǔ)言鍵盤中斷模塊編程實(shí)例 9.3.1 按鍵識(shí)別與鍵盤定

10、義函數(shù)按鍵識(shí)別與鍵盤定義函數(shù) 9.3.2 鍵盤中斷編程鍵盤中斷編程08C語(yǔ)言舉例語(yǔ)言舉例(1)鍵盤中斷編程實(shí)例的鍵盤中斷編程實(shí)例的08C主函數(shù)主函數(shù)(2)鍵盤中斷編程實(shí)例的鍵盤中斷編程實(shí)例的08C中斷矢量表文件中斷矢量表文件9.2.2 鍵盤中斷編程舉例鍵盤中斷編程舉例返回返回9.4 MC68HC908GP32 MCU內(nèi)部的A/D轉(zhuǎn)換模塊9.4 MC68HC908GP32 MCU內(nèi)部的內(nèi)部的A/D轉(zhuǎn)換模塊轉(zhuǎn)換模塊9.4.1 A/D轉(zhuǎn)換相關(guān)基礎(chǔ)知識(shí)轉(zhuǎn)換相關(guān)基礎(chǔ)知識(shí) A/D轉(zhuǎn)換模塊(轉(zhuǎn)換模塊(Analog To Digital Convert Module)即模數(shù)轉(zhuǎn)換)即模數(shù)轉(zhuǎn)換模塊的功能是將電壓信

11、號(hào)轉(zhuǎn)換為對(duì)應(yīng)的數(shù)字信號(hào)。實(shí)際應(yīng)用中,這個(gè)模塊的功能是將電壓信號(hào)轉(zhuǎn)換為對(duì)應(yīng)的數(shù)字信號(hào)。實(shí)際應(yīng)用中,這個(gè)電壓信號(hào)可能由溫度、濕度、壓力等實(shí)際物理量經(jīng)過(guò)傳感器和相應(yīng)的電壓信號(hào)可能由溫度、濕度、壓力等實(shí)際物理量經(jīng)過(guò)傳感器和相應(yīng)的變換電路轉(zhuǎn)化而來(lái)。經(jīng)過(guò)變換電路轉(zhuǎn)化而來(lái)。經(jīng)過(guò)A/D轉(zhuǎn)換,轉(zhuǎn)換,MCU就可以處理這些物理量。就可以處理這些物理量。(1)采樣精度)采樣精度:數(shù)字量變化一個(gè)最小量時(shí)模擬信號(hào)的變化量。數(shù)字量變化一個(gè)最小量時(shí)模擬信號(hào)的變化量。 (2)采樣速率)采樣速率:完成一次完成一次A/D采樣所要花費(fèi)的時(shí)間。采樣所要花費(fèi)的時(shí)間。 (3)濾波)濾波:對(duì)采樣的數(shù)據(jù)進(jìn)行篩選去掉誤差較大的毛刺。對(duì)采樣的數(shù)據(jù)

12、進(jìn)行篩選去掉誤差較大的毛刺。 (4)物理量回歸)物理量回歸:把把A/D采樣值與實(shí)際物理量對(duì)應(yīng)起來(lái)。采樣值與實(shí)際物理量對(duì)應(yīng)起來(lái)。 9.4 MC68HC908GP32 MCU內(nèi)部的A/D轉(zhuǎn)換模塊9.4.2 MC68HC908GP32 A/D轉(zhuǎn)換模塊的寄存器轉(zhuǎn)換模塊的寄存器(1)A/D轉(zhuǎn)換狀態(tài)和控制寄存器(轉(zhuǎn)換狀態(tài)和控制寄存器(Analog-to-Digital Status and Control RegisterADSCR) ADSCR主要功能是:選取要轉(zhuǎn)換的通道、決定轉(zhuǎn)換結(jié)束數(shù)據(jù)獲取主要功能是:選取要轉(zhuǎn)換的通道、決定轉(zhuǎn)換結(jié)束數(shù)據(jù)獲取的方式、設(shè)置是連續(xù)轉(zhuǎn)換還是一次轉(zhuǎn)換。其地址是的方式、設(shè)置是連續(xù)

13、轉(zhuǎn)換還是一次轉(zhuǎn)換。其地址是$003C。數(shù)據(jù)位 D7 D6 D5 D4 D3 D2 D1 D0定義COCO AIEN ADCO ADCH4 ADCH3 ADCH2 ADCH1 ADCH0復(fù)位 0 0 0 1 1 1 1 1轉(zhuǎn)換完成轉(zhuǎn)換完成標(biāo)志位標(biāo)志位A/D轉(zhuǎn)換轉(zhuǎn)換中斷允許中斷允許標(biāo)志位標(biāo)志位 連續(xù)轉(zhuǎn)換連續(xù)轉(zhuǎn)換控制位控制位通道選擇通道選擇 9.4 MC68HC908GP32 MCU內(nèi)部的A/D轉(zhuǎn)換模塊(2)A/D轉(zhuǎn)換數(shù)據(jù)寄存器(轉(zhuǎn)換數(shù)據(jù)寄存器(Analog-to-Digital Data RegisterADR) ADR存放存放A/D轉(zhuǎn)換的轉(zhuǎn)換的8位結(jié)果,每次位結(jié)果,每次A/D轉(zhuǎn)換結(jié)束更新該寄存器

14、。轉(zhuǎn)換結(jié)束更新該寄存器。編程從該寄存器讀取編程從該寄存器讀取A/D轉(zhuǎn)換結(jié)果。該寄存器地址為:轉(zhuǎn)換結(jié)果。該寄存器地址為:$003D,為只讀,為只讀寄存器,復(fù)位時(shí)為寄存器,復(fù)位時(shí)為$00。 9.4 MC68HC908GP32 MCU內(nèi)部的A/D轉(zhuǎn)換模塊(3)A/D轉(zhuǎn)換輸入時(shí)鐘寄存器(轉(zhuǎn)換輸入時(shí)鐘寄存器(Analog-to-Digital Input Clock RegisterADCLK) ADCLK決定決定A/D轉(zhuǎn)換的時(shí)鐘頻率來(lái)源、分頻系數(shù)值,芯片內(nèi)的轉(zhuǎn)換的時(shí)鐘頻率來(lái)源、分頻系數(shù)值,芯片內(nèi)的A/D轉(zhuǎn)換器要求轉(zhuǎn)換器要求ADC時(shí)鐘頻率為時(shí)鐘頻率為1MHz左右。左右。ADCLK 的地址是:的地址是:$

15、003E。ADC時(shí)鐘分頻時(shí)鐘分頻系數(shù)選擇位系數(shù)選擇位 ADC輸入時(shí)輸入時(shí)鐘源選擇位鐘源選擇位 未用未用 數(shù)據(jù)位 D7 D6 D5 D4 D3 D2 D1 D0定義 ADIV2 ADIV1 ADIV0 ADICLK - - - -復(fù)位 0 0 0 1 1 1 1 1 ADC時(shí)鐘要求:時(shí)鐘要求: ADC時(shí)鐘頻率時(shí)鐘頻率1MHz。具體編程時(shí)根據(jù)。具體編程時(shí)根據(jù)A/D轉(zhuǎn)換轉(zhuǎn)換的時(shí)鐘頻率來(lái)源確定分頻系數(shù)值,確保芯片內(nèi)的的時(shí)鐘頻率來(lái)源確定分頻系數(shù)值,確保芯片內(nèi)的A/D轉(zhuǎn)換器時(shí)鐘頻率為轉(zhuǎn)換器時(shí)鐘頻率為1MHz左右即可。左右即可。9.4 MC68HC908GP32 MCU內(nèi)部的A/D轉(zhuǎn)換模塊9.4.3 A/D

16、轉(zhuǎn)換模塊的基本編程方法轉(zhuǎn)換模塊的基本編程方法(1)A/D轉(zhuǎn)換初始化轉(zhuǎn)換初始化 LDA #%00110000 ;使用內(nèi)部總線時(shí)鐘,使用內(nèi)部總線時(shí)鐘,2分頻分頻 STA ADCLK ;送入寄存器送入寄存器ADCLK(2)啟動(dòng))啟動(dòng)A/D轉(zhuǎn)換轉(zhuǎn)換 LDA #%00000000 ;0通道,轉(zhuǎn)換結(jié)束不產(chǎn)生中斷,一次通道,轉(zhuǎn)換結(jié)束不產(chǎn)生中斷,一次A/D轉(zhuǎn)換轉(zhuǎn)換 STA ADSCR ;并啟動(dòng)并啟動(dòng)0通道轉(zhuǎn)換通道轉(zhuǎn)換(3)獲)獲A/D轉(zhuǎn)換結(jié)果轉(zhuǎn)換結(jié)果 BRCLR 7, ADSCR,* ;COCO位位=0則等待則等待COCO位位=1 LDA ADR ;轉(zhuǎn)換結(jié)束,轉(zhuǎn)換結(jié)果送入轉(zhuǎn)換結(jié)束,轉(zhuǎn)換結(jié)果送入A中中返回返回9

17、.5 MC68HC908GP32 MCU A/D轉(zhuǎn)換編程實(shí)例 9.5 MC68HC908GP32 MCU A/D轉(zhuǎn)換編程實(shí)例轉(zhuǎn)換編程實(shí)例9.5.1 A/D轉(zhuǎn)換匯編語(yǔ)言編程實(shí)例轉(zhuǎn)換匯編語(yǔ)言編程實(shí)例(1)A/D轉(zhuǎn)換有關(guān)子程序轉(zhuǎn)換有關(guān)子程序(2)A/D轉(zhuǎn)換測(cè)試程序匯編主程序轉(zhuǎn)換測(cè)試程序匯編主程序9.5.2 A/D轉(zhuǎn)換轉(zhuǎn)換08C語(yǔ)言編程實(shí)例語(yǔ)言編程實(shí)例(1)A/D轉(zhuǎn)換有關(guān)轉(zhuǎn)換有關(guān)C語(yǔ)言子函數(shù)語(yǔ)言子函數(shù)(2)A/D轉(zhuǎn)換轉(zhuǎn)換08C測(cè)試實(shí)例主函數(shù)測(cè)試實(shí)例主函數(shù)返回返回 本章共介紹了兩部分內(nèi)容。本章共介紹了兩部分內(nèi)容。 鍵盤部分:介紹鍵盤中斷模塊的編程方法,并給出規(guī)范的掃描法鍵盤部分:介紹鍵盤中斷模塊的編程方法,并給出規(guī)范的掃描

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論