实验三 点阵显示屏的控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三点阵显示屏的控制
一、实验目的
1、熟悉Keil uVision2软件的使用;
2、掌握单片机并行I/O口应用及点阵模块的控制;
3、掌握查表指令、循环程序结构;
4、掌握程序与流程图的对应关系。
二、实验设备及仪器
Keil μVision2软件;单片机开发板;PC机一台
三、实验原理及内容
1、点阵模块电路原理图,如图3.1所示。
U9
列控制(低电平有效)
行(高)
U4
图3.1 点阵模块原理图
U4、U9的74HC573芯片是8位三态输出锁存器,分别作为点阵的行、列输入端。根据1088BS点阵模块的内部结构(如图3.2),对应的行为高电平控制,对应的列为低电平控制。
P1.1点阵列、数码管位控制端(74HC573锁存器U9)
P1.3 点阵行控制端(74HC573锁存器U4)
图3.2 1088BS 点阵模块内部结构
2、实验内容
点阵显示有多种形式,例如固定显示、闪烁显示、滚动显示、交替显示等,先从最简单的固定显示一个字符做起。
训练内容一: “大”字的静态显示。
(1)设计思路:先选中点阵的某一行,然后通过查表指令得到这一行对应的字型码(列锁存器的输出,控制这一行要点亮的状态),延时1ms 后,选中下一行,再传送对应列的字型码,重复上述过程,直至完成8行的扫描。然后,再从第一行开始循环。利用视觉驻留效应,人眼看到的是一个静态的显示效果。
上述逐行扫描显示过程示意图,如下:
1ms
1ms
1ms
一个循环周期约为8ms
程序流程图,如图3.3所示。
图3.3 静态显示“大”字的程序流程图(2)列字型码的编排:
“大”字显示字型码示意图,如图3.4。
P0.0
……
P0.0 P0.1
……
P0.7
P0.7
行:高电平有效
列:低电平有效
图3.4“大”字型码示意图
根据“大”字显示字型码示意图和查表指令中表格数据的构建原则,将字型码依次存放在表格TAB1所指定的ROM 单元中。
TAB1:DB 11110111B,11110111B,10000000B,11110111B,11101011B
DB 11011101B,10111110B,11111111B
或写成 TAB1:DB 0F7H,0F7H,80H,0F7H,0EBH,0DDH,0BEH,0FFH
(3)静态显示“大”字的参考程序如下: ORG 00H AJMP MAIN MAIN:
SETB P1.0;数码管段控制(锁存器U8输入端有效) SETB P1.2;LED 流水灯模块控制 (锁存器U7输入端有效) MOV P0,#0FFH;关闭LED 灯
CLR P1.2 ;关闭LED 流水灯模块(锁存器U7输入端高阻态) MOV P0,#0 ;关闭数码管段
CLR P1.0 ;关闭数码管段模块(锁存器U8输入端高阻态) LOOP:
MOV DPTR,#TAB1 ;列字型码的表首地址 MOV R0,#01H ;行号 MOV R1,#00H ;列号
MOV R3,#08H ;一个周期内扫描8行
NEXT:
SETB P1.3 ;点阵行锁存器U4的输入端有效
MOV A,R0
MOV P0,A;选中某一行
RL A
MOV R0,A;更新行号
CLR P1.3;点阵行锁存器U4的输入端处于高阻态
SETB P1.1 ;点阵列锁存器U9的输入端有效
MOV A,R1
MOVC A,@A+DPTR
MOV P0,A
INC R1 ;修改列号
LCALL DELAY;延时1ms
CLR P1.1 ;点阵列锁存器U9的输入端处于高阻态
DJNZ R3,NEXT ;判断是否完成8行扫描
SJMP LOOP ;循环显示
DELAY:MOV R4,#250;实现延时1ms子程序
D1:NOP
NOP
DJNZ R4,D1
RET
TAB1:DB 0F7H,0F7H,80H,0F7H,0EBH,0DDH,0BFH,0FFH ;列字型码END
问1:若将程序中的SJMP LOOP改为SJMP $,将会出现什么现象?问2:若要显示“小”字,如何修改程序?
训练内容二: “大”字的滚动显示(从一个方向出现,滚动到另一个方向消失,并不断重复该过程)。
(1)滚动显示原理
根据滚动显示的特点,滚动显示实际上是多屏循环显示。需要分两步实现: ①确定出每一屏的字型码;
为了实现“大”字从右到左滚动显示效果,第1屏显示的应该只是“大”字最左边一列,如图3.5(a )所示。第2、3屏显示,如图3.5(b )、(c )所示。
P0.0 P0.1
……
P0.7
P0.0
P0.7
……
11111111B ,即0FFH P0.0 ~ P0.7
11111111B ,即0FFH 01111111B ,即7FH 11111111B ,即0FFH 11111111B ,即0FFH 11111111B ,即0FFH 01111111B ,即7FH 11111111B ,即0FFH
(a )第1屏显示
P0.0 P0.1
……
P0.7
P0.0 P0.7
……
11111111B ,即0FFH P0.0 ~ P0.7
11111111B ,即0FFH 00111111B ,即3FH 11111111B ,即0FFH 11111111B ,即0FFH 01111111B ,即7FH 10111111B ,即0BFH 11111111B ,即0FFH
(b )第2屏显示
P0.0 P0.1
……
P0.7
P0.0 P0.7
……
11111111B ,即0FFH P0.0 ~ P0.7
11111111B ,即0FFH 00011111B ,即1FH 11111111B ,即0FFH 01111111B ,即7FH 10111111B ,即0BFH 11011111B ,即0DFH 11111111B ,即0FFH
(c )第3屏显示
图3.5第1~3屏显示及列字型码