版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第5章 GPIO的應用實例 ——鍵盤、LED與LCD,主要知識點,,,鍵盤,5.1,,,數(shù)碼管LED,5.2,,,液晶顯示器LCD,5.3,5.1 鍵盤,鍵盤模型鍵盤的基本電路為接觸開關(guān),通、斷兩種狀態(tài)分別表示0和1。接口方式1)獨立方式 2)矩陣方式,4,,2024/4/4,獨立方式:將每個獨立按鍵按一對一的方式直接接到I/O輸入線上矩陣方式:矩陣方式是用
2、n條I/O線組成行輸入口,m條I/O線組成列輸出口,在行列線的每一個交點上設(shè)置一個按鍵,5,5.1.2鍵盤鍵盤編程的基本問題,(1)鍵的識別識別是否有鍵被按下,主要有查詢法、定時掃描法與中斷法等。而要識別鍵盤上哪個鍵被按下主要有行掃描法與行反轉(zhuǎn)法。(2)抖動問題當鍵被按下時,會出現(xiàn)所按的鍵在閉合位置和斷開位置之間跳幾下才穩(wěn)定到閉合狀態(tài)的情況,當釋放一個按鍵時也會出現(xiàn)類似的情況,這就是抖動問題。在軟件上,解決抖動的方法通常是延遲
3、等待抖動的消失或多次識別判定(3)重鍵問題所謂重鍵問題就是有兩個及兩個以上按鍵同時處于閉合狀態(tài)的處理問題。在軟件上,處理重鍵問題通常有連鎖法與巡回法。,2024/4/4,6,給出一個實際的4*4鍵盤編程實例,講述如何掃描鍵盤取得鍵值和鍵盤編碼等問題。,5.1.2 鍵盤驅(qū)動構(gòu)件設(shè)計,鍵盤驅(qū)動構(gòu)件設(shè)計實例,2024/4/4,7,5.1.2 鍵盤驅(qū)動構(gòu)件設(shè)計,4*4鍵盤與 MCU接法,將列線n1~n4分別接AN4~AN7,且編程時將AN4
4、~AN7定義為輸入并進行上拉,行線m1~m4分別接AN0~AN3,且編程時將AN0~AN3定義為輸出。,2024/4/4,5.1 鍵盤,2024/4/4,8,鍵盤定義及各鍵相應的鍵值,9,5.1 鍵盤,鍵值計算方法,以上兩張圖給出了鍵盤與MCU接線以及鍵的定義符號“0”~“9”、“A”~“D”、“*”、“#”等。如何識別“1”鍵呢?采用逐行逐列地檢查鍵盤狀態(tài)的方法對鍵盤掃描。在MCU的控制下,使行線m1為低電平(0),其余三根行線m2、
5、m3、m4都為高電平(1),并讀列線n1~n4狀態(tài)。當“1”鍵被按下時,圖中n1狀態(tài)值為0。則“1”鍵對應于:AN7~AN0=11101110,即$EE;同理“2”鍵對應于:AN7~AN0=11011110,即$DE;……;“D”鍵對應于:AN7~AN0=01110111,即$77。前者“1”、“2”、“D”就是我們的定義值,后者$EE、$DE、$77就是“鍵值”,這種情況“鍵值”是一個字節(jié)。這樣即可以得出對應于相應接線圖的鍵值表。鍵值
6、可以通過掃描法獲得,由鍵值通過查表法編程得到定義值。,2024/4/4,10,5.1 鍵盤,鍵盤構(gòu)件程序包含頭文件KB.h和程序文件KB.c,包括對以下函數(shù)的聲明和定義(需調(diào)用GPIO構(gòu)件):,Void KBInit( void ):初始化鍵盤模塊。 Void KBDef( void ):鍵值轉(zhuǎn)為定義值函數(shù) uint8 KBScan1(void):掃描1次4*4鍵盤,返回掃描到的鍵值,若無按鍵,返回0xff uint8 KBS
7、canN(INT8U KB_count):多次掃描鍵盤,消除"抖動”. uint8 EnableKBInter ():鍵盤中斷使能 uint8 DisableKBInter ():鍵盤中斷禁止 uint8 KBInterClear() :清鍵盤中斷,2024/4/4,5.1.3 鍵盤驅(qū)動構(gòu)件測試實例,鍵盤測試工程程序功能:本測試實例調(diào)用上節(jié)給出的KBI構(gòu)件,使用UART0口和PC機通信,當按下鍵盤按鍵時,由串口向PC
8、機發(fā)送對應的鍵值。鍵的識別采用上文所講述的中斷法,故設(shè)計了與之相對應的中斷處理函數(shù)。,11,注意,這兩個值需用十六進制顯示。,2024/4/4,12,5.2 LED模塊的驅(qū)動構(gòu)件設(shè)計,對數(shù)碼管編程需要了解的兩個問題,一、所用LED是幾段,是共陰還是共陽?二、所選LED的電氣參數(shù)怎樣?如額定功率、額定電流是多少?,2024/4/4,13,5.2 LED模塊的驅(qū)動構(gòu)件設(shè)計,LED的選擇需要根據(jù)實際應用需求來決定,若只需要顯示數(shù)字“
9、0”~“9”,則只需七段LED就夠了,若同時又要顯示小數(shù)點,則需使用八段LED。 8段數(shù)碼管由8個發(fā)光二極管組成。MCU是通過I/O腳來控制LED某段發(fā)光二極管的亮滅從而達到顯示某個數(shù)字的目的。8段數(shù)碼管分別由a、b、c、d、e、f、g位段和小數(shù)點位段h(或記為dp)組成。共陰極8段數(shù)碼管的信號端高電平有效,只要在各位段加上高電平信號即可使相應的位段發(fā)光,比如要使a段發(fā)光,則在a段加上高電平即可。共陽極的8段數(shù)碼管則相反,在相應的位段
10、加上低電平即可使該位段發(fā)光。比如對共陽極8段數(shù)碼管,AN0~7分別接a~g、dp,即MCF_GPIO_PORTAN=0b01111111時dp段亮;當MCF_GPIO_PORTAN=0b10000000時除dp位段外,其他位段均亮。,2024/4/4,14,5.2 LED模塊的驅(qū)動構(gòu)件設(shè)計,如何對多個LED編程(以8段數(shù)碼管為例),數(shù)據(jù)端通過MCU的一個8位I/0口來控制位段??刂贫?段數(shù)碼管的公共端,原來接到固定的電平(對共陰
11、極是GND,對共陽極是Vcc),現(xiàn)在接MCU的一個輸出引腳,由MCU來控制,通常叫“位選信號”。而把這些由n個數(shù)碼管合在一起的數(shù)碼管組稱為n連排數(shù)碼管。這樣MCU的兩個8位端口就可以控制一個8連排的數(shù)碼管。,15,5.2 LED模塊的驅(qū)動構(gòu)件設(shè)計,數(shù)碼管構(gòu)件程序包含頭文件LED.h和程序文件LED.c,包括對以下函數(shù)的聲明和定義(需調(diào)用GPIO構(gòu)件):,void LEDInit(void)定義LED控制引腳的數(shù)據(jù)口和位選口為輸出
12、 void LEDShow1(uint8 i, uint8 c)在第i個LED上顯示數(shù)字c(要查表轉(zhuǎn)碼) void LEDchangeCode (uint8 num)將num轉(zhuǎn)換成對應的Dtable中的碼,,5.2 LED模塊的驅(qū)動構(gòu)件設(shè)計,LED測試工程本測試實例調(diào)用上節(jié)給出的LED構(gòu)件,使用UART0口和PC機通信。先通過串口向PC機發(fā)送‘Hello World!’,然后觀察4位LED,顯示“2012”四位數(shù)字。,16,
13、2024/4/4,17,5.3 LCD模塊的驅(qū)動構(gòu)件設(shè)計,,,,,2024/4/4,LCD模塊LCD的特點:1)低電壓微功耗2)平板型結(jié)構(gòu)3)使用壽命長4)被動顯示5)顯示信息量大且易于彩色化6)無電磁輻射LCD分類方法(1)按電光效應分類(2)按顯示內(nèi)容分類(3)按LCD的采光方式分類,18,5.3 LCD模塊的驅(qū)動構(gòu)件設(shè)計,HD44780的編程結(jié)構(gòu)相關(guān)寄存器1.指令寄存器(IR)指令寄存器IR用于MCU向
14、HD44780寫入指令碼。2.數(shù)據(jù)寄存器(DR)DR用于寄存數(shù)據(jù)。3.忙標志(BF)令RS=0、R/ =1,在E信號高電平的作用下,BF輸出到總線的DB7上,MCU可以讀出判別。4.地址計數(shù)器(AC)AC作為DD RAM或CG RAM的地址指針。,,,,,2024/4/4,19,5.3 液晶LCD,HD44780的編程結(jié)構(gòu)相關(guān)寄存器5.顯示數(shù)據(jù)寄存器(DD RAM)DD RAM用于存儲顯示數(shù)據(jù),共有80個字符碼。6.
15、字符發(fā)生器ROM(CG ROM)CG ROM由8位字符碼生成5×7點陣字符160種和5×10點陣字符32種,8位字符編碼與字符的對應關(guān)系,可以直接使用。7.字符發(fā)生器RAM(CG RAM)CG RAM是提供給用戶自定義特殊字符用的,它的容量僅為64字節(jié),編址為00~3FH。,,,,,,2024/4/4,20,在實驗板上,LCD的數(shù)據(jù)線7~14腳(D0~D7)分別與MCU的PTE的10,7,6,5,4,3,2,1
16、引腳連接,LCD的控制線RS、R/ 、E(4、5、6腳)分別與MCU的PTE的11,8,9引腳連接。LCD的1、2、3腳為供電電源與亮度調(diào)節(jié)引腳。,5.3 液晶LCD,點陣字符型LCD編程實例,2024/4/4,21,5.3 液晶LCD,LCD與K60的連接,2024/4/4,22,5.3 液晶LCD,液晶構(gòu)件程序包含頭文件lcd.h和程序文件lcd.C,包括對以下函數(shù)的聲明和定義(需調(diào)用GPIO構(gòu)件):,void LCDInit
17、(void)初始化Lcd,設(shè)置顯示方式,清屏,AC自動+1 void LCDShow(uint8 data[32])在lcd顯示屏顯示data所指向的32個數(shù)據(jù),2024/4/4,5.3 液晶LCD,LCD測試工程本測試實例調(diào)用上節(jié)給出的LCD構(gòu)件,使用UART0口和PC機通信。先通過串口向PC機發(fā)送首先向PC發(fā)送"Test LCD!",然后在LCD分兩行顯示"Wait Receiving..&q
18、uot;和"Soochow 2011.12."。,23,2024/4/4,第五章 練習題,1.簡述獨立鍵盤和矩陣鍵盤的應用特點。2.列舉常見的鍵盤消除抖動的方法(提示:可從軟件和硬件兩方面考慮)3.簡述掃描法動態(tài)顯示LED的原理。4.分析LCD液晶顯示的工作時序。5.簡要說明鍵盤、LED、LCD構(gòu)件封裝的基本要點6.綜合設(shè)計:將矩陣鍵盤模塊、LED和LCD模塊與K60芯片相連,編寫程序?qū)崿F(xiàn):當鍵盤有按鍵按下
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于微控制器K60的遠程檢測系統(tǒng).pdf
- 基于k60芯片的雙電磁車追逐運動的設(shè)計
- 低溫環(huán)境下K60管線鋼焊接工藝研究.pdf
- 基于K60的太陽能室內(nèi)照明系統(tǒng)的設(shè)計.pdf
- 基于K60系統(tǒng)板的智能小車控制系統(tǒng)設(shè)計.pdf
- 基于K60的智能小車控制系統(tǒng)設(shè)計與實現(xiàn).pdf
- 基于k60單片機的ccd傳感器智能車設(shè)計
- 基于K60單片機的智能車控制算法的仿真與實現(xiàn).pdf
- 遠程數(shù)據(jù)采集在智能農(nóng)業(yè)中的應用——基于K60和GPRS的設(shè)計.pdf
- GPIO.TXT
- GPIO.TXT
- gpio驅(qū)動相關(guān)筆記
- K60_LQ_OLED演示.rar
- BCE206k60GZ.pdf
- 金蝶k3模塊介紹
- 金蝶k3財務(wù)模塊教程
- 實驗報告1--gpio輸出按鍵輸入實驗
- 60分鐘k線買賣點-值得收藏
- 倉存模塊k3系統(tǒng)標準操作
- 金蝶k3wise功能模塊介紹
評論
0/150
提交評論