51单片机点阵设计江海东.docx

上传人:b****5 文档编号:3370519 上传时间:2022-11-22 格式:DOCX 页数:25 大小:946.92KB
下载 相关 举报
51单片机点阵设计江海东.docx_第1页
第1页 / 共25页
51单片机点阵设计江海东.docx_第2页
第2页 / 共25页
51单片机点阵设计江海东.docx_第3页
第3页 / 共25页
51单片机点阵设计江海东.docx_第4页
第4页 / 共25页
51单片机点阵设计江海东.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

51单片机点阵设计江海东.docx

《51单片机点阵设计江海东.docx》由会员分享,可在线阅读,更多相关《51单片机点阵设计江海东.docx(25页珍藏版)》请在冰豆网上搜索。

51单片机点阵设计江海东.docx

51单片机点阵设计江海东

 

班级:

电信3班

姓名:

江海东

学号:

2220083421

 

一.实验目的

用TOP-23088DH-U8x8LED点阵块设计制作一个8×16点阵汉字显示器,通过51单片机作为控制系统,由8255的A口为段数据口向两块点阵提供数据,B口提供扫描信息,通过74LS154译码后进行扫描。

同时C口接3个开关,形成控制功能选择。

二.设计要求

1、能显示16×8的汉字,显示“老师”,“大连”等。

2、通过按键控制可以改变显示的汉字,图形和符号。

3、通过按键控制可以实现汉字静态显示“老师”以及左移显示“大连”。

4、可以实现简单的图形的从外向内周期显示以及从内向外周期显示。

5、增加了驱动电路,提高了现实亮度。

6、增加了现实图形:

点阵从内向外周期显示后又相反显示,显示正弦波形(左移),显示正弦波形(右移)。

三.实验元器件

需要器件名称

数量

8051单片机(实验箱集成)

1

8255(实验箱集成)

1

TOP-23088DH-U8x8LED

2

74LS154

1

74LS245

1

面包板

3

导线

若干

开关(实验箱集成)

5

 

四.原理分析

(1)TOP-23088DH-U8x8LED点阵电路原理图及其使用说明

有标记的一侧

6

3

12

1

14

15

2

4

正面图,脚线分布

8

13

11

5

16

7

10

9

说明:

TOP-23088DH-U8x8LED点阵属于共阴极点阵

其中

1至8

控制行

行为阳极

低电平0有效

9至16

控制列

列为阴极

高电平1有效

要点亮某盏小灯时,应先把小灯所位置的行置于低电平。

然后控制列的高电平

编程时按“高位往低位”的顺序编写代码

如果,当你所选购的8x8LED点阵型号是别的型号,而你又没有得到相关电路图时,可以自己用数字万用表去检测。

方法如下:

1.以有标记的那一端在上,建立坐标系。

2.将数字万用表调到测试二极管的那端,如后将红笔固定在某一引脚上,然后将黑笔分别与其他引脚相接。

观察哪一行或者那一列的小灯是否被点亮,然后记下坐标。

如果小灯没亮,则将黑笔与红笔换位,再重复测量。

3.然后重复上述步骤2。

之后整理所得的数据,即可得到该8x8LED点阵的电路图了。

 

点阵模块图如下:

如上图所示,本实验通过列扫描方式,扫描同时给行线送显示数据。

当扫描到某列,则该列选通,其他列截止,选通瞬间送显示数据,则所对应的二极管亮。

显示的基本原理:

点阵依靠循环点亮每一列(或行),快速循环形成一屏图像,而每一屏快速交替,可进一步形成动画的效果。

(2)同时,74LS245的管脚图如下图

(3)74LS154管脚图如下图:

 

五.实验方案

(1)方案论证

控制模块

整个系统由8051、74LS154,8255组成,其中,8051,8255,以及开关都集成在实验箱上。

并且集成了时钟等必须器件。

74LS154

是4线转16线译码器,4线端接8255的PB.0-PB.3口接收列扫描信息,16线端低电平有效,控制点阵的16列

