矩陣鍵盤(pán)的鍵值計(jì)算及編程_第1頁(yè)
矩陣鍵盤(pán)的鍵值計(jì)算及編程_第2頁(yè)
矩陣鍵盤(pán)的鍵值計(jì)算及編程_第3頁(yè)
矩陣鍵盤(pán)的鍵值計(jì)算及編程_第4頁(yè)
矩陣鍵盤(pán)的鍵值計(jì)算及編程_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、線線 反反 轉(zhuǎn)轉(zhuǎn) 法法44矩陣鍵盤(pán)的鍵值計(jì)算及編程矩陣鍵盤(pán)的鍵值計(jì)算及編程51單片機(jī)C語(yǔ)言編程及Proteus仿真景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j本講主要內(nèi)容本講主要內(nèi)容鍵值計(jì)算基本原理1讀取I/O口值的練習(xí)2鍵盤(pán)的鍵值計(jì)算3鍵盤(pán)掃描編程_線反轉(zhuǎn)法4一個(gè)數(shù)碼管顯示矩陣鍵盤(pán)值的實(shí)驗(yàn)5景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j1 鍵值計(jì)算基本原理鍵值計(jì)算基本原理_“好人被帶壞好人被帶壞”v 默認(rèn)狀態(tài):?jiǎn)纹瑱C(jī)通電復(fù)位后默認(rèn)狀態(tài):?jiǎn)纹瑱C(jī)通電復(fù)位后P1 P2 P3口每個(gè)腳口每個(gè)腳都輸出高電平,都輸出高電平,P0口要接上拉電阻才能輸出高電平??谝由侠娮璨拍茌敵龈唠娖?。 a 各腳狀態(tài)標(biāo)記都是紅色方塊。各腳

2、狀態(tài)標(biāo)記都是紅色方塊。 b 用電壓測(cè)量都是用電壓測(cè)量都是5V。景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j1 鍵值計(jì)算基本原理鍵值計(jì)算基本原理_“好人被帶壞好人被帶壞”v 要使一個(gè)引腳變?yōu)榈碗娖接腥缦路椒ǎ阂挂粋€(gè)引腳變?yōu)榈碗娖接腥缦路椒ǎ?a 接地。接地。 b 用邏輯狀態(tài)信號(hào)人為改變。用邏輯狀態(tài)信號(hào)人為改變。 c 編寫(xiě)程序使其輸出低電平。編寫(xiě)程序使其輸出低電平。 景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j1 鍵值計(jì)算基本原理鍵值計(jì)算基本原理_“好人被帶壞好人被帶壞”v 一個(gè)低電平引腳與高電平引腳相接,結(jié)果如何?一個(gè)低電平引腳與高電平引腳相接,結(jié)果如何? 實(shí)驗(yàn)結(jié)果:實(shí)驗(yàn)結(jié)果:“好人被帶壞好人被帶壞”,即高電

3、平引腳電壓被變,即高電平引腳電壓被變低。低。景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j2 讀取讀取I/O口值的練習(xí)口值的練習(xí)v 一般都是自高到低讀出一個(gè)端口各腳電平一般都是自高到低讀出一個(gè)端口各腳電平 ,得到,得到8位二進(jìn)制位二進(jìn)制數(shù),再將數(shù),再將8位二進(jìn)制轉(zhuǎn)換成位二進(jìn)制轉(zhuǎn)換成2位十六進(jìn)數(shù)。位十六進(jìn)數(shù)。 P1口值口值=P1.7 P1.6 P1.5 P1.4P1.3 P1.2 P1.1 P1.0 =1101 1111=0 x df P3口值口值= P3.7 P3.6 P3.5 P3.4P3.3 P3.2 P3.1 P3.0 =1111 1010=0 xfa P1口高四位是指:口高四位是指:P1.7 P

