精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

矩陣按鍵識別的兩種方法

CHANBAEK ? 來源:頭條號電子秘探 ? 作者:頭條號電子秘探 ? 2023-03-23 15:54 ? 次閱讀

最近進度比較慢,馬上要學習中斷和計時器了。遇到一個很郁悶的問題,矩陣按鍵線反轉法在proteus中用現成的模塊就是實現不了,自己畫的矩陣模塊可以正常使用。不知道什么原因。

行列掃描---按鍵識別

原理比較簡單:P2端口的低四位D0---D3置1,高四位D4-D7分別置0,順序執行P2口的值

P2 端口的值 0xef 0xdf 0xbf 0x7f,利用按鍵底層驅動中Key_Scan()函數,得到返回鍵值

#define   KEYPAD P2
KEYPAD = 0xef;
		switch(Key_Scan())
		{
			case 1:
				LEDBuf[3]=1;break;
			case 2:
				LEDBuf[3]=2;break;
			case 3:
				LEDBuf[3]=3;break;
			case 4:
				LEDBuf[3]=4;break;
			default: break;
		
				
		}
		KEYPAD = 0xdf;
		switch(Key_Scan())
		{
			case 1:
				LEDBuf[3]=5;break;
			case 2:
				LEDBuf[3]=6;break;
			case 3:
				LEDBuf[3]=7;break;
			case 4:
				LEDBuf[3]=8;break;
			default: break;
		}
.........

線反轉法--按鍵識別

1.首先,我們將所有行設置為邏輯0,將所有列設置為邏輯1。

P2口的低四位連接矩陣按鍵4行上,高四位連接矩陣按鍵4列上

2.每當我們按下一個按鈕時,對應于該按鈕的列和行都會短路,并使對應的列達到邏輯電平0。可以確定列號

3.同理我們將所有列設置為邏輯0,將所有行設置為邏輯1。按下一個按鈕時,該按鈕的列和行都會達到邏輯0.可以確定行號

4.把行號和列號通過邏輯與操作連接起來,和行列編碼數組比較,得到按鍵返回值

#include "Key.h"

