船舶厂家
免费服务热线

Free service

hotline

010-00000000
船舶厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

C51单片机键盘检测原理以及实现

发布时间:2020-06-30 17:45:21 阅读: 来源:船舶厂家

首先,在做软件之前确定硬件。明确键盘类型:弹性按键:按下时闭合,松手后自动断开。如电脑键盘

自锁式按键:按下时闭合,且自动锁住。一边用于开关

在I/O口检测触电电压时应该考虑按键抖动问题,一般按键抖动为5~10ms左右,具体与其机械特性有关,所以要加检测抖动环节,可以用软件或者去抖动芯片硬件处理,当然通常用延时方法处理。注意正确连接引脚。

下面是一个简单的4按键独立键盘程序,在51hei开发板的数码管上操作。完整的源代码下载 数值为0~59变化,开始显示00按key1数值加1,按key2数值减1,按key3数值归0,按key4数值每秒加1。#include reg52.h>#define uchar unsigned char#define unit unsigned intsbit key1=P3^2;sbit key1=P3^4;sbit key1=P3^6;sbit key1=P3^7;sbit dula=P2^6;sbit wela=P2^7;uchar code table[]={0x3f,0x06.0x5b,0x4f,0x66,0x6d,0x7d,0x070x7f,0x6f,0x77,0x7c0x39,0x5e,0x79,0x71};void delayms(unit);uchar numt0,unm;void display(uchar numdis) //定义一个显示的函数,分个位十位,用来显示{uchar shi,ge; //然后用轮流显示发,利用人眼图像残留分别显示shi=numdis/10; //上面的numdis表示num这个显示的数ge=numdis%10; //numdis由下面主函数num赋值 dula=1;P0=table[shi];dula=0;P0=0xff;wela=1;P0=0xfe;wela=0;delayms(5);dula=1;P0=table[ge];dula=0;P0=0xff;wela=1;P0=0xfe;wela=0;delayms(5);}void delayms(unit xms) //自定义延迟环节{unit i,j;for(i=xms,i>0,i--);for(j=110,j>0,j--);}void init() //初始化函数,保证程序正常运行{TMOD=0x01;TH0=(65536-45872)/256;TL0=(65536-458720%256;EA=1;ET=0;}

北京防静电工作服订做

制作服装

菏泽定做工服