基于51单片机矩阵键盘程序
来源:互联网 发布:淘宝黄金戒指 编辑:程序博客网 时间:2024/06/05 12:07
/*用矩阵键盘输入数字在数码管显示*/
矩阵键盘代码的编写有点像VHDL 编码器的书写,很多那些数字都是根据唯一的扫描位置来定,也就是说这些数字可以任意设置,主要就是巧妙在“0xf0&0xfe” 通过这样确定出一定的位置,然后“编码”为你想要位置所代表的数字。矩阵键盘其实代码都很固定,很多东西其实也可以算是一沉不变的,
作为初学者继续加油吧!
#include<reg52.h>
#define uint unsigned int#define uchar unsigned charsbit dula=P2^6;sbit wela=P2^7;sbit key1=P3^4;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0};uchar num,temp,num1;void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}uchar keyscan();void display(uchar aa);void main(){num=17;dula=1;P0=0;dula=0;wela=1;P0=0x00;wela=0;while(1){display(keyscan());}}void display(uchar aa){dula=1;P0=table[aa-1];dula=0;}uchar keyscan(){P3=0xfe;temp=P3;temp=temp&0xf0; //0xf0&0xfewhile(temp!=0xf0){delay(5);temp=P3;temp=temp&0xf0;//延时消抖while(temp!=0xf0){temp=P3;switch(temp){case 0xee:num=1;break;case 0xde:num=2;break;case 0xbe:num=3;break;case 0x7e:num=4;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}P3=0xfd;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P3;temp=temp&0xf0;while(temp!=0xf0){temp=P3;switch(temp){case 0xed:num=5;break;case 0xdd:num=6;break;case 0xbd:num=7;break;case 0x7d:num=8;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}P3=0xfb;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P3;temp=temp&0xf0;while(temp!=0xf0){temp=P3;switch(temp){case 0xeb:num=9;break;case 0xdb:num=10;break;case 0xbb:num=11;break;case 0x7b:num=12;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}P3=0xf7;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(5);temp=P3;temp=temp&0xf0;while(temp!=0xf0){temp=P3;switch(temp){case 0xe7:num=13;break;case 0xd7:num=14;break;case 0xb7:num=15;break;case 0x77:num=16;break;}while(temp!=0xf0){temp=P3;temp=temp&0xf0;}}}return num;}
阅读全文
0 0
- 基于51单片机矩阵键盘程序
- 51单片机(AT89C52)矩阵键盘检测程序
- 51单片机矩阵键盘检测程序
- 51单片机矩阵键盘C程序
- 51单片机--矩阵键盘
- 基于51单片机的4×4矩阵键盘电子琴
- 51单片机矩阵扫描键盘程序(源代码)
- 51单片机矩阵键盘扫描
- 51单片机矩阵键盘库
- 51单片机—矩阵键盘
- AVR单片机(ATMEGA16)矩阵键盘扫描程序
- 51单片机扫描键盘程序
- PIC单片机(PIC16F877A)基于状态机思想的矩阵键盘检测
- 51单片机矩阵式键盘扫描思想
- 51单片机STC89C52 矩阵键盘数码管显示
- 51单片机———矩阵键盘
- 51单片机第四弹---矩阵键盘
- 51单片机的数码管和矩阵键盘
- UVa 247 Calling Circles 经典floyd传递闭包
- ora-00923:未找到要求的form关键字
- 实现启动动画的一种方法
- webpack生成html文件,用于后端渲染的研究
- Codeforces Round#321 (div.2) A,B,C,D;(细节处理,尺取,dfs(树上的),状态压缩dp)
- 基于51单片机矩阵键盘程序
- kaggle之泰坦尼克号
- DevOps 初学者宝典
- 运用java.net.HttpURLConnection实现java多线程下载文件
- 1662 家庭问题
- 百度地图开发(功能有:标注地点;定位本机等)
- bootstrap轮播图无法居中的处理方式
- 51单片机-1602液晶显示的时钟代码
- textrank提取文档关键词