工作时单片机按照上位机的指令工作。其程序流程图如图 4-3 所示。
4.2.2 LED 显示程序设计
本系统设计的最重要部分是显示单元,因为如果显示效果的不好那么电子胸牌的使用效果也会不好。其中包括利用各种动态显示(如上下移显示、左右移显示和固定显示等),完成不同的效果显示。 (1)固定显示方式
此方式只要把内容读取出来即可。因此要将信息完整地固定显示出来,只需单片机将收到的点阵数据存储在FLASH ROM 中,存储方式是按行存储,然后将行数据送到列并对行上电,重复以上操作直至12行完成,这样要显示的信息就可以完整地固定的显示出来。但由于本设计是小型LED,所以对显示内容要进行大小的控制。
(2)左右移的显示方式
左移动是控制列的,因此控制左移显示就会变得麻烦一点。左右移动显示时,为了使显示稳定、画面不会有跳动的感觉,需逐列定速进行移动。因为左右移动需行扫描不断地进行,所以将需要显示的列数据依次送入,这时候对应的列会亮起来,因此列数据是到显示屏的方式是逐位移动。 (3)上下移显示方式
和固定显示效果相比,上移显示效果有很多相似地方,不同的只是在进行行扫描时,下一行数据连续向上一行传送,在对行点亮时从底下一行开始不断重复直至所有行结束。而在初始数据时,要多加一行零数据,当然它不会显示,工作时下一行的数据传送给上一行直至12 行被显示完;下移和上移显示不同的就是行点亮开始从最上面一行至最下面一行结束,数据的选择是按照这样的方式:将第i-1 行的数据赋值给第 i 行,直至 12 行被扫描完。
16
开始初始化N是否有按键按下Y按1次处理显示数据按2次送显示数据按3次显示第二条显示第一条循环显示按4次默认显示显示第三条按5次显示第四条Y是否按6次N返回
图4-3 主程序流程图
4.3 PC 机与单片机串行通信程序设计
计算机有一种不同于并行口的的一种标准接口,即串行口,它的不同之处它的数据及控制信息是逐位地串行地传送下去。以下是串行口的通信接口标准简介:
目前广泛应用于 PC 机与通信工业中的一种接口是RS-232。RS-232采取不平衡的单端通信传输方式,接收端和发送端是相对于地的数据信号。RS-232是不
17
稳定的信号,工作时,发送设备送出5V~15V的正电平,没有数据传送时,线上TTL。
4.3.1 单片机串行通信特点
P89LPC922单片机的UART具有四种操作模式,见表4-3。
表4-3 P89LPC922操作模式 模式0 模式1 移位时钟通过TXD 输出。通过 RXD 进出串行数据。每次接收或发送都为八位,固定波特率是CPU时钟频率1/16。 RXD 脚接收,TXD 脚发送,一次为10位数据:1起始位,八个数据位和一个暂停位。每次接收数据,停止位存存储在SCON的 RB8中。此波特率变化决定于发生器或者定时器 1的溢出速率。 模式2 RXD 脚接收,TXD 脚发送,一次为 11 位数据:1个起始位,八个数据位,1个可编程的第九位数据和1个停止位。当发送数据的时候,第九个数据位置1或 0。接收数据时,第 九 位数据存储在 SCON 的 RB8 位,但停止位不会去被保存。波特率可以编程CCLK 频率的 1/32 或者1/16 ,它是由 PCON内的SMOD1位决定。 模式3 RXD 脚接收,TXD 脚发送,一次11位数据:1个起始位,八个数据位,1个可以编程的第九位数据和1个停止位。模式 3 的波特率变化,可以决定于定时器1溢出率或波特率发生器。
4.3.2 P89LPC922串行通信
接收上位机信号后,单片机产生中断,进入中断后采用查询的方式接收上位机传送的点阵数据。进入接收中断时,以防显示屏出现错误,先关闭显示屏,然后将接收到的数据放在接收缓冲区,并将它存储于Flash ROM中的扇区里。
IAP-Lite能够进行程序擦除编程,即在不影响该页其他字节的情况下,经过一次操作就可以擦除和编程一页内的一个或多个字节。在微控制器的固件控制
18
下,实现IAP-Lite功能,擦除和编程未加密扇区,需使用1个内部16/64字节页和4个SFR寄存器。这些SFR见表4-4。
表4-4 SFR及其属性
FMCON (Flash控制寄存写时作命令寄存器;读时作状态寄存器;写入命令时清器) 零状态。 FMDATA (Flash数据寄接收到的数据装进页寄存器。 存器) FMADRH,FMADRL (Flash存储地址高字节,Flash存储地址低字节)
程序中擦除字节有如下的具体操作步骤: 1)向 FMCON 中写入 LOAD 命令(00H)。 2)向 FMADRH、FMADRL写入页寄存器内的地址。 3)向FMDATA写入要编程的数据。
4)除了连续字节,向FMADRL写入将进行编程的下个字节的地址。所有被编程过的字节必须在同一页。
5)向FMDATA写入将编程到的下一字节数据 。
6) 写操作重复进行,一直到所需要的数据都被存储在页寄存器中。 7)将擦除编程命令(68H)写入FMCON ,将擦除-编程周期启动。
8)检查状态通过读 FMCON 来进行。假如操作被终止,经过 LOAD 命令重新来启动操作。
4.3.3 VB串口通信
该系统利用VB编写程序。串口初始化程序如下:
MSComml.CommPort =1
If MSComml.PortOpen = False Then
19
指示程序存储器的页或者页寄存器的字节地址。

