嵌入式系統(tǒng)設(shè)計(jì)實(shí)戰(zhàn)基于飛思s12x網(wǎng)上光盤整體0105sd wyh s12xs128book課件v1.0chap_第1頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)實(shí)戰(zhàn)基于飛思s12x網(wǎng)上光盤整體0105sd wyh s12xs128book課件v1.0chap_第2頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)實(shí)戰(zhàn)基于飛思s12x網(wǎng)上光盤整體0105sd wyh s12xs128book課件v1.0chap_第3頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)實(shí)戰(zhàn)基于飛思s12x網(wǎng)上光盤整體0105sd wyh s12xs128book課件v1.0chap_第4頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)實(shí)戰(zhàn)基于飛思s12x網(wǎng)上光盤整體0105sd wyh s12xs128book課件v1.0chap_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

1、第6章 GPIO的應(yīng)用實(shí)例鍵盤、LED與LCDV2.0 20112本章目錄6.1 鍵盤6.2 數(shù)碼管LED6.3 液晶LCD2022/7/213本章目錄6.1 鍵盤6.2 數(shù)碼管LED6.3 液晶LCD2022/7/2146.1 鍵盤 鍵盤接口方式1.獨(dú)立方式獨(dú)立方式是指將每個(gè)獨(dú)立按鍵按一對(duì)一的方式直接接到I/O輸入線上。讀鍵值時(shí)直接讀I/O口,每個(gè)鍵的狀態(tài)通過(guò)讀入鍵值來(lái)反映。2.矩陣方式 矩陣方式是用n條I/O線組成行輸入口,m條I/O線組成列輸出口,在行列線的每一個(gè)交點(diǎn)上設(shè)置一個(gè)按鍵。讀鍵值方法一般采用掃描方式,即輸出口按位輪換輸出低電平,再?gòu)妮斎肟谧x入鍵信息,最后獲得鍵碼。2022/7/

2、2156.1 鍵盤 鍵盤編程的基本問(wèn)題 1.鍵的識(shí)別 如何知道鍵盤上哪個(gè)鍵被按下就是鍵的識(shí)別問(wèn)題。識(shí)別是否有鍵被按下,主要有查詢法、定時(shí)掃描法與中斷法等。而要識(shí)別鍵盤上哪個(gè)鍵被按下主要有行掃描法與行反轉(zhuǎn)法。 2.抖動(dòng)問(wèn)題 當(dāng)鍵被按下時(shí),會(huì)出現(xiàn)所按的鍵在閉合位置和斷開(kāi)位置之間跳幾下才穩(wěn)定到閉合狀態(tài)的情況,當(dāng)釋放一個(gè)按鍵時(shí)也會(huì)出現(xiàn)類似的情況,這就是抖動(dòng)問(wèn)題。在軟件上,解決抖動(dòng)的方法通常是延遲等待抖動(dòng)的消失或多次識(shí)別判定。 2022/7/2166.1 鍵盤 鍵盤編程的基本問(wèn)題 3.重鍵問(wèn)題所謂重鍵問(wèn)題就是有兩個(gè)及兩個(gè)以上按鍵同時(shí)處于閉合狀態(tài)的處理問(wèn)題。在軟件上,處理重鍵問(wèn)題通常有連鎖法與巡回法。20

3、22/7/217給出一個(gè)實(shí)際的44鍵盤編程實(shí)例,講述如何掃描鍵盤取得鍵值和鍵盤編碼等問(wèn)題。6.1 鍵盤鍵盤編程實(shí)例2022/7/2186.1 鍵盤 4*4鍵盤與 MCU接法示例2022/7/21列線n1n4分別接PTIP0、PTIP1、PTIP2、PTIP3,且編程時(shí)將這四個(gè)引腳定義為輸入并進(jìn)行上拉,行線m1m4分別PORTA0PORTA3,且編程時(shí)將PORTA0PORTA3定義為輸出。96.1 鍵盤 鍵盤定義2022/7/21106.1 鍵盤 鍵值計(jì)算方法以上兩張圖給出了鍵盤與MCU接線以及鍵的定義符號(hào)“0”“9”、“A”“D”、“*”、“#”等。如何識(shí)別“1”鍵呢?采用逐行逐列地檢查鍵盤狀

