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

51單片機入門教程__矩陣鍵盤的使用

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

一、矩陣鍵盤的使用

1、在鍵盤中按鍵數(shù)量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式 采用逐行或主列的“掃描”,就可以讀出任何位置按鍵的狀態(tài)(掃描快速)

2、原理圖

單片機矩陣鍵盤怎么使用

3、 掃描的區(qū)分

數(shù)碼管通過快速循環(huán)不同位數(shù),實現(xiàn)數(shù)碼管同時顯示的效果,而矩陣鍵盤通過快速循環(huán)不同列與行實現(xiàn)所有按鍵同時檢測。

優(yōu)點:節(jié)省IO口

二、代碼的實現(xiàn)

1、對于鍵盤而言 有

#include <REGX52.H>
#include "Delay.h"

/**
  * @brief  矩陣鍵盤讀取按鍵鍵碼
  * @param  無
  * @retval KeyNumber 按下按鍵的鍵碼值
			如果按鍵按下不放,程序會停留在此函數(shù),松手的一瞬間,返回按鍵鍵碼,沒有按鍵按下時,返回0
  */
unsigned char MatrixKey()
{
	unsigned char KeyNumber=0;
	
	P1=0xFF;
	P1_3=0;
	if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=1;}
	if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=5;}
	if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=9;}
	if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=13;}
	
	P1=0xFF;
	P1_2=0;
	if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=2;}
	if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=6;}
	if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=10;}
	if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=14;}
	
	P1=0xFF;
	P1_1=0;
	if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=3;}
	if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=7;}
	if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=11;}
	if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=15;}
	
	P1=0xFF;
	P1_0=0;
	if(P1_7==0){Delay(20);while(P1_7==0);Delay(20);KeyNumber=4;}
	if(P1_6==0){Delay(20);while(P1_6==0);Delay(20);KeyNumber=8;}
	if(P1_5==0){Delay(20);while(P1_5==0);Delay(20);KeyNumber=12;}
	if(P1_4==0){Delay(20);while(P1_4==0);Delay(20);KeyNumber=16;}
	
	return KeyNumber;
}

首先將P1所有的端口置1,對其進行每一列的掃描,先對P3置0,當按下對應的按鍵時,再松開的時候,會產(chǎn)生低電平0,此刻存在著一個松手檢測,當松開手之后,才顯示對應的數(shù)字。

三、制作簡單的電子密碼鎖

1、先上代碼

#include <REGX52.H>
#include "Delay.h"
#include "LCD1602.h"
#include "MatrixKey.h"

unsigned char KeyNum;
unsigned int Password,Count;

void main()
{
	LCD_Init();
	LCD_ShowString(1,1,"Password:");
	while(1)
	{
		KeyNum=MatrixKey();
		if(KeyNum)
		{
			if(KeyNum<=10)	//如果S1~S10按鍵按下,輸入密碼
			{
				if(Count<4)	//如果輸入次數(shù)小于4
				{
					Password*=10;				//密碼左移一位
					Password+=KeyNum%10;		//獲取一位密碼
					Count++;	//計次加一
				}
				LCD_ShowNum(2,1,Password,4);	//更新顯示
			}
			if(KeyNum==11)	//如果S11按鍵按下,確認
			{
				if(Password==2345)	//如果密碼等于正確密碼
				{
					LCD_ShowString(1,14,"OK ");	//顯示OK
					Password=0;		//密碼清零
					Count=0;		//計次清零
					LCD_ShowNum(2,1,Password,4);	//更新顯示
				}
				else				//否則
				{
					LCD_ShowString(1,14,"ERR");	//顯示ERR
					Password=0;		//密碼清零
					Count=0;		//計次清零
					LCD_ShowNum(2,1,Password,4);	//更新顯示
				}
			}
			if(KeyNum==12)	//如果S12按鍵按下,取消
			{
				Password=0;		//密碼清零
				Count=0;		//計次清零
				LCD_ShowNum(2,1,Password,4);	//更新顯示
			}
		}
	}
}

