在行扫描工作方式下,每一片LED点阵片都有一组列驱动电路,列驱动电路中一定有一片锁存器或移位寄存器,用来锁存待显示内容的字模数据。在行扫描工作方式下,同一排LED点阵片的同名行控制引脚是并接在一条线上的,共8条线,最后连接在一个行驱动电路上;行驱动电路中也一定有一片锁存器或移位寄存器,用来锁存行扫描信号。
LED显示屏的列驱动电路和行驱动电路一般都采用单片机进行控制,常用的单片机是MCS51系列。LED显示屏显示的内容一般按字模的形式存放在单片机的外部数据存储器中,字模是8位二进制数。
单片机对LED显示屏的控制过程是先读后写。按LED点阵片在屏幕上的排列顺序,单片机先对第1排的第1片LED点阵片的列驱动锁存器,写入从外部数据存储器读得的字模数据,接着对第2片、第3片……直到这一排的最后一片都写完字模数据后,单片机再对这一排的行驱动锁存器写行扫描信号,于是第1排第1行与字模数据相关的发光二极管点亮。接着第2排第1行、第3排第1行……直到最后一排第1行的点亮。各排第1行都点亮后,延时一段时间,然后黑屏,这样就算完成了单片机对LED显示屏的一行扫描控制。
单片机对LED显示屏第2行的扫描控制、第3行的扫描控制……直到第8行的扫描控制,其过程与第1行的扫描控制过程相同。对全部8行的控制过程都完成后,LED显示屏也就完成了1帧图像的完整显示。
虽然按这种工作方式,LED显示屏是一行一行点亮的,每次都只有一行亮,但只要保证每行每秒钟能点亮50次以上,即刷新频率高于50Hz,那么由于人的视觉惰性,所看到的LED显示屏显示的图像还是全屏稳定的图像。
显示控制电路是按行扫描方式工作的,列控制电路分为两大类。列控制电路中,一类是用74LS377之类的芯片作为列驱动电路的锁存器,CPU通过并行总线给列驱动电路的锁存器写字模数据;另一类是用移位寄存器74LS595之类的芯片作为列驱动电路的锁存器,CPU通过串行总线给列驱动电路的锁存器写字模数据。
无论是并行总线的控制方式还是串行总线的控制方式,其工作过程都是先给数据指针DPTR赋值,接着累加器A按数据指针DPTR的指向,从外部数据存储器RAM中读得字模数据。然后,并行总线时,再给数据指针DPTR赋值,接着CPU将累加器A中的字模数据,按数据指针DPTR的指向,写给LED点阵片列驱动电路的锁存器;串行总
12
线时,CPU将累加器A中的字模数据,通过串行口写给LED点阵片列驱动电路的锁存器。
一般显示控制中,使用较多的单片机是MCS51系列。假设单片机系统的晶振频率是12MHz,机器周期是1μs,上述两种控制方式完成1片LED点阵片的显示控制都得十几μs。
本文提出的高速控制方案,完成1片LED点阵片的显示控制大约只要4μs。按此推算,1片MCS51系列的单片机,差不多可以对600多片LED点阵片进行显示控制。与传统的控制方法相比,显示控制的效率成倍提高。
8051具有很强的扩展功能,允许扩展各种外围电路以补充片内资源不足,适应特定应用的需要,扩展内容包括数据存储器、程序存储器、I/O接口等扩展结构如图2.4所示:
8051 图2.4 8031系统扩展结构图 2.4.3 I/O接口的扩展 由于我们采集的数据量较多,因此CPU的I/O口线不够用,所以我们使用8255A来扩展I/O口,以满足系统的要求。 8255A是Intel公司生产的通用可编程并行I/O接口芯片。8031和8255A相连可为外设提供三个8位I/O端口,允许采用同步、异步和中断方式传送I/O数据。 (1) 8255A内部结构和引脚功能 ①内部结构
8255A内部由四部分电路组成。它们是A口、B口和C口,A组控制器和B控制器,数据缓冲器及读写控制逻辑。
1.A口、B口和C口。A口、B口和C口均为8位I/O数据口,但结构上略有差别。A口由一个8位的数据输出缓冲/锁存器和一个8位的数据输入缓冲/锁存器组成。B口由一个8位的数据输出缓冲/锁存器和一个8位的数据输入缓冲器组成。三个端口都可以和外设相连,分别传送外设的输入/输出数据或控制信息。
2. A、B组控制电路。这是两组根据CPU的命令字控制8255工作方式的电路。A组控制A口及C口的高4位,B组控制B口及C口的低4位。
3.数据总线缓冲器。它是一个8位的双向三态驱动器,用于与单片机的数据总线相连,传送数据或控制信息。
13
数据存储器 程序存储器 I/O接口
4.读/写控制逻辑。这部分电路接收MCS-51送来的读/写命令和选口地址,用于控制对8255A的读/写。
图2.5 8255A芯片的内部结构图
②引脚功能
8255A有40条引脚,采用双列直插式封装。如图2.6所示。
图2.6 8255A引脚图
1.数据总线(8条):
D0~D7:三态双向数据总线,8255A与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
2.控制总线(6条):
RESET: 复位信号,输入高电平有效。一般和单片机的复位相连,复位后,8255A所有内部寄存器清0,所有口都为输入方式。
CS:片选信号线,当这个输入引脚为低电平时有效,表示芯片被选中,允许8255A
与CPU进行通讯。
RD:读信号线,当这个输入引脚为低电平时,允许8255A通过数据总线向CPU发
送数据或状态字。
WR:写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写入
8255A。
A0、A1:地址输入线。当=0,芯片被选中时,这两位的4种组合00、01、10、11分别用于选择A、B、C口和控制寄存器。其组合如表2.2。
0 0 0 0 0 0 0 1 A1A2 00 00 01 01 10 10 11 ×× 表2.2 8255A控制信号功能表 端口地址 0 1 00 H 1 0 00 H 0 1 01H 1 0 01H 0 1 02H 1 0 02H 1 0 03H × × × 端口 A口 A口 B口 B口 C口 C口 控制口 × 功能 读A口 写A口 读B口 写B口 写C口 读C口 写控制字 总线高阻 3.并行I/O总线(24条):这些总线用于和外设相连,分别与A、B、C口相对应,用于8255A和外设之间传送数据,共分三组:
14
PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
4.电源线(2条):VCC为+5V电源线,允许变化±10%;GND为地线。 (2)8255A方式控制字
8255A有两个控制字:方式控制字和C口单一置复位控制字。用户通过程序可以把这两个控制字送到8255A的控制寄存器(A1A0=11B),以设定8255A的工作方式和C口各位状态。这两个控制字以D7位状态作为标志。8255A各端口工作于什么方式和是输入还是输出方式,是由方式控制字决定的。方式控制字格式如图2-7所示。
D7为控制字标志位,若D7=1,则本控制字为方式控制字,若D7=0,则本控制字为C口单一置复位控制字。
D6~D3为A组控制位。其中,D6和D5位A组方式选择位:若D6D5=00,则A组设定为方式0;若D6D5=01,则A组设定为方式1:若D6D5=1×(×为任意),则A组设定为方式2。D4为A口输入/输出控制位:若D4=0,则PA0~PA7,用于输出数据;若D4=0,则PA0~PA7用于输入数据。D3位C口高4位输入/输出控制位:若D3=0,则PC4~PC7为输出数据方式;若D3=1,则PC4~PC7为输入方式。
图2.7 方式控制字
D2~D0为B组控制位,其作用和D6~D3类似。其中,D2为方式选择位,若D2=0,则B组设定为方式0,若D2=1,则B组设定为方式1。D0为C口低4位输入/输出控制位,若D0=0,则PC0~PC3用于输出数据,若D0=1,则PC0~PC3用于输入数据。如图2.8所示:
图2.8 置位控制字
(3)8255A的工作方式
8255A有三种工作方式:方式0(Mode0)、方式1(Mode1)和方式2(Mode2)。正确的选用方式控制字,并把它通过程序送给8255A的控制字寄存器就可设定8255A的工作方式。
15