国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

五、51單片機控制矩陣按鍵

這篇具有很好參考價值的文章主要介紹了五、51單片機控制矩陣按鍵。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、矩陣按鍵

1.1、矩陣按鍵原理分析

這里矩陣按鍵為4*4的矩陣按鍵。

(1)矩陣按鍵橫向和縱向分割。

(2)按鍵兩端分別接不同的IO引腳。

(3)按鍵物理作用不變:按下按鍵兩端接通,彈起按鍵兩端斷開。

1.2、矩陣按鍵的工作過程

JP4接P3端口,JP4_8接P3^7...JP4_1接P3^0。

(1)IO端口(P3)先輸出0x0f,按鍵列的一端為高電平,行的一端為低電平。

(2)讀取P3端口引腳,若讀到值不是0x0f,則說明有按鍵按下,判斷是哪一列。

(3)P3端口再輸出0xf0,按鍵行一端為高電平,列一端為低電平。

(4)讀取P3端口引腳,若讀到值不是0xf0,則說明有按鍵按下,判斷是哪一行。

(5)結合兩次行和列的位置,計算判斷是哪個按鍵按下。

2、原理圖

一般情況下JP4端口的1234或5678需要接一個電阻,不然兩個IO口導通會導致短路,電流過大,這里不接是因為單片機IO口接了上拉電阻。

五、51單片機控制矩陣按鍵

五、51單片機控制矩陣按鍵

矩陣鍵盤特點:

優(yōu)點:矩陣鍵盤省IO口。

缺點:(1)不能同時按下多個按鍵,例如同時按下兩個按鍵(不再同一行,不在同一列),會檢測到兩個行,兩個列,對應四個按鍵,而無法判斷是其中的哪兩個。(2)不能采用中斷檢測按鍵。

3、示例程序

上圖中的S1~S16按鍵,對應1~16的數值。通過8顆LED燈,LED1~LED8表示8位二進制數,亮為1,滅為0,通過LED燈亮滅顯示顯示按下按鍵的數值。LDE1為低位,LED8為高位。文章來源地址http://www.zghlxwxcb.cn/news/detail-419012.html

#include <reg52.h>


/*實現功能
 *S1~S16按鍵,對應1~16的數值。
 *LED1~LED8表示8位二進制數,亮為1,滅為0。
 *通過LED燈亮滅顯示顯示按下按鍵的數值。
 *LDE1為低位,LED8為高位。
 */

/*硬件連接
 *LED接P0端口,LED1接P0^0、LED2接P0^1...LED8接P0^7。
 *矩陣按鍵接P3端口,JP4_8接P3^7...JP4_1接P3^0。
 *LED燈為共陰極,高電平點亮。
 */
#define LED P0
#define KEY P3


/*函數聲明*/
unsigned char GetKeyValue();   /*獲取鍵值*/ 
void Delay15ms();


void main(void)
{
	unsigned char KeyValue = 0;
	LED = 0x00; 			/*默認所有LED燈熄滅*/
	
	while(1)
	{
		KeyValue = GetKeyValue();
		if(KeyValue != 0)
            LED = KeyValue;
	}
}


unsigned char GetKeyValue()
{
	unsigned char hang = 0;
	unsigned char lie = 0;
	unsigned char KeyValue = 0;
	
	/*檢測列*/
	KEY = 0x0f;  
	if(KEY != 0x0f)      /*說明有按鍵按下*/
	{
		Delay15ms();     /*消抖,等待電平穩(wěn)定*/							
		switch(KEY)
		{
			case 0x0e: lie = 4; break;    /*第4列有按鍵按下*/	
			case 0x0d: lie = 3; break;    /*第3列有按鍵按下*/
			case 0x0b: lie = 2; break;    /*第2列有按鍵按下*/	
			case 0x07: lie = 1; break;    /*第1列有按鍵按下*/	
			default:   lie = 0; break;
		}
	}
		
	/*檢測行*/
	KEY = 0xf0;          /*從IO口輸出*/
	if(KEY != 0xf0)      /*讀IO口,說明有按鍵按下*/
	{
		switch(KEY)
		{
			case 0x70: hang = 1; break;    /*第1行有按鍵按下*/
			case 0xb0: hang = 2; break;    /*第2列有按鍵按下*/
			case 0xd0: hang = 3; break;    /*第3列有按鍵按下*/
			case 0xe0: hang = 4; break;    /*第4列有按鍵按下*/	
			default:   hang = 0; break;		
		}
	}
		
	if(hang !=0 && lie !=0)
	{
		KeyValue = (hang-1)*4 +lie;
		return KeyValue;
	}
	
	return 0;     /*表示沒有程序按下或有多個按鍵同時按下*/
}


void Delay15ms()		//@12.000MHz
{
	unsigned char i, j;

	i = 30;
	j = 43;
	do
	{
		while (--j);
	} while (--i);
}