4、1.6 P1.5 P1.4 P1口低四位是指:口低四位是指:P1.3 P1.2 P1.1 P1.0 景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j2 讀取讀取I/O口值的練習(xí)口值的練習(xí)v 用程序控制單片機(jī)用程序控制單片機(jī)P2口工作,讓高四位全高電平,低四位口工作,讓高四位全高電平,低四位全低電平。全低電平。 即:即:P2=0 xf0; 具體實(shí)現(xiàn)見(jiàn)操作,結(jié)果如圖。具體實(shí)現(xiàn)見(jiàn)操作,結(jié)果如圖。 景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j2 讀取讀取I/O口值的練習(xí)口值的練習(xí)v 當(dāng)當(dāng) P2=0 xf0; 外接一個(gè)兩腳開(kāi)關(guān)到外接一個(gè)兩腳開(kāi)關(guān)到P2口只能讓口只能讓P2產(chǎn)生如產(chǎn)生如下四個(gè)新的值:下四個(gè)新的值: 0 xe0,

5、 0 xd0,0 xb0,0 x70 0 xe0 0 x70 景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j2 讀取讀取I/O口值的練習(xí)口值的練習(xí)v 當(dāng)當(dāng) 程序使程序使P2=0 x0f; 外接一個(gè)兩腳開(kāi)關(guān)到外接一個(gè)兩腳開(kāi)關(guān)到P2口只能讓口只能讓P2產(chǎn)生如下四個(gè)新的值:產(chǎn)生如下四個(gè)新的值: 0 x0e, 0 x0d,0 x0b,0 x07 0 x0d 0 x0b 景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j2 讀取讀取I/O口值的練習(xí)口值的練習(xí)總結(jié)總結(jié)開(kāi)關(guān)接通后,如果兩引腳上電平不同時(shí),會(huì)將高電平引腳電壓變低。開(kāi)關(guān)接通后,如果兩引腳上電平不同時(shí),會(huì)將高電平引腳電壓變低。 景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j3 鍵

6、盤(pán)的鍵值鍵盤(pán)的鍵值P2口接有口接有44 鍵盤(pán),低四位做行線,高四位做列線。鍵盤(pán),低四位做行線,高四位做列線。 景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j3 鍵盤(pán)的鍵值鍵盤(pán)的鍵值找行線值時(shí),程序使找行線值時(shí),程序使P2=0 x0f; P2.0行線上開(kāi)關(guān)按下會(huì)使行線上開(kāi)關(guān)按下會(huì)使P2口值變?yōu)榭谥底優(yōu)?0 x0e, 其余同理。其余同理。 景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j3 鍵盤(pán)的鍵值鍵盤(pán)的鍵值找列線值時(shí),程序使找列線值時(shí),程序使P2=0 xf0; P2.7列線上開(kāi)關(guān)按下會(huì)使列線上開(kāi)關(guān)按下會(huì)使P2口值變?yōu)榭谥底優(yōu)?0 x70, 其余同理。其余同理。 景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j3 鍵盤(pán)的鍵值鍵盤(pán)

7、的鍵值鍵盤(pán)的鍵值鍵盤(pán)的鍵值 位置位置 鍵值鍵值(1行,行,1列)列) e0+0e=ee (1行,行,2列)列) d0+0e=de (1行,行,3列)列) b0+0e=be (1行,行,4列)列) 70+0e=7e (2行,行,1列)列) e0+0d=ed (2行,行,2列)列) d0+0d=dd (2行,行,3列)列) b0+0d=bd (2行,行,4列)列) 70+0d=7d (3行,行,1列)列) e0+0b=eb (3行,行,2列)列) d0+0b=db (3行,行,3列)列) b0+0b=bb (3行,行,4列)列) 70+0b=7b (4行,行,1列)列) e0+07=e7 (4行,

8、行,2列)列) d0+07=d7 (4行,行,3列)列) b0+07=b7 (4行,行,4列)列) 70+07=77 注:行列線的排列不同,鍵值分布也不同注:行列線的排列不同,鍵值分布也不同景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j3 鍵盤(pán)的鍵值鍵盤(pán)的鍵值鍵盤(pán)的鍵值鍵盤(pán)的鍵值 位置位置 鍵值鍵值(1行,行,1列)列) e7(1行,行,2列)列) eb(1行,行,3列)列) ed(1行,行,4列)列) ee(2行,行,1列)列) d7(2行,行,2列)列) db(2行,行,3列)列) dd(2行,行,4列)列) de(3行,行,1列)列) b7 (3行,行,2列)列) bb(3行,行,3列)列) bd