74LS245

是对列的驱动,8255的PA.0-PA.7用于将行扫描数据进行高速串-并转换,实验箱内部便可提供较大电流总够控制点阵的8行,这样,点阵的128个点中被选通的就亮。

显示模块

由2块TOP-23088DH-U8x8LED点阵组成

 

(2)流程图

 

 

Y

N

Y

N

Y

N

 

Y

N

 

Y

N

 

(3)硬件连接

(4)软件部分

编程思路为:

先对相关变量进行初始化,循环扫描点亮16列LED,一帧图像扫描完毕后,列指针向右移动一位,再扫描下一帧图像。

依此类推,列指针共向右移动16位,这样主观上就感觉向左滚动,移动一个汉字(列指针右移16位)后,字指针指向下一个汉字,这样就能在显示屏上看到汉字滚动。

(5)实验程序

ORG0000H

LJMPSTART

ORG3000H

START:

MOVDPTR,#8003H

MOVA,#81H

MOVX@DPTR,A

MOVR6,#2

MOVR7,#10H

MOVDPTR,#8002H

MOVXA,@DPTR

JNBACC.0,L1

JNBACC.1,L2

JNBACC.2,L3

JNBACC.3,L41

JNBACC.4,L51

L41:

LJMPL4

L51:

LJMPL5

SJMPSTART

L1:

MOVR0,#00H

MOVR1,#00H

LOOP1:

MOVA,R1

MOVDPTR,#8001H

MOVX@DPTR,A

MOVDPTR,#TAB1

MOVA,R0

MOVCA,@A+DPTR

MOVDPTR,#8000H

MOVX@DPTR,A

LCALLDELAY

INCR0

INCR1

DJNZR7,LOOP1

MOVR7,#10H

LJMPSTART

L2:

MOVR4,#00H

MOVA,R4

MOVR0,A

LOOP2:

MOVR1,#00H

KK2:

MOVA,R1

MOVDPTR,#8001H

MOVX@DPTR,A

MOVDPTR,#TAB2

MOVA,R0

MOVCA,@A+DPTR

MOVDPTR,#8000H

MOVX@DPTR,A

INCR0

INCR1

LCALLDELAY

LCALLDELAY

DJNZR7,KK2

MOVA,R4

MOVR0,A

MOVR7,#10H

DJNZR6,LOOP2

LCALLDELAY

LCALLDELAY

INCR4

MOVA,R4

MOVR0,A;

MOVR7,#10H

MOVR6,#02H

CJNER4,#16,LOOP2

LJMPSTART

L3:

MOVR4,#00H

MOVR5,#08H

MOVA,R4

MOVR0,A

MOVR1,#00H

LOOP3:

MOVA,R1

MOVDPTR,#8001H

MOVX@DPTR,A

MOVDPTR,#TAB3

MOVA,R0

MOVCA,@A+DPTR

MOVDPTR,#8000H

MOVX@DPTR,A

LCALLDELAY

LCALLDELAY

INCR0

INCR1

DJNZR7,LOOP3

MOVR7,#10H

MOVA,R4

MOVR0,A

DJNZR6,LOOP3

MOVR6,#2

MOVA,#16

ADDA,R4

MOVR4,A

MOVR0,A

DJNZR5,LOOP3

LJMPSTART

L4:

MOVR4,#00H

MOVR5,#08H

MOVA,R4

MOVR0,A

MOVR1,#00H

LOOP4:

MOVA,R1

MOVDPTR,#8001H

MOVX@DPTR,A

MOVDPTR,#TAB4

MOVA,R0

MOVCA,@A+DPTR

MOVDPTR,#8000H

MOVX@DPTR,A

LCALLDELAY

LCALLDELAY

INCR0

INCR1

DJNZR7,LOOP4

MOVR7,#10H

MOVA,R4

MOVR0,A

DJNZR6,LOOP4

