提供内部上电自动复位电路,当外加电源电压超过4.5V时,自动对模块进行初始化操作,将模块设置为默认的显示工作状态。1602LCD芯片逻辑工作电压4.5~5.5V,LCD驱动电压3~5V,最佳工作电压5.0V,显示容量16×2个字符;工作电流2.0mA;字符尺寸2.95×4.35(W×H)mm。表14-1 LCD1602引脚描述第1引脚:VSS为地电源。LCD1602基本操作时序见表14-2。......
2023-11-04
行列式键盘具有广泛的应用,可以采用计算的方法来求出按键值,以得到按键特征码。最常见的键盘键码布局如图13-2所示,由16个按键组成,单片机中利用P2口实现4×4矩阵键盘识别功能,单片机与4×4矩阵键盘连接的电路结构如图13-3所示。
4×4矩阵键盘的行信号分别接P2.0~P2.3,列信号分别接P2.4~P2.7,无按键闭合时,P2.0~P2.3与P2.4~P2.7开路。当有键闭合时,与闭合键相连的两条I/O口线之间短路。判断矩阵键盘有按键按下述方法如下:先让P2.0~P2.3输出低电平,监测P2.4~P2.7的状态,如果P2.4~P2.7输出为高电平则没有按键闭合,如果检测到P2.4~P2.7输出为低电平则表示有按键按下发生闭合状态,以上只是说明有按键闭合,具体是哪个按键闭合好需要进一步检测。
一旦确定有按键已经稳定闭合后,接着判断为哪一个按键闭合,采用对按键进行扫描的方式,依次给每一条列线送低电平,其余各列都为高电平,并检测每次扫描的行状态。每当扫描输出某一列为低电平时,相继读入行线状态。若全为高电平,表示为低电平的这列没有按键闭合。否则行线不全部为高电平,表示为低电平的这列上有按键闭合。确定闭合按键的位置后,计算出按键值,产生按键码。
图13-2 矩阵键盘布局图
图13-3 单片机与矩阵键盘接口电路
矩阵按键操作时注意:按键闭合一次只能进行一次按键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的键操作。
在矩阵按键处理过程中,一旦检测到有按键闭合与确认按键已经稳定闭合期间,通过调用10~20ms延时子程序避开按键抖动问题。由于按键是机械器件,按下或者松开时有固定的机械抖动,抖动如图13-4所示。
(www.chuimin.cn)
图13-4 按键抖动图
从图13-4中可以看出按键按下和松开的瞬间出现机械抖动,这个抖动时间虽然很短,一般10~15ms,不同按键抖动不同,但是对于单片机来讲,由于单片机是μs级别,极其容易检测到按键的抖动问题。所以实际上只是进行一次按键操作,但是有可能执行了多次按键结果即为抖动,目前大多数产品实际应用中都使用了按键去抖功能。
按键去抖分为硬件去抖和软件去抖,硬件去抖最简单的是按键两端并联电容,容值根据实验而定。软件去抖使用方便不增加硬件成本,容易调试,所以现在处理按键抖动问题大部分选择软件去抖。软件去抖操作步骤如下:
①检测到按键按下后进行10~15ms延时,用于跳过这个抖动区域。
②延时后再检测按键状态,如果没有按下,表明是抖动或者干扰造成,如果仍旧按下,可以认为是真正的按下,并进行对应的操作。
③同样按键释放后也要进行去抖动延时,延时后检测按键是否真正松开。
多数时候按键需要在释放时才起作用,就类似计算机鼠标一样,这个时候需要检测按键是否释放,如果没有释放则一直等待。基于矩阵按键操作原理,采用单片机控制矩阵按键实现按键键码值显示的电路结构由五部分构成,包括51单片机最小系统、数码显示电路、数码驱动电路、矩阵键盘电路和电源供电电路,其电路结构框图如图13-5所示。
图13-5 单片机控制矩阵键盘电路结构图
有关51单片机初级入门实战教程的文章
提供内部上电自动复位电路,当外加电源电压超过4.5V时,自动对模块进行初始化操作,将模块设置为默认的显示工作状态。1602LCD芯片逻辑工作电压4.5~5.5V,LCD驱动电压3~5V,最佳工作电压5.0V,显示容量16×2个字符;工作电流2.0mA;字符尺寸2.95×4.35(W×H)mm。表14-1 LCD1602引脚描述第1引脚:VSS为地电源。LCD1602基本操作时序见表14-2。......
2023-11-04
通用红外遥控系统由发射和接收两大部分组成。图21-2 红外线遥控系统框图遥控发射器专用芯片很多,本系统采用的红外遥控器是NEC的UPD6121编码。图21-3 遥控码“0”和“1”编码上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。UPD6121最多可有128种不同组合的编码。红外遥控最常用的载波频率为38kHz,这是由于发射端使用的455kHz晶振决定的。......
2023-11-04
图10-3 中断方式T0控制LED程序流程图用定时器T0方式1编写程序,即采用中断方式设计的程序流程图如图10-3所示。在图10-3程序流程图的基础上书写中断实现T0控制LED闪烁程序代码如下:结合2.3节关于单片机开发环境Keil C51的学习,建立工程time文件,并将上述代码在Keil环境下进行编译,程序成功编译结果如图10-4所示。同时在创建工程路径time1文件夹下生成一个扩展名为.hex文件,供下载软件将生成的.hex文件下载到单片机中。......
2023-11-04
表18-1 PT2262引脚说明图18-4 PT2262引脚图2.发射模块电路设计编码电路原理图如图18-5所示。图18-5 编码电路图该部分电路主要由315MHz无线数据发射模块和编码集成在PT2262芯片中。发射模块采用ASK方式调制,以降低功耗。无按键操作时,晶体管Q截止,编码集成IC1处于断电状态,无线数据发射模块没有发射信号。如果按钮一直按住,则发射模块连续发射无线信号。......
2023-11-04
本项目主要针对INT0对单片机外部中断处理方式做详细说明,考虑INT0和INT1外部中断的使用方法原理相同,若读者采用INT1中断处理方式,可参考INT0中断处理方式。关于IE中断允许寄存器的使用详见第3章3.3节表3-7。经过上述4步运行,完成中断初始化操作。单片机不断对INT0进行监测,一旦监测到中断源发生,执行中断初始化操作,打开中断执行中断服务任务。......
2023-11-04
主控制器采用的是AT89S51,充电控制电路采用的是充电芯片MAX1898。图17-1 智能充电器的结构框图对于主机控制供电电压模块的思路为当电池充满电后,充电芯片MAX1898能够自动检测到变化的信号,并使其引脚CHG由低变高,并将信号传给单片机,以实现及时关断充电电源。顶端截止充电时,充电器以极小的充电电流为电池补充能量。当充电出错时,MAX1898会控制LED以1.5Hz左右的频率闪烁,以告知用户。......
2023-11-04
③if-else-if形式:当有多个分支选择时,采用if-else-if语句,形式为if语句1;else if语句2;else if语句3;…使用switch语句时注意以下几点:①case后的各常量表达式的值是不一样的,否则会出现错误。②在case后,允许出现多条语句,可以不用{}括起来。③各case和default语句位置的先后顺序可以改变,而不会影响程序执行结果。......
2023-11-04
对于基本数据类型量,根据变量值在程序执行过程中是否发生变化,又可分为常量和变量两种。常量——与变量相对应,在程序执行的过程中,其值不能发生改变。习惯上用大写字母来表示符号常量的标识符,用小写字母表示变量标的识符。程序中使用变量须先用标识符作为变量名,并指出所用的数据类型和存储模式。各变量名之间用逗号间隔,类型说明符与变量名之间至少用一个空格间隔。......
2023-11-04
相关推荐