#include <reg51.h>#include <absacc.h>#define uchar unsigned char#define uint unsigned intvoid delays(void);uchar kbscan(void);void main(void){uchar key;while(1){ key=kbscan(); /*键扫描函数*/delays(); /*键消抖的延时函数*/}}// 键消抖的延时函数void delays(void){uchar i;for(i=300;i>0;i--);}// kbscan(void) 键扫描函数uchar kbscan(void) {uchar sccode,recode;P1=0xf0; /*发全"0"行扫描码,列线输入*/if((P1&0xf0)!=0xf0) /*若有键按下*/{delays(); /*延时去抖动*/if((P1&0xf0)!=0xf0){sccode=0xfe; /*逐行扫描初值*/while((sccode&0x10)!=0){P1=sccode; /*输出行扫描码*/if((P1&0xf0)!=0xf0) /*本行有键按下*/{recode=(P1&0xf0)|0x0f;return((~sccode)+(~recode)); /*返回特征字节码*/}else sccode=(sccode<<1)|0x01; /*行扫描码左移一位*/}}}return(0); /*无键按下,返回值为0*/}
导读:目前正在解读《一个行列键盘的输入例程》的相关信息,《一个行列键盘的输入例程》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《一个行列键盘的输入例程》的详细说明。
简介:在这里给大家提供一个行列键盘的输入例程。
提醒:《一个行列键盘的输入例程》最后刷新时间 2024-03-14 01:02:35,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《一个行列键盘的输入例程》该内容的真实性请自行鉴别。