行列式键盘+共阴极数码管显示
按下任意按键后,数码管上显示该键的键号(0-F一位数码管显示)
#include <reg51.h>
char led_mod[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, //led字模0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71};
char key_buf[] = {0xee, 0xde, 0xbe, 0x7e,0xed, 0xdd, 0xbd, 0x7d,//键值0xeb, 0xdb, 0xbb, 0x7b,0xe7, 0xd7, 0xb7, 0x77};void getKey () interrupt 0{ //中断函数char key_scan[] = {0xef, 0xdf, 0xbf, 0x7f}; //键扫描码char i = 0, j = 0;for (i = 0; i < 4 ; i++) {P2= key_scan[i]; //输出扫描码 for (j = 0 ; j < 16 ;j++) {if (key_buf[j]== P2){ //读键值,并判断键号P0= led_mod[j]; //显示闭合键键号break;}}}P2=0x0f; //为下次中断做准备
}void main(void) {P0 = 0x00; //开机黑屏IT0=1; //脉冲触发EX0=1; //INT0允许EA=1; //总中断允许P2 = 0x0f; //为首次中断做准备,列线全为0,行线全为1while(1); //模拟其他程序功能
}
按下任意按键后,数码管上显示该键的键号(00-15两位数码管显示)
#include <reg51.h>
char led_mod[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71};
char key_buf[] = {0xee, 0xde, 0xbe, 0x7e,0xed, 0xdd, 0xbd, 0x7d,0xeb, 0xdb, 0xbb, 0x7b,0xe7, 0xd7, 0xb7, 0x77};
char led_mod2[] = {0x00, 0x00};char led_point = 0;
void delay(unsigned int time)
{ unsigned int j = 0;for(;time>0;time--)for(j=0;j<125;j++);
}
void getKey() interrupt 0
{char key_scan[] = {0xfe, 0xfd, 0xfb, 0xf7}; char i = 0, j = 0,k,l;P0 = 0x00;for (i = 0; i < 4 ; i++) {P2 = key_scan[i]; if ((P2 & 0xf0) != 0xf0) { for (j = 0 ; j < 16 ;j++) {if (key_buf[j]==P2) {k=j/10;l=j%10;led_mod2[0]=led_mod[k];led_mod2[1]=led_mod[l];break;}}} }P2=0xf0;led_point = 0;
}
void main(void) {IT0=1; EX0=1; EA=1; P2 = 0xf0; while(1){ P1 = 2 - led_point; P0 = led_mod2[led_point];led_point = 1 - led_point;delay(20);}
}
源码附件
行列式键盘+共阴极数码管显示相关推荐
- 四位共阴极数码管显示“12.34”的主程序
四位共阴极数码管显示"12.34"的主程序 本程序使用共阴极数码管,使用了TM1650驱动芯片,在stm32F103调试成功 #include "gpio.h" ...
- 入门必做的51单片机实验2----》利用外部中断的方法来控制发光二极管和共阴极数码管显示十六进制的0到F
嘿!各位中午好! 我是肖肖的猪会飞 欢迎收看肖小猪频道 刚刚做了个单片机实验->ヽ( ̄ω ̄( ̄ω ̄")ゝ 分享一下 文章目录 前言 一,实验题目 二,程序 三,仿真效果 前言 此实验为 ...
- 八位一体共阴极数码管显示电子时钟+闹铃+温度检测
老师一枚,服务于学生,制作了电子时钟融合温度检测的系统. 首先在焊接式前一定要仿真,更要注意仿真引脚和实际引脚的不同. 下面这个链接是常用元器件实物引脚图和解释. CSDNhttps://mp.csd ...
- [STM32F1]基于STM32F103实现TM1640点亮16位共阴极数码管,显示“0~F”数字
本节我们目标是实现TM1640点亮16位共阴极数码管,显示"0~F"数字: 1. 硬件设计 GPIO初始化配置 SCL(PB6) SDA(PB7):开漏输出,通过IO模拟驱动TM ...
- C51单片机-共阳极数码管循环显示数字0至9,共阴极数码管循环显示5201314(动态)
keil uVision4界面: #include<reg51.h> //包含8051单片机寄存器定义的头文件 //共阳极数码管0到9 unsigned char seg1[]={0xc0 ...
- c语言共阴极数码管数字6,共阴数码管 显示数字 C语言程序
共阴数码管显示数字C语言程序#include void Delay(unsigned char a) { unsigned char i; while( --a != 0) { for(i = 0; ...
- 共阴极和共阳极数码管显示的十六进制代码
共阳极数码管 unsigned char LED7Code[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82,0xf8, 0x80, 0x90, 0x88, ...
- 共阳数码管段码表_简单共阴极数码管电路图大全
共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a.b.c.d.e.f.g及dp(小数点),如下图所示.图中的8个LED分别与上面那个图中的A~DP各段相对应,通过控制各个L ...
- 利用全加器实现7段数码管_简单共阴极数码管电路图大全(CD4511/段译码/驱动器)...
共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a.b.c.d.e.f.g及dp(小数点),如下图所示.图中的8个LED分别与上面那个图中的A~DP各段相对应,通过控制各个L ...
- 【Multisim仿真】74LS47译码器驱动共阳数码管显示(0-8)数字显示
[Multisim仿真]74LS47译码器驱动共阳数码管显示(0-8)数字显示 Multisim仿真演示 74ls47引脚功能 LT: 试灯输入,是为了检查数码管各段是否能正常发光而设置的.当LT=0 ...
最新文章
- 为HttpStatusCodeResult加入customErrors
- Android笔记(八) Android中的布局——相对布局
- 牙齿矫形教训和洗牙知识
- 使用OC语言批量修改文件名称
- 北妈是谁、谁是北妈?他为何如此帅?
- 论文必备神器,1行代码搞定Latex公式编写,这个4.6M的Python小插件
- python如何查询文件路径_Python使用os.listdir和os.walk获取文件路径
- Linux 配置rdate时间服务器方法
- matlab2012安装过程中退出,Matlab 2012安装图解
- Ubuntu18.04 Xfce桌面环境配置中文输入法
- 点击验证码时候自动刷新功能
- 51单片机读取引脚值原理
- 37岁,感觉上班太累,可做这5个生意,年轻人看不上,但却挺赚钱
- 异地容灾系统方案设计与分析
- 《平衡掌控者 游戏数值战斗设计》学习笔记(四)技能与装备设计
- 【技术认证题库】齐治初级运维安全认证——RIS堡垒机习题
- HTML图片不能上下铺满屏幕_多张图片的PPT,如何排版的更有创意?
- 高斯-约当(Gauss-Jordan)消元法
- 1. Java是编译型语言还是解释型语言?
- 互联网人的乐理基础(二)