MOVR6,#2

MOVA,#16

ADDA,R4

MOVR4,A

MOVR0,A

DJNZR5,LOOP4

L6:

MOVR4,#00H

MOVR5,#08H

MOVA,R4

MOVR0,A

MOVR1,#00H

LOOP6:

MOVA,R1

MOVDPTR,#8001H

MOVX@DPTR,A

MOVDPTR,#TAB6

MOVA,R0

MOVCA,@A+DPTR

MOVDPTR,#8000H

MOVX@DPTR,A

LCALLDELAY

LCALLDELAY

INCR0

INCR1

DJNZR7,LOOP6

MOVR7,#10H

MOVA,R4

MOVR0,A

DJNZR6,LOOP6

MOVR6,#2

MOVA,#16

ADDA,R4

MOVR4,A

MOVR0,A

DJNZR5,LOOP6

LJMPSTART

L5:

MOVR4,#00H

MOVA,R4

MOVR0,A

LOOP5:

MOVR1,#00H

KK5:

MOVA,R1

MOVDPTR,#8001H

MOVX@DPTR,A

MOVDPTR,#TAB5

MOVA,R0

MOVCA,@A+DPTR

MOVDPTR,#8000H

MOVX@DPTR,A

INCR0

INCR1

LCALLDELAY

DJNZR7,KK5

MOVA,R4

MOVR0,A

MOVR7,#10H

DJNZR6,LOOP5

LCALLDELAY

INCR4

MOVA,R4

MOVR0,A;

MOVR7,#10H

MOVR6,#02H

CJNER4,#16,LOOP5

LJMPSTART

DELAY:

MOVR2,#0FH

PP:

MOVR3,#0FH

DJNZR3,$

DJNZR2,PP

RET

TAB1:

DB88H,4AH,2AH,0FFH,0CAH,0AEH,88H,0C0H,18H,0FFH,00H,3CH,05H,0FFH,05H,3CH

TAB2:

DB44H,24H,14H,0FH,14H,24H,44H,00H,8BH,0F6H,0AAH,0AEH,0ABH,0FEH,0AAH,0AAH

DB44H,24H,14H,0FH,14H,24H,44H,00H,8BH,0F6H,0AAH,0AEH,0ABH,0FEH,0AAH,0AAH

TAB3:

DB0FFH,81H,81H,81H,81H,81H,81H,0FFH,00H,00H,00H,00H,00H,00H,00H,00H

DB00H,7EH,42H,42H,42H,42H,7EH,00H,00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,3CH,24H,24H,3CH,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,18H,18H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,18H,18H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,3CH,24H,24H,3CH,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H,00H,7EH,42H,42H,42H,42H,7EH,00H

DB00H,00H,00H,00H,00H,00H,00H,00H,0FFH,81H,81H,81H,81H,81H,81H,0FFH

TAB4:

DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,18H,18H,00H,00H,00H,00H,00H,00H,18H,18H,00H,00H,00H

DB00H,00H,3CH,24H,24H,3CH,00H,00H,00H,00H,3CH,24H,24H,3CH,00H,00H

DB00H,7EH,42H,42H,42H,42H,7EH,00H,00H,7EH,42H,42H,42H,42H,7EH,00H

DB0FFH,81H,81H,81H,81H,81H,81H,0FFH,0FFH,81H,81H,81H,81H,81H,81H,0FFH

TAB6:

DB0FFH,81H,81H,81H,81H,81H,81H,0FFH,0FFH,81H,81H,81H,81H,81H,81H,0FFH

DB00H,7EH,42H,42H,42H,42H,7EH,00H,00H,7EH,42H,42H,42H,42H,7EH,00H

DB00H,00H,3CH,24H,24H,3CH,00H,00H,00H,00H,3CH,24H,24H,3CH,00H,00H

DB00H,00H,00H,18H,18H,00H,00H,00H,00H,00H,00H,18H,18H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H

TAB5:

