51单片机_矩阵按键检测

时间:2025-03-13

《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文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219