Proteus仿真51单片机+4X4矩阵按键扫描+数码管0-F显示
Posted perseverance52
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Proteus仿真51单片机+4X4矩阵按键扫描+数码管0-F显示相关的知识,希望对你有一定的参考价值。
51单片机+4X4矩阵按键扫描+数码管0-F显示
- 🎞📽📺🎬Proteus仿真效果:
- 📓工程架构
📚功能说明
📝按键4x4共16个按键,通过按下对应的按键,分别显示0-9,a-f,字符。
- 🔰数码管显示
✨采用的的共阴数码管,代码实现部分:
//共阴数码管段码表
unsigned char code seg[]=0x3f/*0*/,0x06/*1*/,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77/*A*/,0x7C,0x39,0x5E,0x79,0x71/*F*/;
void display(unsigned char Num)
P2=seg[Num];
- 🔰4x4矩阵部分
🌼按键扫描功能代码实现部分:
uint16_t key_scan(void)
uint16_t key_val=0;
uint16_t temp=0;
/*************扫描第1行**************/
P1 = 0X00;
P1 = 0XF7;
if((P1&0XF0)!=0XF0)
delay_ms();//消抖
if((P1 & 0XF0)!=0XF0)
temp=(P1&0XF7);
switch(temp)
case 0xE7: key_val=1; break;
case 0xD7: key_val=2; break;
case 0xB7: key_val=3; break;
case 0x77: key_val=4; break;
default: key_val=0; break;
/*************扫描第2行***************/
P1=0X00;
P1=0XFB;
if((P1&0XF0)!=0XF0)
delay_ms();
if((P1 & 0XF0)!=0XF0)
temp=(P1&0XFB);
switch(temp)
case 0xEB: key_val=5; break;
case 0xDB: key_val=6; break;
case 0xBB: key_val=7; break;
case 0x7B: key_val=8; break;
default: key_val=0; break;
/*************扫描第3行************/
P1=0X00;
P1=0XFD;
if((P1&0XF0)!=0XF0)
delay_ms();
if((P1 & 0XF0)!=0XF0)
temp=(P1&0XFD);
switch(temp)
case 0xED: key_val=9; break;
case 0xDD: key_val=10; break;
case 0xBD: key_val=11; break;
case 0x7D: key_val=12; break;
default: key_val=0; break;
/*************Scan 4st Line************************/
P1=0X00;
P1=0XFE;
if((P1&0XF0)!=0XF0)
delay_ms();
if((P1 & 0XF0)!=0XF0)
temp=(P1&0XFE);
switch(temp)
case 0xEE: key_val=13; break;
case 0xDE: key_val=14; break;
case 0xBE: key_val=15; break;
case 0x7E: key_val=16; break;
default: key_val=0; break;
return key_val;
📖主程序代码
#include "key_scan.h"
#include "SEG.h"
void main()
static uint16_t Key_Value=0;
display(0);
while(1)
Key_Value = key_scan();
if((Key_Value !=0) && (Key_Value != 16))
display(Key_Value);
else if(Key_Value == 16)
display(0);
⛳工程源码和仿真资源
🍁基于Proteus8.12版本仿真
链接:https://pan.baidu.com/s/16_9CiAQmoV61NMHtoqb45Q
提取码:bjk8
以上是关于Proteus仿真51单片机+4X4矩阵按键扫描+数码管0-F显示的主要内容,如果未能解决你的问题,请参考以下文章
Proteus仿真51单片机4x4矩阵键盘扫描lcd1602显示
51单片机8x9矩阵键盘+数码管+74HC595+Proteus仿真
51单片机 4×4键盘矩阵控制条形LED显示+ Proteus仿真