实验三 点阵显示屏的控制.docx

上传人:b****6 文档编号:5249438 上传时间:2022-12-14 格式:DOCX 页数:10 大小:275.69KB
下载 相关 举报
实验三 点阵显示屏的控制.docx_第1页
第1页 / 共10页
实验三 点阵显示屏的控制.docx_第2页
第2页 / 共10页
实验三 点阵显示屏的控制.docx_第3页
第3页 / 共10页
实验三 点阵显示屏的控制.docx_第4页
第4页 / 共10页
实验三 点阵显示屏的控制.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

实验三 点阵显示屏的控制.docx

《实验三 点阵显示屏的控制.docx》由会员分享,可在线阅读,更多相关《实验三 点阵显示屏的控制.docx(10页珍藏版)》请在冰豆网上搜索。

实验三 点阵显示屏的控制.docx

实验三点阵显示屏的控制

实验三点阵显示屏的控制

一、实验目的

1、熟悉KeiluVision2软件的使用;

2、掌握单片机并行I/O口应用及点阵模块的控制;

3、掌握查表指令、循环程序结构;

4、掌握程序与流程图的对应关系。

二、实验设备及仪器

KeilμVision2软件;单片机开发板;PC机一台

三、实验原理及内容

1、点阵模块电路原理图,如图3.1所示。

图3.1点阵模块原理图

U4、U9的74HC573芯片是8位三态输出锁存器,分别作为点阵的行、列输入端。

根据1088BS点阵模块的内部结构(如图3.2),对应的行为高电平控制,对应的列为低电平控制。

P1.1点阵列、数码管位控制端(74HC573锁存器U9)

P1.3点阵行控制端(74HC573锁存器U4)

图3.21088BS点阵模块内部结构

2、实验内容

点阵显示有多种形式,例如固定显示、闪烁显示、滚动显示、交替显示等,先从最简单的固定显示一个字符做起。

训练内容一:

“大”字的静态显示。

(1)设计思路:

先选中点阵的某一行,然后通过查表指令得到这一行对应的字型码(列锁存器的输出,控制这一行要点亮的状态),延时1ms后,选中下一行,再传送对应列的字型码,重复上述过程,直至完成8行的扫描。

然后,再从第一行开始循环。

利用视觉驻留效应,人眼看到的是一个静态的显示效果。

上述逐行扫描显示过程示意图,如下:

程序流程图,如图3.3所示。

图3.3静态显示“大”字的程序流程图

(2)列字型码的编排:

“大”字显示字型码示意图,如图3.4。

图3.4“大”字型码示意图

根据“大”字显示字型码示意图和查表指令中表格数据的构建原则,将字型码依次存放在表格TAB1所指定的ROM单元中。

TAB1:

DB11110111B,11110111B,10000000B,11110111B,11101011B

DB11011101B,10111110B,11111111B

或写成TAB1:

DB0F7H,0F7H,80H,0F7H,0EBH,0DDH,0BEH,0FFH

(3)静态显示“大”字的参考程序如下:

ORG00H

AJMPMAIN

MAIN:

SETBP1.0;数码管段控制(锁存器U8输入端有效)

SETBP1.2;LED流水灯模块控制(锁存器U7输入端有效)

MOVP0,#0FFH;关闭LED灯

CLRP1.2;关闭LED流水灯模块(锁存器U7输入端高阻态)

MOVP0,#0;关闭数码管段

CLRP1.0;关闭数码管段模块(锁存器U8输入端高阻态)

LOOP:

MOVDPTR,#TAB1;列字型码的表首地址

MOVR0,#01H;行号

MOVR1,#00H;列号

MOVR3,#08H;一个周期内扫描8行

NEXT:

SETBP1.3;点阵行锁存器U4的输入端有效

MOVA,R0

MOVP0,A;选中某一行

RLA

MOVR0,A;更新行号

CLRP1.3;点阵行锁存器U4的输入端处于高阻态

SETBP1.1;点阵列锁存器U9的输入端有效

MOVA,R1

MOVCA,@A+DPTR

MOVP0,A

INCR1;修改列号

LCALLDELAY;延时1ms

CLRP1.1;点阵列锁存器U9的输入端处于高阻态

DJNZR3,NEXT;判断是否完成8行扫描

SJMPLOOP;循环显示

DELAY:

MOVR4,#250;实现延时1ms子程序

D1:

NOP

NOP

DJNZR4,D1

RET

TAB1:

DB0F7H,0F7H,80H,0F7H,0EBH,0DDH,0BFH,0FFH;列字型码

END

问1:

若将程序中的SJMPLOOP改为SJMP$,将会出现什么现象?

问2:

若要显示“小”字,如何修改程序?

训练内容二:

“大”字的滚动显示(从一个方向出现,滚动到另一个方向消失,并不断重复该过程)。

(1)滚动显示原理

根据滚动显示的特点,滚动显示实际上是多屏循环显示。

需要分两步实现:

①确定出每一屏的字型码;

为了实现“大”字从右到左滚动显示效果,第1屏显示的应该只是“大”字最左边一列,如图3.5(a)所示。

第2、3屏显示,如图3.5(b)、(c)所示。

(a)第1屏显示

(b)第2屏显示

