51微控制器應用行列反轉法操縱矩陣鍵盤

2021-08-15 01:21:33 字數 1333 閱讀 1498

行列反轉法

反轉法的原理:反轉法就是通過給微控制器的埠兩次賦值,最後得出所按鍵的值的一種演算法。具體操作如下:

1.我們給p3口賦值0x0f,即00001111,假設s6鍵(tx開發板中,s6鍵相當於第乙個按鍵)按下了,則這時p3口的實際值為00001110;     

2.我們給p3口再賦值0xf0,即11110000,如果s6鍵按下了,則這時p3口的實際值為11100000;    

3.我們把兩次p3口的實際值相加得11101110,即0xee。     由此我們便得到了按下s6鍵時所對應的數值0xee,以此類推可得出其他15個按鍵對應的數值,有了這種對應關係,對應關係見圖2.

void delayms(uint xms); //延時函式

void keyscan() ; //按鍵掃瞄函式

void display(); //數碼管顯示函式

uchar code table=;

uchar code jian=;

void main() //主函式

}void delayms(uint xms) //延時函式

void keyscan() //按鍵掃瞄函式

}p3=0xf0; //p3=0x11110000

h=p3&0xf0; //h為高四位,即列

if(h!=0xf0) //如果按鍵有被按下

}key=l+h; //相加確定出某乙個按鍵被按下

for(i=0;i<16;i++) //查詢i,確定i的值。目的是接下來對應到數碼管的哪一位

}void display() //顯示函式

實驗現象如下:

51微控制器應用基礎

51微控制器應用手冊 一 引腳圖 二 特殊功能暫存器映像及復位值 常用的暫存器詳細介紹 程式模板 include 標頭檔案 include common.h 包含公共檔案 單檔案可以不用 sbit led p2 0 引腳位定義 define led on led 0 巨集定義 define led ...

51微控制器(計時器 時鐘應用)

ps 使用的是51微控制器,晶振為11.0592m的,時間選擇5ms。這篇部落格好像是第一篇微控制器部落格誒 演算法 簡單的計時器應用,最開始 根據 2 16 t f 12 計算得到值,將其轉換為16進製制 注意 單位的改變,例如晶振要乘上 10e6 時間 要轉換為秒s 乘上 10e 3 由此可以得...

51微控制器 定時器及其應用

89c51微控制器內部有兩個16位的定時 計數器,即定時器t0和定時器t1,微控制器的定時功能其實就是通過計數來實現的,當微控制器每乙個機器週期產生乙個脈衝時,計數器就加一。定時器的應用涉及到中斷方面的知識,可以先了解中斷的概念再來看定時器 如,乙個16位的定時器,它所能計數的範圍是0 65535,...