4.3.3 人机交互模块的详细设计
在实现中人机交互模块包含两部分:键盘输入和LCD显示。
4.3.3.1 基本界面显示
为了完整地实现系统的控制功能,需要在界面上显示全部的信息。考虑到需显示的信息量较多,采用了分屏显示,为此供设计了六个显示界面,如下图所示。
以上界面的切换、菜单的选择、参数的选择及修改等是通过不同的按键来实现的,按键的硬件设计电路图见图4-2,该键盘使用独立式按键键盘的硬件结构,软件上使用矩阵式键盘的硬件构成原理,既具有独立式按键键盘硬件结构简单的特点,又具有矩阵式键盘软件实现的优点。其实现原理见任务的实现部分。
4.3.3.2 任务的实现
键盘是最重要的一种输入设备。一般在设计应用系统时,需要按键较少时采用独立式按键键盘,而在需要按键较多时,采用行列式键盘。但行列式键盘不仅硬件接线复杂,键号的判断和识别程序也较为繁琐。在此介绍使用软件将多个按键功能压缩至3个按键上,该键盘在硬件上使用独立式按键键盘的硬件结构,而在软件上实现了使用矩阵式键盘的功能。该键盘不仅在硬件上接口简单,软件实现也非常容易。
其实现原理是:对于矩阵式键盘,如果它有3行4列,则可以构成一个34 键盘,共有12个功能键。在设计的键盘中,行线使用一个按键实现,行线数由该键的按键次数确定,列线则由其它几个按键提供。假如一个键盘使用3个按键,3个按键中1个用于提供行线,设置其它2个键的功能,当该键按键次数为1时,其它2个键为P11、P12功能,而当该键按键次数为2时,其它2个键为P21、P22功能,当该键按键次数为3 时,其它2个键又为P31、P32功能,根据此原理,使用3个按键可以实现N行2列共N2个键的功能,这里的N为用做行线的键即功能设置键的按键次数。将该键的按键次数存于一内存单元(或寄存器)中,每按一次,该单元加1,读出该单元内容,就可知道其它2个键处于何种功能。
共定义了8个功能键:单选择键,确认键,数值增加键,数值减少键,左移、右移、上移、下移键。程序流程图如图所示
LCD显示任务只是接收其它任务发来的信号量,经分析判断后刷新相应的显示区。其实现简单在此不再叙述。
4.3.4 串行通信模块的详细设计
串行通信模块是系统设计中的一个重要部分。它要实现与PC机通信,接收PC机发来的命令帧,在确认正确后进行分析执行,并向PC机发送相关信息和数据。通信协议的详细规定见下一章。
4.3.4.1 串口设备驱动程序设计
系统串行口工作方式和波特率的计算
1).串行口的工作方式
串行口的工作方式由串行口控制寄存器SCON来确定。特殊功能寄存器SCON字节地址为98H,可以位寻址。通过对SCON.7和SCON.6进行设置可以确定串行口的工作方式,它有四种工作方式,如表4 - 1所示。
表4 - 1 串行口工作方式
SM0(SCON.7) SM1(SCON.6) 方式 功能说明
0 0 0 移位寄存器方式(用于I/O口扩展)
0 1 1 8位UART,波特率可变(T1溢出率/N)
1 0 2 9位UART,波特率为fosc/64或fosc/32
1 1 3 9位UART,波特率可变(T1溢出率/N)
SCON结构如图4-9所示。
图4-9串行口控制字寄存器SCON
2).波特率的计算
串行口工作在方式0和方式2时,其波特率为固定值。工作在方式1和方式3时波特率可变,与溢出率有关,设计中常用定时/计数器1作为波特率发生器。计数器的工作模式共有4种,模式0~模式3,但是当串行口选择工作模式1时,计数器必须工作在模式2,自动载入计数模式,在模式2的计时下,使用的计数器寄存器为推理,而TH1则是在做自动载入计时值的设定。波特率的计算公式为:
波特率= (4-1)
设计时我们是先定出波特率再求TH1的值,将上式加以整理可得:
TH1=256- (4-2)
在设计中,串行口(工作在)工作方式1且允许接收,通过语句SCON=0x50来实现。计数器工作在模式2能够自动载入计数值,通过语句TMOD=TMOD|0x20来实现。为便于使用 ,我设计了初始化串行口函数void Uart_Init (INT16U mclk, INT16U baud),利用此函数可根据系统工作频率和设定波特率完成串行口的初始化。
串行口输入输出驱动设计
采用异步通信时,如波特率为1200,则每传送一个字符约需10ms,所以串行口的接收和发送应采用中断方式来实现,否则会浪费大量的CPU时间。为了可靠的接收和发送数据,专门设定了接收和发送缓冲区,在具体实现时,缓冲区采用环形缓冲区,它的大小按照任务的执行时间、通信速率和报文长短来定,一般为16至255字节,在系统中其值设为30。
1).串行口输入程序和串行口输入中断流程图如图4-10所示
图4-10串行口输入程序和串行口输入中断流程图
2). 串行口输出程序和串行口输出
首页 上一页 11 12 13 14 15 16 17 下一页 尾页 14/20/20
嵌入式系统在多点温度控制中的应用(十四)由毕业论文网(www.huoyuandh.com)会员上传。