4、態(tài)的方法對(duì)鍵盤掃描。在MCU的控制下,使行線m1為低電平(0),其余三根行線m2、m3、m4都為高電平(1),并讀列線n1n4狀態(tài)。當(dāng)“1”鍵被按下時(shí),圖中n1狀態(tài)值為0。則“1”鍵對(duì)應(yīng)于:AN7AN0=11101110,即$EE;同理“2”鍵對(duì)應(yīng)于:AN7AN0=11011110,即$DE;“D”鍵對(duì)應(yīng)于:AN7AN0=01110111,即$77。前者“1”、“2”、“D”就是我們的定義值,后者$EE、$DE、$77就是“鍵值”,這種情況“鍵值”是一個(gè)字節(jié)。這樣即可以得出對(duì)應(yīng)于相應(yīng)接線圖的鍵值表。鍵值可以通過(guò)掃描法獲得,由鍵值通過(guò)查表法編程得到定義值。2022/7/21116.1 鍵盤 鍵盤

5、構(gòu)件程序包含頭文件KB.h和程序文件KB.c,包括對(duì)以下函數(shù)的聲明和定義(需調(diào)用GPIO構(gòu)件): Void KBInit( void ):初始化鍵盤口方向和數(shù)據(jù)寄存器 INT8U KBScan1(void):掃描一次4*4鍵盤上的按鍵,讀取鍵值 INT8U KBScanN(INT8U KB_count):多次掃描鍵盤,消除抖動(dòng)“ INT8U KBDef(INT8U KB_valve):鍵值轉(zhuǎn)為定義值2022/7/216.1 鍵盤鍵盤測(cè)試工程硬件連接:接線PTP03分別接D形板鍵盤接線處的14,PTA03分別接58。程序功能:在main.c中調(diào)用上一節(jié)介紹的4個(gè)函數(shù)實(shí)現(xiàn)鍵盤的測(cè)試。運(yùn)行程序后,U

6、ART0模塊向PC機(jī)發(fā)送“Test KeyBoard!”,若PC機(jī)收到則表明串行通信正常。然后,按下4*4鍵盤上的任一按鍵后,UART0模塊向PC機(jī)發(fā)送對(duì)應(yīng)的鍵值和定義值。12注意,這兩個(gè)值需用十六進(jìn)制顯示。2022/7/2113本章目錄6.1 鍵盤6.2 數(shù)碼管LED6.3 液晶LCD2022/7/21146.2 數(shù)碼管LED對(duì)數(shù)碼管編程需要了解的兩個(gè)問(wèn)題一、所用LED是幾段,是共陰還是共陽(yáng)?二、所選LED的電氣參數(shù)怎樣?如額定功率、額定電流是多少?2022/7/21156.2 數(shù)碼管LEDLED的選擇需要根據(jù)實(shí)際應(yīng)用需求來(lái)決定,若只需要顯示數(shù)字“0”“9”,則只需七段LED就夠了,若同時(shí)又

7、要顯示小數(shù)點(diǎn),則需使用八段LED。 8段數(shù)碼管由8個(gè)發(fā)光二極管組成。MCU是通過(guò)I/O腳來(lái)控制LED某段發(fā)光二極管的亮滅從而達(dá)到顯示某個(gè)數(shù)字的目的。8段數(shù)碼管分別由a、b、c、d、e、f、g位段和小數(shù)點(diǎn)位段h(或記為dp)組成。共陰極8段數(shù)碼管的信號(hào)端高電平有效,只要在各位段加上高電平信號(hào)即可使相應(yīng)的位段發(fā)光,比如要使a段發(fā)光,則在a段加上高電平即可。共陽(yáng)極的8段數(shù)碼管則相反,在相應(yīng)的位段加上低電平即可使該位段發(fā)光。比如對(duì)共陽(yáng)極8段數(shù)碼管,AN07分別接ag、dp,即MCF_GPIO_PORTAN=0b01111111時(shí)dp段亮;當(dāng)MCF_GPIO_PORTAN=0b10000000時(shí)除dp位

