实验三 点阵显示屏的控制

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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屏显示及列字型码

相关文档
最新文档