DB01H,02H,04H,08H,10H,20H,40H,80H,80H,40H,20H,10H,08H,04H,02H,01H

DB01H,02H,04H,08H,10H,20H,40H,80H,80H,40H,20H,10H,08H,04H,02H,01H

END

六.实际制作与调试

(1)实际制作

使用keil先对软件程序进行编译测试并进行proteus仿真,调试成功后开始硬件部分。

 

再编一段小程序用来测试硬件,发现LED有显示,即可向下进行,在这个环节上,所编程序应将字型表先全设为0FFH,因为只有让LED全点亮才能测试出所有线路,LED,8051和8255能否正常工作、点阵的极性及是否有坏点。

在制作过程中,由于LED管脚并不是与每一行每一列一一对应的,所以上网站找到了关于该点阵的资料。

之后在用仪器测试74LS154,74LS245是否正常,然后按照之前设计好的线路连接硬件线路,电路连接需要仔细。

(2)调试过程

先通过韦弗的软件将程序下载到实验箱中,初始为黑屏,因为没有按键被按下。

之后通过按键进行控制,看显示是否正确,若点阵全都不亮,则首先要仔细检查程序,很可能是程序出了问题,因为之前已经对硬件进行测试了,若确定程序没有问题,则很可能是连线出现了断线,或者是连线连错了,点阵实验的线较多,所以需要在实验之前对每根线路进行检测,检测的方法是使用万用表检测是否出现短路现象。

由于线较多,所以很容易接连错了,也有可能是前面对LED的能否正常工作没有测试到位导致部分电路问题被遗漏。

若测试时就只有几个点不亮,这时就能确定点阵极性及那些点是坏点。

(3)实物图

 

 

 

 

 

 

七.实验总结

1.实验过程中的问题与分析:

(1)这次实验管教连线比较多,而且比较密集,一定要细心。

(2)点阵的每个管脚行与列要先通过测试后才能确定,或者是在网上寻找资料确定管脚,由于管脚并不是按顺序的,所以不能随便连接

(3)最好事先写一个测试程序,加一个延时判断一下。

(4)程序关键之处在于串口发送列数据的延时控制,否则很难观测到扫描图像。

同时,行数据的延时控制也很重要,这决定整个画面是否闪烁。

(5)为了控制汉字滚动速度,有时需对一帧图像扫描数次后才将列指针移位。

(6)为了是提高显示图形的亮度,加了一块74LS245芯片对行进行驱动。

(7)连接好硬件后,通过对各元件的测试,加深了对实验原理以及各元件的工作原理的理解。

(8)通过对实验程序的修改增加显示图形的变化,进一步加深了对试验程序的理解。

2.实验心得:

通过本次单片机课设,更加加深了对单片机硬件系统和8X8点阵、74LS245和74LS154等元件工作原理的理解;同时通过设计过程中的查询资料,初步掌握了keiluvision3和proteu以及8X8字模提取等软件的应用,进一步熟练掌握了伟福单片机仿真软件的应用;同时实际接触了各个功能芯片以及点阵实物,对各元器件有了比较形象的认识,了解了点阵的每个管脚的查询方法;同时学会了实现点阵静态显示、循环移动显示、周期显示以及各种变化图形的程序设计思路;此外,通过实验过程中出现的问题和解决问题的过程,提高了分析问题,了解问题本质,进而解决问题的能力。

总而言之,通过本次单片机课设,收获很大。

8.参考资料

[1]陈堂敏.刘焕平主编.单片机原理与应用.北京:

北京理工大学出版社,2007.

[2]沈美明.温动蝉编著.IBM-PC汇编语言程序设计.北京:

清华大学出版社,1994.

[3]张仰森等编.微型计算机常用软硬件技术速查手册.北京:

北京希望电脑公司,1994.

[4]江修汗等编.计算机控制原理与应用.西安:

西安电子科技大学出版社,1999.

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

当前位置:首页 > 求职职场 > 笔试

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

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