单片机4*4按键数码管显示0-9
来源:互联网 发布:淘宝店模板免费下载 编辑:程序博客网 时间:2024/06/06 03:29
单片机4*4按键数码管显示0-9
#include<reg51.h>#define KEY P1 //键盘#define SEG P0 //数码管sbit COM=P2^0; // 数码管comsbit OC = P2^1;//573锁存器 char code TAB[]={//0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xa7,0xa1,0x84,0x84,0xbf,0x7f};//共阳极 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7D,0x07,0x7f,0x6F}; //共阴极unsigned char scan[4]={0xef,0xdf,0xbf,0x7f}; //扫描码 低电平动作扫描void delay1ms(int x);void main(void){ unsigned char col,row; //定义列行 unsigned char rowkey,kcode; //定义按键,按键码 COM=0; //点亮数码管 OC=0; // 低电平使能 while(1) { for(col=0;col<4;col++) //4列按键 { KEY =scan[col]; rowkey = ~KEY&0X0F; //例如 读入低4位 反相清除高4位,求出行键值 while(rowkey!=0) //如果按下键 { if(rowkey==0x01) row = 0; //如果第0行被按下 if(rowkey ==0x02) row = 1; //如果第1行被按下 if(rowkey == 0x04) row = 2; //如果第2行被按下 if(rowkey == 0x08) row = 3; //如果第3行被按下 kcode = 4*col+row; //算出按键号码 SEG = TAB[kcode]; //显示 while(rowkey!=0) //如果未放开 rowkey = ~ KEY&0x0f; //再次读入 } delay1ms(1); //消除抖动1ms } }} void delay1ms(int x) //延迟消抖{ int i,j; for(i=0;i<x;i++) for(j=0;j<120;j++); // 120 * 8 = 960us = 1ms }
0 0
- 单片机4*4按键数码管显示0-9
- 4*4矩阵按键控制数码管显示0-F
- (4)51单片机入门案列-8个数码管中循环显示数字0-9
- 单片机 数码管0~F显示
- 单片机编程:让led数码管显示数字0到9
- 51单片机 学习之旅[4] 数码管 动态显示
- 按键控制数码管显示
- 按键控制数码管显示
- 按键显示数码管
- 按键数码管显示实验
- 单片机数码管动态显示
- 单片机数码管时钟显示
- 单片机数码管显示
- 单片机数码管显示
- 独立按键数码管显示键值
- 按键控制单个数码管显示
- 单片机控制的数码管显示
- 51单片机之数码管显示
- IOS Dev Intro - Blocks Programming Series 01
- 使用Apache2配置多个站点
- Linux 命令总结
- 单片机中断的应用
- netbeans设置语言
- 单片机4*4按键数码管显示0-9
- JAVA构造函数(方法)与方法是啥意思
- 小白笔记------------------二分搜索算法2.0
- java运算优先级
- netbeans打包成jar
- 留念 C语言第一课简单的计算器制作
- 旋转数组的最小数字
- 单片机温度控制系统DS18B20
- CentOS6.5搭建LNMP