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

51單片機矩陣鍵盤——LCD1602顯示

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

1.前言

本次的實驗需要用到LCD1602液晶屏,需要用到LCD1602.c 與LCD1602.h文件鏈接:

https://download.csdn.net/download/YLG_lin/86404949

1.1 實驗現(xiàn)象

使用矩陣鍵盤隨意按下按鍵,LCD1602第二行前兩位就會顯示對應按鍵按下的數(shù)字。

1.2矩陣鍵盤介紹

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

1.3工作原理

矩陣鍵盤掃描(輸入掃描)
?? ?原理:讀取第1行(列)→讀取第2行(列) →讀取第3行(列) → ……,然后快速循環(huán)這個過程,最終實現(xiàn)所有按鍵同時檢測的效果

51單片機矩陣鍵盤——LCD1602顯示

就以逐行掃描為例: 當給P17,P16,P15,P14賦值0111時P17被選中,讀取P13,P12,P11,P10的值判斷哪個按鍵被按下。如果S1按下了那么P13就等于0,如果S2按下了那么P12就等于0...

逐列掃描:當給P13,P12,P11,P10賦值0111時P13被選中,讀取P17,P16,P15,P14的值判斷哪個按鍵被按下。如果P17,P16,P15,P14為0111 則P17選中S1按下,如果P17,P16,P15,P14為1011,則S5按下.

注意:

51單片機矩陣鍵盤——LCD1602顯示51單片機矩陣鍵盤——LCD1602顯示

P15口可能會一會給高一會給低;P15口會連接到進步電機(相當于驅動器,增加電流能力的),右邊連接到BEEP; BEEF就連接到了蜂鳴器上開發(fā)板上的蜂鳴器一般為無源蜂鳴器,BEEP口以一定的頻率高低變化那么蜂鳴器就會響,所以一般采用逐列掃描。這是引腳沖突造成的,開發(fā)板那么多外設,I/O口只有那么多,所以必有很多I/O口附庸在一起,造成外設之間的干擾。文章來源地址http://www.zghlxwxcb.cn/news/detail-408273.html

?2.程序/代碼

? 2.1 MatrixKey.c

#include <REGX52.H>

	void Delay(unsigned int xms)
{
	unsigned char i, j;
	while(xms--)
	{
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
	}
}

	
	
unsigned char MatrixKey()//如果按鍵按下不放,程序會停留在此函數(shù),松手的一瞬間,
{                         //返回按鍵鍵碼,沒有按鍵按下時,返回0
	unsigned char KeyNumber=0;//KeyNumber 按下按鍵的鍵碼值
	
	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;
}

2.2 MatrixKey.h

#ifndef __MATRIXKEY_H__
#define __MATRIXKEY_H__

unsigned char MatrixKey();
void Delay(unsigned int xms);

#endif

2.3 main.c

#include <REGX52.h>
#include "LCD1602.h"	//包含LCD1602頭文件
#include "MatrixKey.h"	//包含矩陣鍵盤頭文件

unsigned char KeyNum;

void main()
{
	LCD_Init();							//LCD初始化
  LCD_ShowString(1,1,"MatrixKey:");	//LCD顯示字符串
	while(1)
	{
		KeyNum=MatrixKey();				//獲取矩陣鍵盤鍵碼
		if(KeyNum)						//如果有按鍵按下
		{
			LCD_ShowNum(2,1,KeyNum,2);	//LCD顯示鍵碼
		}
	}
}

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

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

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

