4.5 键盘电路
键盘是由若干个按键组成的开关矩阵,平时按键开关总是处于断开的状态,当按下时闭合。用户通过键盘可向CPU输入数据信息、地址信息和各种命令。键盘上闭合键的识别是由专用硬件实现的称为编码键盘,而由软件实现的称为非编码程序。键盘根据连接方式的不同分为独立连接式和矩阵式。独立式按键是指用一根I/O接口线构成的单个按键电路。每个独立按键单独占用一根I/O接口线,彼此之间相互独立。一般当按键数目较少的时候选用独立式键盘。矩阵式键盘是指由若干按键组成的矩阵样式的输入设备,包括键盘开关矩阵、输出锁存、输入缓冲器。矩阵键盘识别按键是否按下最常用的方法是行扫描法。即由行线逐行发出低电平信号,判断与其对应的列线的电平信号,如果电平信号为高电平则说明没有按键按下,反之。如果该电平信号为低电平则说明有按键按下(即低电平有效)。当按键较多的时候通常选用矩阵式键盘,节省I/O接口。常见的键盘扫描方式有程控扫描方式、定时扫描方式和中断扫描方式。
由于键盘按键为机械开关,由于机械触点的弹性作用。 按键的时候,不管是按下键位还是放开按键都会产生一定程度的键抖动,据此将按键分为前沿抖动(按下)和后沿抖动(放开)。如果对按键抖动不进行处理的话,必然会导致按键一次而输入多次信号,为了确保功能顺利实现和按键准确,必须消除按键抖动,通常用硬件和软件两种方式来消除按键抖动。硬件法指在输出线路上添加硬件线路来消除,一般采用R-S触发器和单稳态电路来实现。而软件法则指在判断是否有按键按下程序之后,添加一个延时程序(5~10s)当消除按键抖动后再次进行 检测按键状态,如果前后的检测结果都是有按键按下,说明确实有按键按下。同理,当按键释放时也进行相应的处理。
本设计键盘电路如图4.5所示,由四位按键组成,其中K1控制电动机的启动和停止,K2控制电动机的正转和反转,K3控制电动机的加速,K4控制电动机的减速。
K1
K2
K3
K4
图4.5 键盘电路
5 软件设计
5.1 单极性可逆电动机驱动系统的电动机启停、正反转控制
1.系统框图
如图5.1所示,控制系统由单片机、键盘模块、直流电动机驱动模块、电动机组成。单片机P2.4采集电动机启停控制按键信号,P2.5采集电动机正反转控制按键信号,P2.6采集电动机加速控制按键信号,P2.7采集电动机减速控制按键信号,P2.0输出PWM脉冲,P0.0和P0.1输出电动机启停控制和旋转方向控制电平。
电动机启停 控制按键 电动机正反 转控制按键 电动机加速 控制按键 电动机减速 控制按键 P2.4 P0.0 P2.5 单片机 P0.1 AT89C51 P2.0 P2.6 P2.7 直电机极可驱器 流动单性逆动直电机枢组 流动电绕 图5.1 控制系统总图
2.软件程序设计
软件程序包括键盘信号采集、PWM脉冲输出、电动机旋转方向电平输出几个部分。
键盘信号采集 电动机启停控制按键信号由单片机P2.4口采集,当采集到第一次按键信号时,电动机启动;当采集到第二次按键信号时,电动机停止。电动机正反转控制按键信号由单片机P2.5口采集,当采集到第一次按键信号时,电动机正转;当采集到第二次按键信号时,电动机反转。电动机加速控制按键信号由单片机P2.6口采集,每采集到一次加速按键信号,PWM脉冲占空比加1%。电动机减速控制按键信号由单片机P2.7口采集,每采集到一次减速按键信号,PWM脉冲占空比减1%。
电动机启停方向电平输出 电动机停止时,单片机P0.0和P0.1口输出低电平;电动机运转时,单片机P0.0和P0.1口输出高电平。
电动机旋转方向电平输出 电动机正转时,单片机P0.0口输出低电平,P0.1口输出高电平;电动机反转时,单片机P0.0口输出高电平,P0.1口输出低电平。
PWM脉冲输出 PWM脉冲调速采用定频调宽法,单片机P2.0口输出固定频率为1kHz的PWM脉冲,脉冲频率通过定时中断实现。
5.2系统总体流程设计
整个系统的软件流程图如下图5.2所示。 按下K1键,电动机启动; 按下K2键,电动机反转; 按下K3键,电动机加速; 按下K4键,电动机减速; 再次按下K1键,电动机停止。
开始 系统初始化 K1键按下 N K2键按下 N K3键按下 N 加速 Y 启动/停止 Y 正转/反转 Y K4键按下 减速 Y N 图5.2 系统结构流程图
6 仿真调试
6.1 Keil C51软件简介
Keil C51集成开发环境是目前开发80C51内核的微处理器软件开发平台,内嵌多种符合当前工业标准的开发工具,可以完成从工程建立、管理、程序编译、链接、目标代码生成、软硬件仿真等完整的开发流程。尤其是C编译工具在产生代码的准确性和效率方面达到了较高水平,而且可以附加灵活的控制选项,在开
发大型项目时非常理想。
图6.1 keil 界面图
6.2 Proteus仿真软件简介
Proteus是来自英国 Labcenter Electronics 公司的利用现代EDA工具方便快捷开发单片机系统的仿真软件。英国 Labcenter Electronics 公司推出的Proteus,可以对基于微控制器的设计连同所有的周围电子器件一起仿真,用户甚至可以实时采用诸如 LED/LCD、键盘、RS-232终端等动态外设模型来对设计进行交互仿真。Proteus支持的微处理芯片包括8051系列、AVR系列、PIC系列、HC11系列、ARM7/LPC2000系列以及Z80等,集编辑、编译、仿真调试与一体。它的界面(图6.2)简洁友好,可利用该软件提供的数千种数字/模拟仿真元器件以及丰富的仿真设备,使得在程序调试、系统仿真时,不仅能观察到程序执行过程中单片机寄存器和存储器等内容变化,还可从工程的角度直观地看到外围电路工作情况,非常接近工程应用。另外Proteus ISIS 还能与第三方集成开发环境(如Keil C51的μVision3)进行联合仿真调试。