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

下載本文檔

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

文檔簡介

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

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

3、平引腳電壓被變,即高電平引腳電壓被變低。低。景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j2 讀取讀取I/O口值的練習(xí)口值的練習(xí)v 一般都是自高到低讀出一個端口各腳電平一般都是自高到低讀出一個端口各腳電平 ,得到,得到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é)果如圖。具體實(shí)現(xiàn)見操作,結(jié)果如圖。 景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j2 讀取讀取I/O口值的練習(xí)口值的練習(xí)v 當(dāng)當(dāng) P2=0 xf0; 外接一個兩腳開關(guān)到外接一個兩腳開關(guān)到P2口只能讓口只能讓P2產(chǎn)生如產(chǎn)生如下四個新的值:下四個新的值: 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; 外接一個兩腳開關(guān)到外接一個兩腳開關(guān)到P2口只能讓口只能讓P2產(chǎn)生如下四個新的值:產(chǎn)生如下四個新的值: 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é)開關(guān)接通后,如果兩引腳上電平不同時,會將高電平引腳電壓變低。開關(guān)接通后,如果兩引腳上電平不同時,會將高電平引腳電壓變低。 景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j3 鍵

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

7、的鍵值鍵盤的鍵值鍵盤的鍵值 位置位置 鍵值鍵值(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 鍵盤的鍵值鍵盤的鍵值鍵盤的鍵值鍵盤的鍵值 位置位置 鍵值鍵值(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 鍵盤的鍵值鍵盤的鍵值 總結(jié)總結(jié)44矩陣鍵盤的鍵值矩陣鍵盤的鍵值 共有共有16個,計(jì)算鍵值時總是:個,計(jì)算鍵值時總是: 先找出行線值,再找出列線值,最后繪出矩陣鍵盤的鍵先找出行線值,再找出列線值,最后繪出矩陣鍵盤的鍵值。值。 景德鎮(zhèn)學(xué)院機(jī)電系景德鎮(zhèn)學(xué)院機(jī)電系.j4 鍵盤掃描編程

10、鍵盤掃描編程_線反轉(zhuǎn)法線反轉(zhuǎn)法/*鍵盤掃子描函數(shù)鍵盤掃子描函數(shù)*/ char keyscan(void) /鍵盤掃描函數(shù),鍵盤使用鍵盤掃描函數(shù),鍵盤使用P2口口 char value_h,value_l; /value_h行值變量行值變量,value_l列值變量列值變量 P2=0 xf0; /將行線所處位置置高電平將行線所處位置置高電平 if(P2&0 xf0)!=0 xf0) /判斷是否有鍵按下判斷是否有鍵按下 delay(10); /延時防抖延時防抖 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 鍵盤掃描編程鍵盤掃描編程_線反轉(zhuǎn)法流程分析線反轉(zhuǎn)法流程分析/*鍵盤掃子描函數(shù)鍵盤掃子描函數(shù)*/ char keyscan(void) /鍵盤掃描函數(shù),鍵盤使用鍵盤掃描函數(shù),鍵盤使用P2口口 char value_h,value_l; /value_h行值變量行值變量,value_l列值變量列

12、值變量 P2=0 xf0; /將行線所處位置置高電平將行線所處位置置高電平 if(P2&0 xf0)!=0 xf0) /判斷是否有鍵按下判斷是否有鍵按下 delay(10); /延時防抖延時防抖 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 一個數(shù)碼管顯示矩陣鍵盤值的實(shí)驗(yàn)一個數(shù)碼管顯示矩陣鍵

溫馨提示

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

最新文檔

評論

0/150

提交評論