手机版

51单片机_矩阵按键检测

发布时间:2021-06-08   来源:未知    
字号:

《51系列单片机_矩阵按键检测》此程序使用 单片机89SC52// 1、 此程序实现矩阵按键的检测功能,按下按键时,数码管显示按键的相应键值

《51系列单片机_矩阵按键检测》

此程序使用 单片机89SC52

// 1、 此程序实现矩阵按键的检测功能,按下按键时,数码管显示按键的相应键值

#include<reg52.h>

void delay_ms(int n) //延时函数,延时n毫秒

{

int i, j;

for(i=0; i<n; i++)

for(j=0; j<110; j++);

}

void display(int num) //控制数码管按位输出显示数值num {

char BitSet[8] =

{

0x7f, 0xbf, 0xdf, 0xef,

0xf7, 0xfb, 0xfd, 0xfe

}; //用于设置(低电平位选)数码管的位选信号,从低到高对应8个数码管

char NumberCode[16] =

{

0x3f, 0x06, 0x5b, 0x4f,

0x66, 0x6d, 0x7d, 0x07,

0x7f, 0x6f, 0x77, 0x7c,

0x39, 0x5e, 0x79, 0x71,

}; //用于设置(共阴极)数码管的段选信号,从0~f共16个数值

int n = num, i = 0;

while(n>=0)

{

P0 = 0xff; //关闭数码管当前位的显示,共阳极关闭显示段选信号 P2 = BitSet[i]; //选中数码管对应的位

P0 = ~NumberCode[n%10]; //向数码管的对应位中送入该位数值对应的段选信号 delay_ms(2); //每一位延时显示2ms

P2 = 0xff; //关闭所有位选

i++; //位标记

n=n/10; //取数值n的商

if(n==0) break; //当取得的商为0时退出while循环

}

}

51单片机_矩阵按键检测.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)