9、 (3行,行,4列)列) be(4行,行,1列)列) 77(4行,行,2列)列) 7b(4行,行,3列)列) 7d(4行,行,4列)列) 7e 找出行線值找出行線值置行線所處端口位置高電平找出列線值找出列線值置列線所處端口位置高電平行線值行線值+列線值列線值=鍵值鍵值計(jì)算鍵值一般方法景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j3 鍵盤(pán)的鍵值鍵盤(pán)的鍵值 總結(jié)總結(jié)44矩陣鍵盤(pán)的鍵值矩陣鍵盤(pán)的鍵值 共有共有16個(gè),計(jì)算鍵值時(shí)總是:個(gè),計(jì)算鍵值時(shí)總是: 先找出行線值,再找出列線值,最后繪出矩陣鍵盤(pán)的鍵先找出行線值,再找出列線值,最后繪出矩陣鍵盤(pán)的鍵值。值。 景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j4 鍵盤(pán)掃描編程

10、鍵盤(pán)掃描編程_線反轉(zhuǎn)法線反轉(zhuǎn)法/*鍵盤(pán)掃子描函數(shù)鍵盤(pán)掃子描函數(shù)*/ char keyscan(void) /鍵盤(pán)掃描函數(shù),鍵盤(pán)使用鍵盤(pán)掃描函數(shù),鍵盤(pán)使用P2口口 char value_h,value_l; /value_h行值變量行值變量,value_l列值變量列值變量 P2=0 xf0; /將行線所處位置置高電平將行線所處位置置高電平 if(P2&0 xf0)!=0 xf0) /判斷是否有鍵按下判斷是否有鍵按下 delay(10); /延時(shí)防抖延時(shí)防抖 if(P2&0 xf0)!=0 xf0) /仍有鍵按下仍有鍵按下 value_h=P2&0 xf0; /讀出讀出P2口值給變量口值給變量va

11、lue_h P2=0 x0f; /將列線所處位置置高電平將列線所處位置置高電平 value_l=P2&0 x0f; /讀出讀出P2口值給變量口值給變量value_l return(value_l+value_h); /找到的鍵值返回給調(diào)用函數(shù)找到的鍵值返回給調(diào)用函數(shù) 景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j4 鍵盤(pán)掃描編程鍵盤(pán)掃描編程_線反轉(zhuǎn)法流程分析線反轉(zhuǎn)法流程分析/*鍵盤(pán)掃子描函數(shù)鍵盤(pán)掃子描函數(shù)*/ char keyscan(void) /鍵盤(pán)掃描函數(shù),鍵盤(pán)使用鍵盤(pán)掃描函數(shù),鍵盤(pán)使用P2口口 char value_h,value_l; /value_h行值變量行值變量,value_l列值變量列

12、值變量 P2=0 xf0; /將行線所處位置置高電平將行線所處位置置高電平 if(P2&0 xf0)!=0 xf0) /判斷是否有鍵按下判斷是否有鍵按下 delay(10); /延時(shí)防抖延時(shí)防抖 if(P2&0 xf0)!=0 xf0) /仍有鍵按下仍有鍵按下 value_h=P2&0 xf0; /讀出讀出P2口值給變量口值給變量value_h P2=0 x0f; /將列線所處位置置高電平將列線所處位置置高電平 value_l=P2&0 x0f; /讀出讀出P2口值給變量口值給變量value_l return(value_l+value_h); /找到的鍵值返回給調(diào)用函數(shù)找到的鍵值返回給調(diào)用函數(shù) 景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j5 一個(gè)數(shù)碼管顯示矩陣鍵盤(pán)值的實(shí)驗(yàn)一個(gè)數(shù)碼管顯示矩陣鍵

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論