打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
51单片机矩形键盘控制数码管显示0-F,以及LED灯的亮灭

仿真视频

51单片机矩形键盘控制数码管显示0-F,以及LED灯的亮灭的仿真视频

电路图

总图

部分图1

部分图2

部分图3

元件清单(有多余)

C语言程序

#include <reg51.h>#define uint unsigned int #define uchar unsigned char//共阳数码管编码表&LED灯uchar code table[] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//函数声明void delay(uint time); //延时函数void display(uchar k); //数码管显示0-F以及LED灯的亮灭uchar getKey();//读取键盘的数值//主程序void main(){ uchar keyValue; while(1){ keyValue = getKey(); //读取键盘值 display(keyValue); //数码管显示&LED亮灭 }}void delay(uint time){ uint i,j; for(i = 0; i<time; ++i) for(j = 0; j<110; ++j);}void display(uchar k){ P0 = table[k]; P1 = table[k];}uchar getKey(){ uchar x , y ; uchar result; // 计算行数X的值 P2 = 0x0f; // 从P2口输出,写P2口 if (P2 != 0x0f)// 从P2口输入,P2口 { // 读出的不是0x0f说明有按键被按下 delay(20); // 判断在哪一行 switch (P2) { case 0x0e: x = 0; break; case 0x0d: x = 1; break; case 0x0b: x = 2; break; case 0x07: x = 3; break; default: break; } delay(10); // 计算列数y的值 P2 = 0xf0; if (P2 != 0xf0) { delay(20); switch (P2) { case 0xe0:y = 0; break; case 0xd0: y = 1; break; case 0xb0: y = 2; break; case 0x70: y = 3; break; default: break; } // 计算出结果,确定数码管显示的数字以及字母与LED的亮灭 } } result = x * 4 + y; return result;}

#单片机##C语言##电工电子#

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
单片机步进电机控制系统 四个按键正转、反转、暂停/开始、速度加、速度减
单片机串口通信控制步进电机
51单片机矩阵键盘扫描程序
51单片机矩阵键盘扫描程序分析?
51单片机简单计算器用数码管显示
单片机红外接收软件解码-Changing's Blog
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服