u8 Key_Scan()
{
	u8 temp,temp2,keycode,i;
	static u8 KeyNum = 0;//初始化顯示0
	u8 KEYCODE[]=    //按鍵行列編碼
	{0XEE,0XDE,0XBE,0X7E,
	0XED,0XDD,0XBD,0X7D,
	0XEB,0XDB,0XBB,0X7B,
	0XE7,0XD7,0XB7,0X77};
	
	KEYPORT = 0xf0;//4列置1,4行置0
	temp = KEYPORT ;//讀P2口
	
	if(temp!=0xf0)//判斷是否有按鍵按下
	{
		DelayXms(10);
		if(temp!=0xf0)//再次判斷是否有按鍵按下
		{
			temp=KEYPORT & 0xf0;//取高4位,取列數
			KEYPORT = 0x0f;//低4位寫1,高四位取0,線反轉
			temp2 = KEYPORT & 0x0f;//取低四位,取行號	
			keycode =  temp | temp2;//高四位和第四位(行列)組合到一起
			for(i=0;i<16;i++)
			{
				if(keycode == KEYCODE[i])
				{
					KeyNum = i;
					return KeyNum;
				}
			}

		}
	
	}
	return KeyNum;
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 中斷
    +關注

    關注

    5

    文章

    895

    瀏覽量

    41401
  • 計時器
    +關注

    關注

    1

    文章

    419

    瀏覽量

    32647
  • 函數
    +關注

    關注

    3

    文章

    4308

    瀏覽量

    62445
  • 按鍵識別
    +關注

    關注

    0

    文章

    10

    瀏覽量

    6956
  • 矩陣按鍵
    +關注

    關注

    0

    文章

    28

    瀏覽量

    8360
收藏 人收藏

    評論

    相關推薦

    Linux端口的開啟的兩種方法需要掌握

    Linux端口的開啟的兩種方法需要掌握
    發表于 11-28 10:05 ?1216次閱讀

    消除按鍵抖動的兩種方法分享

      按鍵也是機械裝置,在按下或放開的一瞬間會產生抖動,如下圖:    消除方法兩種:  軟件除抖和硬件除抖,其中硬件除抖是應用了電容對高頻信號短路的原理。  軟件除抖是檢測出鍵閉合后執行一個延時
    發表于 09-02 17:52

    pcb庫封裝常用的兩種方法

    識別模塊通訊模塊調試模塊單片機模塊PCB庫——原理圖庫——原理圖首先需要明白他們之間的關系畫圖的實質是什么pcb庫封裝常用的兩種方法,簡單實用原理圖封裝原理圖的封裝和pcb...
    發表于 07-29 09:33

    STM32操作矩陣鍵盤的兩種方法

    目錄STM32操作矩陣鍵盤的兩種方法——掃描和中斷一、矩陣鍵盤的結構和原理二、掃描式矩陣鍵盤的原理和實現三、中斷式矩陣鍵盤的原理和實現四、
    發表于 08-12 06:33

    按鍵信號是如何識別的

    一、按鍵掃描的基本原理按鍵信號是如何識別的?一般來說,按鍵個引腳的一端通過電阻上拉到高電平,另一端則接地。在沒有
    發表于 01-17 08:29

    矩陣按鍵識別的過程中是否要進行消抖處理?

    矩陣按鍵識別的過程中是否要進行消抖處理
    發表于 10-11 06:30

    檢查電池剩余電量的兩種方法

    檢查電池剩余電量的兩種方法・如果電池已經被插入到熔接機的插槽中,打開電源。那么電源模式會被自動識別為 "電池",并且剩余電量也會被顯示在 "READY" 畫面
    發表于 11-07 14:26 ?65次下載

    AODV協議中解決斷鏈問題的兩種方法

    AODV協議中解決斷鏈問題的兩種方法 2.1 備用路由方法由于常規路由協議維護完整的路由表,能得知網絡中的拓撲情況,很容易
    發表于 03-01 17:31 ?1116次閱讀
    AODV協議中解決斷鏈問題的<b class='flag-5'>兩種方法</b>

    使用jdbc連接上oracle的兩種方法

    本文主要介紹了使用jdbc連接上oracle的兩種方法:1、 使用thin連接,2、 使用oci連接(Oracle Call Interface)
    發表于 02-06 10:43 ?1703次閱讀

    提升家里網速的兩種方法

    總是嫌家里的網速慢,看視頻“轉圈圈”,玩游戲“時延高”,如何提升家里的網速呢?這里介紹兩種方法
    的頭像 發表于 02-19 21:10 ?1.4w次閱讀
    提升家里網速的<b class='flag-5'>兩種方法</b>

    語音識別的方法_語音識別的應用有哪些

    本文主要闡述了語音識別的方法及語音識別的應用。
    發表于 04-01 09:04 ?5956次閱讀

    矩陣鍵盤的按鍵識別方法_矩陣鍵盤掃描程序

    矩陣鍵盤的按鍵識別方法來自簡單日記網精選推薦。在學習有關矩陣鍵盤的時候,往往要學會矩陣鍵盤的按鍵
    的頭像 發表于 04-20 09:39 ?3.4w次閱讀

    STM32操作矩陣鍵盤的兩種方法——掃描和中斷

    目錄STM32操作矩陣鍵盤的兩種方法——掃描和中斷一、矩陣鍵盤的結構和原理二、掃描式矩陣鍵盤的原理和實現三、中斷式矩陣鍵盤的原理和實現四、
    發表于 11-26 13:36 ?36次下載
    STM32操作<b class='flag-5'>矩陣</b>鍵盤的<b class='flag-5'>兩種方法</b>——掃描和中斷

    LDO在IoT中省電的兩種方法

    LDO在IoT中省電的兩種方法
    發表于 11-04 09:50 ?0次下載
    LDO在IoT中省電的<b class='flag-5'>兩種方法</b>

    簡述安裝打印機驅動的兩種方法

    安裝打印機驅動通常有兩種方法,一種是直接使用驅動文件自帶的安裝程序自動安裝,而另一種方法就是我們自己手動進行安裝。兩種方法各有利弊,日常工作中可以根據實際情況來選擇使用哪種方法進行安裝
    的頭像 發表于 04-04 09:46 ?4672次閱讀
    簡述安裝打印機驅動的<b class='flag-5'>兩種方法</b>