矩陣鍵盤通用模塊_第1頁
矩陣鍵盤通用模塊_第2頁
矩陣鍵盤通用模塊_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、通用模塊#ifndef _KEY_H_ #define _KEY_H_ #include<reg52.h>/#include "public.h" 為了讓模塊變的跟獨立這個也不需要/#define uchar unsigned char 外部不需要調用,放在函數(shù)內部就可以#define KEY_BUS P2 /這個根據(jù)開發(fā)板來變;加一個分號導致整個程序錯誤extern unsigned char key_scan(void); /返回一個無符號字符型變量(015),無按鍵按下返回一個'E'#endif/* 函數(shù)功能:* 鍵盤掃描函數(shù) * 帶入參數(shù)

2、:*無 * 帶出參數(shù):*返回鍵1-15 若無返回 'E'* 其他備注:*4*4矩陣鍵盤 * 作 者:*江錕 * 更新時間:*2017.12.14 */#include "key.h"#include<intrins.h>/-#define uchar unsigned char#define uint unsigned int/-/* 函數(shù)功能:* 軟件延時函數(shù) 065536ms * 帶入參數(shù):*unsigned int * 帶出參數(shù):*無 * 其他備注:*延時0unsigned int(帶入參數(shù))ms * 作 者:*江錕 * 時 間:*2015

3、.12.14 */void delay_ms(unsigned int z)int x,y;for(x=0;x<z;x+)for(y=0;y<113;y+);unsigned char key_scan(void)uchar i,k,key; /uint c; k='E'KEY_BUS=0x0f;if(KEY_BUS!=0x0f)/ 這就算是進來了 delay_ms(5); if(KEY_BUS!=0x0f)/ 抖動檢測 KEY_BUS=0xef; for(i=0;i<4;i+)/四次掃描 key=KEY_BUS&0x0f;/屏蔽掉低4位 只保留檢測回

4、來的位switch(key)case 0x0e: k=i;break;/能記錄0-3case 0x0d: k=i+4;break;/能記錄4-7case 0x0b: k=i+8;break;/能記錄8-11case 0x07: k=i+12;break;/能記錄12-15default: ;break;KEY_BUS=(KEY_BUS<<1)+1;/把P1口的0的位向左移動 /_crol_(KEY_BUS,1);可以用這個代替if(k!='E')break;/檢測到按鍵后退出for循環(huán) KEY_BUS=0xf0; /for(c=0;(c>200)|(P2!=0xf0);c+); / delay_ms(10); /for(c=0;(c>200)|(P2!=0xf0);c+); /這樣寫可以讓單片機檢測200次,不至于是一個死循環(huán),有些時候用的到 /if(P2=0xf0) / / return k; / else return 20;/有按鍵按下但沒松手,這種情況也可以定義筆記特殊 while(P2!=0xf0); delay_ms(40); while(P2!=0xf0);/ 一直不松手會進入一個

溫馨提示

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

評論

0/150

提交評論