51单片机第四弹---矩阵键盘
来源:互联网 发布:mysql where 优先级 编辑:程序博客网 时间:2024/05/16 15:56
原理图:
原理:
和独立键盘相似
/******************************************************************************** 实 验 名 : 矩阵键盘实验* 使用的IO : 数码管使用P0 矩阵键盘使用P3* 实验效果 : 显示独立键盘的按键值* 注 意 :*******************************************************************************/#include <reg52.h>#include <intrins.h>#define GPIO_LED P2#define GPIO_DIG P0#define GPIO_KEY P1#define uint unsigned int#define uchar unsigned charsbit K1=P3^1;sbit LSA=P2^2;sbit LSB=P2^3;sbit LSC=P2^4;uchar KEY_VALUE;unsigned char code DIG_CODE[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void Delay10ms();void KeyDown();void main(){LSA=0;LSB=0;LSC=0;while(1){KeyDown();GPIO_DIG=DIG_CODE[KEY_VALUE];}}void Delay10ms() { uchar i=38,j=130; while(i--) while(j--); } void KeyDown(){char n=0;GPIO_KEY=0x0f;if(GPIO_KEY!=0x0f){Delay10ms();if(GPIO_KEY!=0x0f){GPIO_KEY=0x0f;switch(GPIO_KEY){case(0x07):KEY_VALUE=0;break;case(0x0b):KEY_VALUE=1;break;case(0x0d):KEY_VALUE=2;break;case(0x0e):KEY_VALUE=3;break;}GPIO_KEY=0xf0;switch(GPIO_KEY){case(0x70):KEY_VALUE+=0;break;case(0xb0):KEY_VALUE+=4;break;case(0xd0):KEY_VALUE+=8;break;case(0xe0):KEY_VALUE+=12;break;}while((n<50)&&(GPIO_KEY!=0xf0)){Delay10ms();++n;}}}}
1 0
- 51单片机第四弹---矩阵键盘
- 51单片机--矩阵键盘
- 51单片机矩阵键盘扫描
- 51单片机矩阵键盘库
- 51单片机—矩阵键盘
- 51单片机矩阵式键盘扫描思想
- 51单片机(AT89C52)矩阵键盘检测程序
- 51单片机STC89C52 矩阵键盘数码管显示
- 51单片机矩阵键盘检测程序
- 51单片机———矩阵键盘
- 51单片机的数码管和矩阵键盘
- 51单片机—矩阵键盘-代码
- 51单片机矩阵键盘编码方法
- 基于51单片机矩阵键盘程序
- 51单片机矩阵键盘C程序
- C51 单片机矩阵键盘
- 51单片机 矩阵键盘与独立键盘综合应用
- 单片机矩阵键盘新解
- servlet、genericservlet、httpservlet之间的区别
- VELT-0.1.3开发:汇编支持
- android开发之WebView使用(非详解)
- [学习笔记]HTML基础
- C++文件读写详解(ofstream,ifstream,fstream)
- 51单片机第四弹---矩阵键盘
- 笔记VISIO:常见问题解决办法
- Mysql 下创建root用户
- github fork后与源项目保持同步
- [学习笔记]CSS基础
- HashMap原理
- C# 参数带this是什么意思(扩展方法)
- Java基础总结----多线程安全性&同步
- 十三、数列如下:【1】,【2】,3,6,9,18,27… ,用递归求第20项的值是多少?