(c)第3屏显示

图3.5第1~3屏显示及列字型码

从“大”字从右边出现,到“大”字从左边消失,总共需要15屏。

8个字型码一屏,15屏需要定义15×8个字型码,图3.5中的1~3屏字型码的定义如下:

TAB1:

DB0FFH,0FFH,7FH,0FFH,0FFH,0FFH,7FH,0FFH;第1屏

DB0FFH,0FFH,3FH,0FFH,0FFH,7FH,0BFH,0FFH;第2屏

DB0FFH,0FFH,1FH,0FFH,7FH,0BFH,0DFH,0FFH;第3屏

利用查表指令读取每一屏的数据:

读取第1屏的数据时,MOVDPTR,#TAB

读取第2屏的数据时,DPTR+8DPTR

读取第3屏的数据时,在第2屏的基础上DPTR+8DPTR

依次类推。

由于MCS-51系列单片机是8位单片机,没有16位的加法指令,且加法指令的第一操作数必须是累加器A,因此DPTR+8DPTR只能分步实现:

DPLA

A+8A

ADPL

DPHA

A+CYA

ADPH

②确定每一屏显示需保持时间(滚动时间的快慢)。

每一屏变换时间必须要大于人眼视觉驻留时间,否则眼睛无法识别。

根据静态显示实验,每屏显示一次需要时间大概8ms,若每屏要显示50次,即每屏的显示时间约为50×8ms=0.4s,显然改变每屏显示的次数就可以改变每屏显示的时间。

(2)滚动显示“大”字流程图

图3.6滚动显示“大”字的流程图

(3)滚动显示“大”字的参考程序如下:

ORG00H

AJMPMAIN

MAIN:

SETBP1.0;数码管段控制(锁存器U8输入端有效)

SETBP1.2;LED流水灯模块控制(锁存器U7输入端有效)

MOVP0,#0FFH;关闭LED灯

CLRP1.2;关闭LED流水灯模块(锁存器U7输入端高阻态)

MOVP0,#0;关闭数码管段

CLRP1.0;关闭数码管段模块(锁存器U8输入端高阻态)

LOOP1:

MOVDPTR,#TAB1;列字型码的表首地址

MOVR5,#15;15屏滚动显示

LOOP2:

MOVR6,#50;每屏显示次数

LOOP3:

MOVR0,#01H;行号

MOVR1,#00H;列号

MOVR3,#08H;一个周期内扫描8行

NEXT:

SETBP1.3;点阵行锁存器U4的输入端有效

MOVA,R0

MOVP0,A;选中某一行

RLA

MOVR0,A;更新行号

CLRP1.3;点阵行锁存器U4的输入端处于高阻态

SETBP1.1;点阵列锁存器U9的输入端有效

MOVA,R1

MOVCA,@A+DPTR

MOVP0,A

INCR1;修改列号

LCALLDELAY;延时1ms

CLRP1.1;点阵列锁存器U9的输入端处于高阻态

DJNZR3,NEXT;判断是否完成8行扫描

DJNZR6,LOOP3;判断每屏的显示次数50次是否到了?

MOVA,DPL;修改表首地址,准备读取下一屏数据

ADDA,#8

MOVDPL,A

MOVA,DPH

ADDCA,#0

MOVDPH,A

DJNZR5,LOOP2;判断15屏都显示完了?

SJMPLOOP1;循环显示

DELAY:

MOVR4,#250;实现延时1ms子程序

D1:

NOP

NOP

DJNZR4,D1

RET

TAB1:

DB0FFH,0FFH,7FH,0FFH,0FFH,0FFH,7FH,0FFH;第1屏

DB0FFH,0FFH,3FH,0FFH,0FFH,7FH,0BFH,0FFH;第2屏

DB0FFH,0FFH,1FH,0FFH,7FH,0BFH,0DFH,0FFH;第3屏

DB7FH,7FH,0FH,7FH,0BFH,0DFH,0EFH,0FFH;第4屏

DB0BFH,0BFH,07H,0BFH,5FH,0EFH,0F7H,0FFH;第5屏

DB0DFH,0DFH,03H,0DFH,0AFH,77H,0FBH,0FFH;第6屏

DB0EFH,0EFH,01H,0EFH,0D7H,0BBH,7DH,0FFH;第7屏

DB0F7H,0F7H,80H,0F7H,0EBH,0DDH,0BEH,0FFH;第8屏

DB0FBH,0FBH,0C0H,0FBH,0F5H,0EEH,0DFH,0FFH;第9屏

DB0FDH,0FDH,0E0H,0FDH,0FAH,0F7H,0EFH,0FFH;第10屏

DB0FEH,0FEH,0F0H,0FEH,0FDH,0FBH,0F7H,0FFH;第11屏

DB0FFH,0FFH,0F8H,0FFH,0FEH,0FDH,0FBH,0FFH;第12屏

DB0FFH,0FFH,0FCH,0FFH,0FFH,0FFH,0FEH,0FFH;第13屏

DB0FFH,0FFH,0FEH,0FFH,0FFH,0FFH,0FEH,0FFH;第14屏

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;第15屏

END

问3:

编制程序,使得点阵上依次显示0~9。

问4:

滚动显示“大”、“小”2个字符。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1