武汉理工大学单片机应用实习
TMOD
00H 0XXX0000B 4.2 矩阵键盘调整模块设计
本设计中需要用到16个按键,矩阵键盘,由于单片机的内部上拉,按键没按下时,处于稳定的高电平,当有按键按下时,单片机可扫描检查到低电平。而不会引起按键的误操作,提高按键电路的抗干扰能力。电路原理如图所示。
图4-4 矩阵键盘调整模块
其工作原理是从0列开始顺序行扫描即该行输出为0。每扫描一行读入列线数据从0开始列检查找该行输出为0的列若无则顺序扫描下一行并检查其各列若找到某列线为0则该列与检查行交叉的按键为被按下的键。
需要注意的时,当按键按下和释放的瞬间都有抖动现象,一般来说,抖动的时间长短与键盘的机械特性有关,大约为5-10ms。所以在实际编程时一定要注意键盘的去抖动。键盘去抖动有专用的延时电路,也有专门的延时芯片,也可以用软件去抖,考虑到电路的难易程度,从简化硬件的角度,本次设计采用软件去抖动,用一个短延时程序,进行键盘去抖操作。
4.3 数据管显示模块设计
本设计中采用六位一体共阳的数码管,数码管的位选信号即每个数码管的公共端,用单片机一组I/O口作为数据口向数码管发送数据信息,而用另一组I/O口对数码管进行位
17
武汉理工大学单片机应用实习
选,从而实现动态显示。由于是共阴的数码管,因此当P2.0-P2.7输出为高电平时,数码管位选位被关闭,当P2.0-P2.7输出为低电平时,数码管位选位被打开。前四个数码管分别接P2.0、P2.1用于显示序号;后面分别接P2.2、P2.3、P2.4和P2.5,用于显示数值。数码管显示电路图,如图4-5所示。
图4-5 数据显示模块数码管部分
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划\的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果能够节省大量的I/O端口,而且功耗更低。
4.4 串口通信模块设计
本次设计中采用MAX232电平转换芯片,其构成的串口通信电路原理图如下图所示。
18
武汉理工大学单片机应用实习
图4-6 串口通信电路
本串口通信电路的第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从11引脚(T1IN)、10引脚(T2IN)输入转换成RS-232数据从14脚(T1OUT)、7脚(T2OUT)送到电脑DB9插头;DB9插头的RS-232数据从13引脚(R1IN)、8引脚(R2IN)输入转换成TTL/CMOS数据后从12引脚 (R1OUT)、9引脚(R2OUT)输出。 第三部分是供电。15脚GND、16脚VCC(+5v)。
4.5 硬件系统整体设计电路图
系统的总体电路图如图4-7
19
武汉理工大学单片机应用实习
图4-7 硬件系统整体设计电路图
5 软件程序设计
5.1系统主程序模块
在主程序模块中,需要完成对各参量和接口的初始化,通过调用键盘扫描程序,监控矩阵键盘的动作,通过调用功能选择程序,完成相应的功能。程序流程如图所示。
20
武汉理工大学单片机应用实习
图5-1系统主程序流程图
5.2 功能选择模块
通过功能选择键,使得单片机处于不同的工作状态并通过数码管显示模块显示相应的内容;可选择的功能包括:数据输入(IN)、数据显示(DIP)、串口通信(TR)。
图5-2 功能选择程序模块流程图
21