8、段外,其他位段均亮。2022/7/21166.2 數(shù)碼管LED如何對(duì)多個(gè)LED編程(以8段數(shù)碼管為例)數(shù)據(jù)端通過(guò)MCU的一個(gè)8位I/0口來(lái)控制位段??刂贫?段數(shù)碼管的公共端,原來(lái)接到固定的電平(對(duì)共陰極是GND,對(duì)共陽(yáng)極是Vcc),現(xiàn)在接MCU的一個(gè)輸出引腳,由MCU來(lái)控制,通常叫“位選信號(hào)”。而把這些由n個(gè)數(shù)碼管合在一起的數(shù)碼管組稱為n連排數(shù)碼管。這樣MCU的兩個(gè)8位端口就可以控制一個(gè)8連排的數(shù)碼管。2022/7/21176.2 數(shù)碼管LED 數(shù)碼管構(gòu)件程序包含頭文件LED.h和程序文件LED.c,包括對(duì)以下函數(shù)的聲明和定義(需調(diào)用GPIO構(gòu)件): void LEDInit(void)定義L

9、ED控制引腳的數(shù)據(jù)口和位選口為輸出 void LEDShow1(uint8 i, uint8 c)在第i個(gè)LED上顯示數(shù)字c(要查表轉(zhuǎn)碼)void LEDShow(uint8 *Buf) 在4連排LED上顯示4個(gè)十進(jìn)制數(shù)2022/7/216.2 數(shù)碼管LEDLED測(cè)試工程硬件連接: MCU的PTB口控制8個(gè)位段(數(shù)據(jù))。PORTB70分別接ha位段,PORTE口6、5、3、2腳作為片選端.程序功能:在main.c中調(diào)用上一節(jié)介紹的2個(gè)函數(shù)實(shí)現(xiàn)LED的測(cè)試。運(yùn)行程序后,先向PC機(jī)串口發(fā)送Test LED!,然后LED數(shù)碼管顯示0123 .182022/7/2119本章目錄6.1 鍵盤6.2 數(shù)碼

10、管LED6.3 液晶LCD2022/7/21206.3 液晶LCDHD44780的編程結(jié)構(gòu)相關(guān)寄存器1指令寄存器(IR)指令寄存器IR用于MCU向HD44780寫入指令碼。2數(shù)據(jù)寄存器(DR)DR用于寄存數(shù)據(jù)。3忙標(biāo)志(BF)令RS=0、R/ =1,在E信號(hào)高電平的作用下,BF輸出到總線的DB7上,MCU可以讀出判別。4地址計(jì)數(shù)器(AC)AC作為DD RAM或CG RAM的地址指針。 2022/7/21216.3 液晶LCDHD44780的編程結(jié)構(gòu)相關(guān)寄存器5顯示數(shù)據(jù)寄存器(DD RAM)DD RAM用于存儲(chǔ)顯示數(shù)據(jù),共有80個(gè)字符碼。6字符發(fā)生器ROM(CG ROM)CG ROM由8位字符碼

11、生成57點(diǎn)陣字符160種和510點(diǎn)陣字符32種,8位字符編碼與字符的對(duì)應(yīng)關(guān)系,可以直接使用。7字符發(fā)生器RAM(CG RAM)CG RAM是提供給用戶自定義特殊字符用的,它的容量?jī)H為64字節(jié),編址為003FH。 2022/7/2122本節(jié)給出點(diǎn)陣字符型LCD的一個(gè)編程實(shí)例。在實(shí)驗(yàn)板上,LCD的數(shù)據(jù)線714腳(D0D7)分別與MCU的PT1AD03PT1AD07、PTJ76和PTS3連接,LCD的控制線RS、R/ 、E(4、5、6腳)分別與MCU的PTP4、PTP5和PTP7連接。6.3 液晶LCD點(diǎn)陣字符型LCD編程實(shí)例2022/7/21236.3 液晶LCD XS128與LCD的連接2022/7/21246.3 液晶LCD 液晶構(gòu)件程序包含頭文件LCD.h和程序文件LCD.c,包括對(duì)以下函數(shù)的聲明和定義(需調(diào)用GPIO構(gòu)件): void LCDInit(void)初始化Lcd(HD44780),設(shè)置顯示方式,清屏,AC自動(dòng)+1 void LCDShow(uint8 str)在HD44780顯示屏顯示str所指向的數(shù)據(jù)2022/7/216.3 液晶LCD void Delay1(uint16 k) 用程序的方法延時(shí)一段時(shí)間 void mand(uint8 cmd) 用于執(zhí)行給定的command命令2022/7

溫馨提示

  • 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)論