C51中4X4键盘扫描(非反转法)
来源:互联网 发布:什么软件可以写软文 编辑:程序博客网 时间:2024/05/02 01:08
#include <reg52.h>#define uchar unsigned char#define uint unsigned intuchar KEYIN;void DelayMs(uint ms); //延时函数声明;uchar KeyPress(void); //按键按下检测函数声明;uchar KeyScan(void); //键值扫描函数声明;void main(void){ while (1) { if (KeyPress()) { P0 = KeyScan(); while (KeyPress()); } }}void DelayMs(uint ms) //11.0592MHZ 约为1.007MS; { uint x,y; for(x=ms;x>0;x--) { for(y=113;y>0;y--); }}uchar KeyPress(void){ uchar keypress; P1 = 0xF0; keypress = P1; if (keypress == 0xF0) { return 0; } else { KEYIN = keypress; return 1; }}uchar KeyScan(void){ uchar keyout,index,keycode,keyvalue; DelayMs(20); P1 = 0xF7; index = 0; if (KeyPress()) { while (1) { P1 = (0xF7 >> index) | 0xF0; //I/O端口不能做为中间变量,如temp = (P1 >> index) 单片机随时读取IO的变化,会导致程序有瞬间错误产生; index++; index = index & 0x03; keyout = P1 & 0x0F; if ((P1 & 0xF0) != 0xF0) { keycode = KEYIN + keyout; break; } } switch (keycode) { case 0x77 : keyvalue = 0xC0; break; case 0x7B : keyvalue = 0xF9; break; case 0x7D : keyvalue = 0xA4; break; case 0x7E : keyvalue = 0xB0; break; case 0xB7 : keyvalue = 0x99; break; case 0xBB : keyvalue = 0x92; break; case 0xBD : keyvalue = 0x82; break; case 0xBE : keyvalue = 0xF8; break; case 0xD7 : keyvalue = 0x80; break; case 0xDB : keyvalue = 0x90; break; case 0xDD : keyvalue = 0x88; break; case 0xDE : keyvalue = 0x83; break; case 0xE7 : keyvalue = 0xC6; break; case 0xEB : keyvalue = 0xA1; break; case 0xED : keyvalue = 0x86; break; case 0xEE : keyvalue = 0x8E; break; default : keyvalue = 0xFF; } } else { keyvalue = 0xFF; } return keyvalue;}
1 0
- C51中4X4键盘扫描(非反转法)
- P1外接4x4键盘的反转法扫描
- 51单片机的4x4矩阵键盘扫描例程(C51)
- 键盘扫描4X4
- 4X4键盘扫描演示程序
- 4X4矩阵键盘扫描程序
- 4X4矩阵键盘扫描程序
- c51上跑smallrtos 之4x4 矩阵键盘任务
- “线反转法”键盘扫描
- c51版键盘扫描
- 4x4 矩阵键盘
- C51行列键盘扫描程序
- C51矩阵键盘扫描程序
- linux下4x4矩阵 键盘驱动,用了定时器控制扫描程序来抗抖。
- 基于stm32的4X4矩阵键盘定时器扫描消抖法,彻底告别delay函数!
- 再发一种基于stm32的4X4矩阵键盘定时器扫描消抖法,彻底告别delay函数! .
- 4X4矩阵键盘程序
- 4X4矩阵键盘1
- 持续集成工具:Jenkins
- Python数据结构(三)集合set
- 文章标题
- 教你如何在Github托管代码
- 防爬虫
- C51中4X4键盘扫描(非反转法)
- 两个有序单链表的合并&两个有序数组的合并
- Inkscape Tutorial Effects: Placing an Image Inside a Shape – Part 2
- 学习DOM基础3
- 全自动共享软件自动破解器检测器Ver5.0(共享软件的克星,流氓软件的杀手)
- Git的使用
- 瓦力视觉控制程序
- android中的广播
- FPGA工程清理的windows文件