2、總結(jié)

密碼鎖的主要難點在于如何輸入采集密碼 對于密碼而言 當我們按下對應的數(shù)字后 所顯示的是我們所輸入數(shù)的和 關(guān)鍵在于%和*的理解 取余只能得到末尾 因此合理的得到了密碼序列文章來源地址http://www.zghlxwxcb.cn/news/detail-567638.html

到了這里,關(guān)于51單片機入門教程__矩陣鍵盤的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 51單片機入門——矩陣鍵盤(附51代碼)

    51單片機入門——矩陣鍵盤(附51代碼)

    硬件如圖非常簡單,將一個4*4的矩陣鍵盤的8個管腳引到端子上,在連接到8個I/O口上,ARRAY_H代表著行,ARRAY_L代表著列,當行與列的電平都置低的時候,就選中的相應的矩陣按鍵,比如當s1按下時,ARRAY_H1會置低,其他ARRAY_H給高電平,那么選中的就是第一行,然后到列,ARRAY_

    2024年02月11日
    瀏覽(23)
  • 瑞薩MCU入門教程(非常詳細的瑞薩單片機入門教程)

    瑞薩MCU入門教程(非常詳細的瑞薩單片機入門教程)

    得益于瑞薩強大的MCU、強大的軟件開發(fā)工具(e2 studio),也得益于瑞薩和RA生態(tài)工作室提供的支持,我們團隊編寫了《ARM嵌入式系統(tǒng)中面向?qū)ο蟮哪K編程方法》,全書37章,將近500頁: 講解面向?qū)ο缶幊淘趩纹瑱C開發(fā)中的使用 結(jié)合FSP軟件包實例分析外設(shè)驅(qū)動 講解如何使用RASC配

    2024年02月08日
    瀏覽(48)
  • 51單片機——數(shù)碼管、按鍵、矩陣按鍵C語言入門編程

    51單片機——數(shù)碼管、按鍵、矩陣按鍵C語言入門編程

    目錄 數(shù)碼管: 1.靜態(tài)數(shù)碼管:第二位數(shù)碼管顯示0 2.動態(tài)數(shù)碼管:每一位數(shù)碼管依次顯示對應位數(shù) 按鍵: 1.獨立按鍵:按下按鍵對應LED亮滅 矩陣按鍵: 1.矩陣按鍵:按下的每個按鍵,數(shù)碼管顯示對應鍵碼 ???????? 數(shù)碼管按段數(shù)可分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管

    2024年01月23日
    瀏覽(23)
  • 單片機入門教程:第七章 1602LCD液晶顯示模塊

    單片機入門教程:第七章 1602LCD液晶顯示模塊

    在單片機的人機交互系統(tǒng)中,常常需要顯示系統(tǒng)運行中的某些信息和數(shù)據(jù),例如,字符、漢字或者圖形等。液晶顯示器(LCD)正好可以完成此項任務(wù),它是一種功耗很低的顯示器,在電子表、計算器、數(shù)碼相機、計算機的顯示器和液晶電視上都可以看到它的身影。液晶顯示器

    2024年02月09日
    瀏覽(27)
  • 洋桃電子STM32F407單片機入門教程筆記九:低功耗模式

    洋桃電子STM32F407單片機入門教程筆記九:低功耗模式

    ??此文檔作為對洋桃電子STM32F407單片機視頻的整理,B站鏈接: 第28集)低功耗模式_嗶哩嗶哩_bilibili ????????在之前的程序里應用程序在while(1)主循環(huán)中反復執(zhí)行,ARM內(nèi)核以100%的功率工作。這樣的設(shè)計簡單穩(wěn)定,內(nèi)核全速運行的功耗也只有幾十毫安,對于外接電源的設(shè)備

    2024年01月23日
    瀏覽(21)
  • STC8H系列單片機入門教程之ADC基礎(chǔ)知識(四)

    STC8H系列單片機入門教程之ADC基礎(chǔ)知識(四)

    目錄 一、A/D轉(zhuǎn)換過程 二、ADC轉(zhuǎn)換流程圖 三、采樣定理 四、ADC基本參數(shù) 4.1、分辨率 4.2、采樣速率 4.3、轉(zhuǎn)換時間 4.4、量程? 4.5、最低有效位 五、靜態(tài)參數(shù) 5.1、微分非線性 5.2、積分非線性 六、逐次逼近型模數(shù)轉(zhuǎn)換器 七、ADC常用分壓電路 八、示例代碼 ADC即模數(shù)轉(zhuǎn)換器,用來

    2024年04月11日
    瀏覽(23)
  • STC8H系列單片機入門教程之GPIO基本知識(一)

    STC8H系列單片機入門教程之GPIO基本知識(一)

    IO口即輸入輸出口,STC8H系列單片機支持四種工作模式, 即準雙向口、推挽輸出、高阻輸入、開漏輸出,每個IO通過兩個寄存器進行配置,如下圖所示,注:n = 0,1,2,3,4,5,6,7。 PnM1 PnM0 I/O 口工作模式 0 0 準雙向口(弱上拉),灌電流可達 20mA ,拉電流 150-270uA 0 1 推挽輸出,強上拉

    2024年04月14日
    瀏覽(47)
  • 洋桃電子STM32F407單片機入門教程筆記一:RCC時鐘設(shè)置

    洋桃電子STM32F407單片機入門教程筆記一:RCC時鐘設(shè)置

    此文檔作為對洋桃電子STM32F407單片機視頻的整理,B站鏈接:2023更新 STM32入門F4= STM32F407單片機入門教程=WIFI連接阿里云物聯(lián)網(wǎng)+CubeMX+HAL庫+TFT彩屏+杜洋主講_嗶哩嗶哩_bilibili 由于單片機內(nèi)部的時鐘結(jié)構(gòu)都是相互關(guān)聯(lián)的,一個時鐘源出發(fā)可以供給多個功能,類似于樹根、樹桿、樹

    2024年02月04日
    瀏覽(22)
  • 第1章_瑞薩MCU零基礎(chǔ)入門系列教程之單片機程序的設(shè)計模式

    第1章_瑞薩MCU零基礎(chǔ)入門系列教程之單片機程序的設(shè)計模式

    本教程基于韋東山百問網(wǎng)出的 DShanMCU-RA6M5開發(fā)板 進行編寫,需要的同學可以在這里獲?。?https://item.taobao.com/item.htm?id=728461040949 配套資料獲?。篽ttps://renesas-docs.100ask.net 瑞薩MCU零基礎(chǔ)入門系列教程匯總 : https://blog.csdn.net/qq_35181236/article/details/132779862 本章目標 理解裸機程序設(shè)

    2024年02月09日
    瀏覽(20)
  • ESP8266-01s入門:上報和下發(fā)數(shù)據(jù)控制單片機 AT指令講解和上云 燒錄AT固件與OneNET MQTT通信教程包含MQTT.fx1.7.1教程(微信小程序通信單片機前置任務(wù))

    ESP8266-01s入門:上報和下發(fā)數(shù)據(jù)控制單片機 AT指令講解和上云 燒錄AT固件與OneNET MQTT通信教程包含MQTT.fx1.7.1教程(微信小程序通信單片機前置任務(wù))

    本項目教程總共分為四節(jié) 1.創(chuàng)建OneNET新版MQTT設(shè)備:為微信小程序與單片機通信打基礎(chǔ)(微信小程序通信單片機前置任務(wù)) 2.(當前文章)ESP8266-01s入門:燒錄AT固件與OneNET MQTT通信教程包含MQTT.fx1.7.1教程(微信小程序通信單片機前置任務(wù)) 3.物聯(lián)網(wǎng)實踐教程:微信小程序結(jié)合

    2024年02月04日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包