到了這里,關于五、51單片機控制矩陣按鍵的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 51單片機:數碼管和矩陣按鍵

    51單片機:數碼管和矩陣按鍵

    目錄 一:動態(tài)數碼管模塊 1:介紹 ?2:共陰極和共陽極 A:共陰極 B:共陽極 C:轉化表 ?3:74HC138譯碼器 4:74HC138譯碼器控制動態(tài)數碼管(位選) 5:數碼管顯示完整代碼 6:74HC573鎖存器 A:基本點 B:原理圖介紹 c:74HC573控制數碼管代碼 二:矩陣按鍵模塊 1:介紹 2:原理圖 ?3:矩陣按鍵代碼 ??????

    2024年02月15日
    瀏覽(26)
  • 51單片機按鍵控制流水燈

    51單片機按鍵控制流水燈

    1獨立按鍵的原理圖 按鍵所對應的引腳為P3的0、1、2、3引腳口,并且這里總共有四個獨立按鍵,它們公共的一段都接到了 GND 電源的負極。這樣我們就知道按鍵上電的默認電平為高電平。所以我們只需要控制按鍵按下時給一個低電平0,不按下時默認高電平1就行。 ?2按鍵控制

    2024年02月11日
    瀏覽(19)
  • 51單片機按鍵控制LED亮滅

    51單片機按鍵控制LED亮滅

    通過單片機按鍵控制LED亮滅與傳統(tǒng)電路的物理邏輯不同,在物理邏輯中開關控制電路的通斷來控制LED的亮滅,而通過單片機完成該項目至于要不斷地讀取按鍵所連接IO口的電平來判斷對LED連接的IO口輸出的電平即可。 原理圖如下: ?根據原理圖,我們可以發(fā)現按鍵按下時P2.1口

    2023年04月18日
    瀏覽(29)
  • 51單片機-按鍵控制led燈

    51單片機-按鍵控制led燈

    1.開發(fā)環(huán)境介紹 使用C語言,環(huán)境為keil Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用. 什么是單片機 單片機(Single-Chip Microcomputer)是一種集成電路芯片,把具

    2024年02月09日
    瀏覽(23)
  • 嵌入式51單片機04-矩陣按鍵系列

    嵌入式51單片機04-矩陣按鍵系列

    一、矩陣按鍵基礎知識 矩陣按鍵工作原理 : 逐行掃描 :通過高四位輪流輸出低電平來對矩陣鍵盤進行掃描,當低四位接收到的數據不全為1的時候,說明有按鍵按下,然后通過判斷低四位數據中哪一位為零來判斷哪一個按鍵被按下。 逐列掃描 :通過低四位輪流輸出低電平來

    2024年02月07日
    瀏覽(49)
  • 【51單片機】矩陣按鍵實現數碼管顯示

    【51單片機】矩陣按鍵實現數碼管顯示

    閑的沒事看一看玩一玩········· 矩陣按鍵 數碼管是一種導體發(fā)光器件,其基本單元是發(fā)光二極管。按發(fā)光二極管單元連接方式可分為共陽極數碼管和共陰極數碼管 共陰極數碼管是指將所有發(fā)光二極管的陰極接到一起形成共陰極的數碼管,共陰極的數碼管在應用時將公共

    2024年02月02日
    瀏覽(24)
  • 51單片機設計16個按鍵的矩陣鍵盤

    51單片機設計16個按鍵的矩陣鍵盤

    首先如圖所示導入各個元器件,并連線。 因為P3口連接著矩陣鍵盤,所以上來要先付個初值,從高位到低位H0,H1,H2,H3,L0,L1,L2,L3的值是11110000,高位全是1,低位全是0,十六進制就是0xF0,也就是P3=0xF0。如果有按鍵按下了,肯定就不是這個值了。 比如說: 第一行789+中的任何一個按

    2024年02月05日
    瀏覽(30)
  • 51單片機——矩陣按鍵實驗,小白講解,相互學習

    51單片機——矩陣按鍵實驗,小白講解,相互學習

    矩陣按鍵介紹: ????????獨立按鍵與單片機連接時,每一個按鍵都需要單片機的一個I/O 口,若某單片機系統(tǒng)需較多按鍵,如果用獨立按鍵便會占用過多的I/O 口資源.單片機系統(tǒng)中I/O 口資源往往比較寶貴,當用到多個按鍵時為了減少I/O 口引腳,引入了矩陣按鍵。 ??????

    2024年02月12日
    瀏覽(21)
  • 51單片機:獨立按鍵控制LED燈

    51單片機:獨立按鍵控制LED燈

    1. 獨立按鍵控制LED燈狀態(tài)? ? ? ? ? 亮滅實驗完成后,就可以控制LED狀態(tài),首先我們知道由于機械結構的彈性作用,按鍵開關在閉合時不會一瞬間穩(wěn)定的接通,在斷開時,也不會一下子斷開。所以就得需要程序消抖,也就是適當延時,程序如下 #include\\\"reg52.h\\\" //定義LED燈 sbit

    2023年04月09日
    瀏覽(32)
  • 51單片機(三)獨立按鍵控制LED

    51單片機(三)獨立按鍵控制LED

    ?? 專欄簡介:本專欄記錄了從零學習單片機的過程,其中包括51單片機和STM32單片機兩部分;建議先學習51單片機,其是STM32等高級單片機的基礎;這樣再學習STM32時才能融會貫通。 ?? 專欄適用人群 :適用于想要從零基礎開始學習入門單片機,且有一定C語言基礎的的童鞋

    2024年02月08日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包