相關文章

  • 【51單片機】LCD1602 液晶顯示實驗指導書

    【51單片機】LCD1602 液晶顯示實驗指導書

    ??????? ?來介紹一種非常簡單且常用的顯示裝置——LCD1602 液晶顯示器,使用它可以顯示更多的字符數(shù)字。這將有助于我們清晰的觀察程序的運行結果,更加方便我們的后續(xù)調(diào)試和開發(fā)。 ????????我們的開發(fā)板上集成了一個 LCD1602 液晶顯示器接口,將LCD1602 液晶對應插

    2024年02月01日
    瀏覽(24)
  • 基于51單片機驅動MPU6050模塊(LCD1602顯示)

    基于51單片機驅動MPU6050模塊(LCD1602顯示)

    @TOC MPU-6050集成了3軸MEMS陀螺儀,3軸MEMS加速度計,以及一個可擴展的數(shù)字運動處理器DMP,可用IIC接口連接一個第三方的數(shù)字傳感器。MPU-6050對陀螺儀和加速度計分別用了三個16位的ADC,將其測量的模擬量轉化為可輸出的數(shù)字量。為了精確跟蹤快速和慢速的運動,傳感器的測量范

    2024年02月11日
    瀏覽(25)
  • 【附報告】51單片機計算器(LCD1602液晶顯示)

    【附報告】51單片機計算器(LCD1602液晶顯示)

    ? 由于本文較早,這里推薦一下近期剛優(yōu)化的:【優(yōu)化】51單片機計算器(LCD1602液晶顯示)_Gxtoeilee的博客-CSDN博客 ? 1 設計目標 設計可選模式的計算器? 2 主要功能 功能一:可選兩種計算模式,模式一為四則運算,模式二為擴展內(nèi)容; 功能二:除法的計算結果保留到小數(shù)點

    2024年02月11日
    瀏覽(23)
  • 【C語言】51單片機計算器(LCD1602液晶顯示)

    【C語言】51單片機計算器(LCD1602液晶顯示)

    ? 由于本文較早,這里推薦一下近期剛優(yōu)化的:【優(yōu)化】51單片機計算器(LCD1602液晶顯示)_Gxtoeilee的博客-CSDN博客 ? 1 設計目標 設計可選模式的計算器? 2 主要功能 功能一:可選兩種計算模式,模式一為四則運算,模式二為擴展內(nèi)容; 功能二:除法的計算結果保留到小數(shù)點

    2024年02月07日
    瀏覽(53)
  • 36、基于51單片機頻率計 LCD 1602顯示系統(tǒng)設計

    36、基于51單片機頻率計 LCD 1602顯示系統(tǒng)設計

    數(shù)字頻率計是一種基本的測量儀器。它被廣泛應用于航天、電子、測控等領域,還被應用在計算機及各種數(shù)學儀表中。一般采用的是十進制數(shù)字,顯示被測信號頻率?;竟δ苁菧y量正弦信號,方波信號以及其他各種單位時間內(nèi)變壞的物理量。由于其使用十進制數(shù)顯示,測量

    2024年02月03日
    瀏覽(25)
  • 51單片機DS18B20測溫LCD1602顯示

    51單片機DS18B20測溫LCD1602顯示

    主函數(shù) 自定義頭文件 LCD1602函數(shù) DS18B20 共用函數(shù)

    2024年02月11日
    瀏覽(16)
  • 基于51單片機的電子鐘萬年歷LCD1602顯示

    基于51單片機的電子鐘萬年歷LCD1602顯示

    本設計是51單片機的電子鐘萬年歷LCD1602顯示(proteus仿真+程序+報告+器件清單) 仿真圖proteus 7.8 程序編譯器:keil 4/keil 5 編程語言:C語言 編號C0002 主要功能: 1、采用LCD1602液晶屏顯示,DS1302記錄日歷和時間。 2、按鍵設置日期、時間、鬧鐘。 3、當實際的時間達到設定的鬧鐘時

    2024年02月11日
    瀏覽(26)
  • 基于51單片機的煙霧溫度火災報警器 LCD1602顯示proteus仿真

    基于51單片機的煙霧溫度火災報警器 LCD1602顯示proteus仿真

    設計要求 設計一個簡單、實用的基于單片機室內(nèi)火災報警系統(tǒng)(模擬機),對火災的實時、準確監(jiān)測,快速、自動報警,該系統(tǒng)能自動完成對布測點的火情檢測即氣體溫度、濃度,設定一個溫度,由液晶顯示屏會看到溫度變化,如果超過設定溫度就會自動報警,報警形式有聲

    2023年04月20日
    瀏覽(22)
  • 【51單片機Keil+Proteus8.9】控制步進電機+LCD1602顯示狀態(tài)

    【51單片機Keil+Proteus8.9】控制步進電機+LCD1602顯示狀態(tài)

    步進電機控制 設計思路 電路設計: 選用AT89C51單片機作為電路核心部件,外加LM016L液晶顯示屏作為顯示,顯示步進電機的Fast,Slow,Stop的三個狀態(tài) 將AT89C51單片機所選引腳與LM016L控制引腳相連,再將數(shù)據(jù)通過引腳與LCD接收引腳相連。 通過AT89C51單片機P0^0和P0^2兩個引腳引出兩個

    2024年01月20日
    瀏覽(36)
  • 基于51單片機驅動HC-SR04超聲波模塊(LCD1602顯示)

    基于51單片機驅動HC-SR04超聲波模塊(LCD1602顯示)

    點擊圖片購買 HC- SR04+是一款寬電壓工作的超聲波測距模塊。模塊外形尺寸及軟件與老版本 HC- SR04完全兼容;可以與老版本HC SR04無縫切換。低至3V的低工作電壓, 使其與3.3V供電的MCU可以直接連接。 特點 探測角度: 15° 采用工業(yè)級MCU,工作溫度:-20C~80C 探測距離:5V:2cm-- 450cm;3.3V: 2c

    2024年02月02日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包