基于51单片机大屏幕显示

更新时间:2023-10-17 09:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

电子系统设计报告

--大屏幕显示器

系队别:三系一队 刘歌声3222008041 朱燕豪 3222008021 陈 韬3222008022

一、 实验目的

通过设计一个基于单片机的大屏幕显示器系统学习掌握51系列单片机的原理,编程方法及51系列单片机的具体应用,提高自身的编程能力。巩固三电综合能力,提高应用能力。 二、 设计任务与要求 1、任务

设计制作一个大屏幕显示器。

2、要求

1) 基本要求

(1) 显示器点阵数目至少8*8,能够显示汉字。 (2) 能够用多种扫描方式进行显示。 (3) 显示器的亮度可以调节。

2) 发挥部分

(1)把基本要求的设计扩展成一个能够显示多个汉字的字符屏。 (2)利用微机的RS-232接口传送数据,随时改变显示的内容。

三、总体论证

本设计采用Atmel公司的高性能的位单片机89C51作为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路(74LS245)、8×8 LED点阵5部分组成,我们在实际应用中只是将LED点阵的8条行线直接接在P0口和P3口,至于列选扫描信号则是由译码器74LS245来选择控制,这样一来列选控制只使用了单片机的4个IO口,节约了很多IO资源,为单片机系统扩充使用功能提供了条件。

汉字扫描显示的基本过程是这样的:通电后使单片机的RST复位脚电平先高后低,从而达到复位。之后,在单片机内部时钟电路的作用下,单片机89C51按照设定的程序在P0和P3接口输出与内部汉字对应的代码电平送至LED点阵的行选线(高电平驱动),接口输出列选扫描信号(低电平驱动),从而选中相应的象素LED发光,并利用人眼的视觉暂留特性合成整个汉字的显示。同时通过调整导通的时间与电流,可实现高亮度稳定的显示。 四、系统设计

1.硬件仿真设计

当我们拿到题目的时候不知道从何下手,特别是不知道用到什么器件以及如何对他们进行仿真。后来教员给了我们初步的器件模块,我们的主要目的就是还原电路图并写出它的汇编代码程序。

刚开始的时候我们不会使用Proteus仿真软件,可谓一筹莫展,但是我们充分利用了图书馆的资源,从图书馆借阅了两本有关Proteus仿真的教程书,通过学习我们才有了初步的认识,这时我们就着手与仿真。首先我们确定需要使用的器件,AT89C51

,CAPACITOR,CRYSTAL,RESISTOR,TTL 74LS245,MATRIX-8*8-RED。因为对软件不熟悉在器

件的选择上我们花了很大的气力,比如说在寻找点阵与晶振时我们只能挨个查找,后来我们理解了各个器件的英文意思之后就变得很简单了。仿真过程给我最大的体会就是相同类的器件有很多不同的型号种类,他们的用途也很不相同。就拿电容来说,我们需要普通的电容,也需要电感电容,这就需要我们注意他们二者之间的区别以及各自不同的用途。这一点是特别要注意的。

在进行原理图的仿真之前,我们必须知道LED显示屏显示的原理。在行扫描工作方式下,每一片LED点阵片都有一组列驱动电路,列驱动电路中一定有一片锁存器或移位寄存器,用来锁存待显示内容的字模数据。在行扫描工作方式下,同一排LED点阵片的同名行控制引脚是并接在一条线上的,共8条线,最后连接在一个行驱动电路上;行驱动电路中也一定有一片锁存器或移位寄存器,用来锁存行扫描信号。

LED显示屏的列驱动电路和行驱动电路一般都采用单片机进行控制,常用的单片机是MCS51系列。LED显示屏显示的内容一般按字模的形式存放在单片机的外部数据存储器中,字模是8位二进制数。本实验为8*8点阵显示,刚好直接使用单片机的现有存储器,不必进行位扩展。

显示控制电路是按行扫描方式工作的,列控制电路 ,用芯片作为列驱动电路的锁存器,CPU通过并行总线给列驱动电路的锁存器写字模数据,或芯片作为列驱动电路的锁存器,CPU通过串行总线给列驱动电路的锁存器写字模数据。

在本次仿真使用74LS245做列驱动电路的锁存器。

仿真过程使用什么端口?怎么使用?我们都不是很清楚。最终P3口作为行输出端口,P0口连接74LS245作为列驱动,使不同的引脚相互对应。其中我们也添加了复位键,当程序运行完成之后,按动复位键,程序再次运行。复位键端口开始的电压选取的是高电平,没有作用,观看电路仿真过程电压的变化,端口接低电平才起作用,取电压为-5V。

总线的工作过程是先给数据指针DPTR赋值,接着累加器A按数据指针DPTR的指向,从外部数据存储器RAM中读得字模数据。然后,并行总线时,再给数据指针DPTR赋值,接着CPU将累加器A中的字模数据,按数据指针DPTR的指向,写给LED点阵片列驱动电路的锁存器;串行总线时,CPU将累加器A中的字模数据,通过串行口写给LED点阵片列驱动电路的锁存器。

单片机对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次以上,即刷新频率高于50 Hz,那么由于人的视觉惰性,所看到的LED显示屏显示的图像还是全屏稳定的图像。

硬件电路测试:

首先,仿真图与电路板的比较,由于教员给我们的印制电路板是焊得差不多的,这就不需要我们再进行焊接了,但是毕竟不是自己做的,我们在”阅读”板子时遇到了不小的麻烦,尤其是89c51的引脚图与我们仿真的不同,我们选择画出电路板实际电路图,实现40引脚的一一对应;

其次,短路线问题,在仿真过程中我们给74LS245加上了高电平,但是实际电路却没有,刚开始我们一直没有显示,测量电压之后我们才发现,接上高电平之后问题解决了。

还有 LED点阵的测量,通过简单的高低电平添加,让我们发现我们的点阵有好多错误,尤其是LED灯有不少坏的,于是我们申请了一个新的点阵。

由于时间的问题,电路板上的排线出现很多脱落,还有虚焊的点,我们重新焊接了一遍,基本解决了这些问题。

2.软件设计

开始

YES

位选

YES

指向下一个段码 初始化设置

YES 取段码值送P0 YES NO YES

位选加1

YES

暂时清屏 NO

YES

段码值是否送完 YES

字符显示片刻

YES 位选复位

YES

是否已显示完字符串

当我们进行程序编写时,

R_CNT EQU 30H NUM EQU 31H TCOUNT EQU 32H ORG 00H LJMP START ORG 0BH LJMP INT_T0 START:

MOV R_CNT,#00H MOV NUM,#00H MOV TCOUNT,#00H MOV TMOD,#01H

MOV TH0,#(65536-5000)/256 MOV TL0,#(65536-5000)/256 MOV IE,#82H SETB TR0

SJMP $ INT_T0:MOV TH0,#(65536-5000)/256 MOV TL0,#(65536-5000)/256

MOV DPTR,#TABLE MOV A,R_CNT MOVC A,@A+DPTR

MOV P3,A MOV DPTR,#TABLE1 MOV A,NUM MOV B,#8 MUL AB

ADD A,R_CNT MOVC A,@A+DPTR

CPL A MOV P0,A INC R_CNT MOV A,R_CNT CJNE A,#8,NEXT MOV R_CNT,#00H NEXT: INC TCOUNT

MOV A,TCOUNT CJNE A,#200,RETUNE MOV TCOUNT,#00H INC NUM MOV A,NUM

0 0 5ms ;等待中断 ;取列码表首地址 ;显示列码

;取行码表首地址 ;取反

;输出行码

;每个数字显示1S ;列码序号置 ;行码序号置

;定时

CJNE R0,#7,RETUNE

MOV NUM,R0 RETUNE: RETI

TABLE: DB 080H,040H,020H,010H,08H,04H,02H,01H ;列值 TABLE1: DB 00H,10H,10H,10H,10H,10H,10H,00H ;一 DB 02H,2AH,2AH,7EH,2AH,6AH,22H,10H ;生 DB 00H,10H,10H,10H,10H,10H,10H,00H ;一 DB 00H,22H,7AH,2AH,7AH,22H,7EH,20H ;世 END

后来我们又研究了屏幕的不间断显示,我们编程实现了0—9的滚动显示。 代码如下所示: R_CNT EQU 31H NUMB EQU 32H TCOUNT EQU 33H ORG 00H LJMP START ORG 0BH LJMP INT_T0 ORG 30H

START: MOV R0,#00H MOV R_CNT,#00H MOV NUMB,#00H MOV TCOUNT,#00H MOV TMOD,#01H

MOV TH0,#(65536-5000)/256 MOV TL0,#(65536-5000)/256 SETB TR0

MOV IE,#82H SJMP $

INT_T0:MOV TH0,#(65536-5000)/256 MOV TL0,#(65536-5000)/256 MOV DPTR,#TAB MOV A,R_CNT MOVC A,@A+DPTR MOV P0,A

MOV DPTR,#TABLE1 MOV A,NUMB MOVC A,@A+DPTR MOV P3,A INC NUMB NEXT1:INC R_CNT MOV A,R_CNT CJNE A,#8,NEXT2

MOV R_CNT,#00H MOV NUMB,R0 NEXT2:INC TCOUNT MOV A,TCOUNT CJNE A,#40,NEXT4 MOV TCOUNT,#00H INC R0

CJNE R0,#88,NEXT3 MOV R0,#00H NEXT3:MOV NUMB,R0 NEXT4:RETI

TAB:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7EH TABLE1:DB 00H,00H,00H,00H,00H,00H,00H,00H

DB 00H,00H,3EH,41H,41H,41H,3EH,00H ;0 DB 00H,00H,00H,00H,21H,7FH,01H,00H ;1 DB 00H,00H,27H,45H,45H,45H,39H,00H ;2 DB 00H,00H,22H,49H,49H,49H,36H,00H ;3 DB 00H,00H,0CH,14H,24H,7FH,04H,00H ;4 DB 00H,00H,72H,51H,51H,51H,4EH,00H ;5 DB 00H,00H,3EH,49H,49H,49H,26H,00H ;6 DB 00H,00H,40H,40H,40H,4FH,70H,00H ;7 DB 00H,00H,36H,49H,49H,49H,36H,00H ;8 DB 00H,00H,32H,49H,49H,49H,3EH,00H ;9 DB 00H,00H,00H,00H,00H,00H,00H,00H END

按照仿真电路的原理图进行硬件电路的连接,将生成好的HEX文件通过专门的器件置入51单片机,把单片机接入电脑,擦除、编译、读写,而最重要的则是带上板子直接接在仿真机上烧程序,避免了单片机的损伤(我们看到好多组都浪费了好多芯片);将单片机插入电路,接好电源端及地端接入+5V直流电源进行各个模块的测试。 技术指标测试及结果

以下是各个模块技术指标测试

1) 送上电源,数码管按照预期的仿真亮,显示模块正常工作。

2) 我们编写了全显示、点阵扫描、“一生一世”的程序来进行各种测试,结果发现并不如

人愿,在查询74LS245的数据书册后,我们重新换了端口,选择了P0口做阳极输入,p3口做阴极输入,结果就直接显示出来了。

3) 运行玩之后屏幕终止显示,按动复位键,再次显示。

五、系统改进与扩展功能

我们可以在接下来的研究中实现更多位点阵的显示,把屏幕做大。

六、心得及体会

本文设计的大屏幕显示器系统实现了包括显示汉字、多种扫描显示等众多功能,可以作为信息显示装置。硬件方面具有实用性强、可靠性及抗干扰能力强等特点,并且易于安装,、使用方便,造价低廉,很适合在公共场所进行信息显示。整个显示系统设计完成后达到了预期的效果,系统字符显示稳定、清晰、无闪烁。而由于我们小组团队的专业知识有限,在整个设计过程或多或少还存在缺陷,在将来的实际动手实践中会有进

一步完善。

通过此次电子实验设计,对我们个人而言首先是丰富了自己的理论知识,在设计之前我们必须阅读关于51系列单片机的理论知识,了解了51系列单片机的工作原理、编程方法及具体应用,达到了拓展知识的目的;其次提高了自己的动手能力,在仿真完成之后要进行硬件电路的连接及调试,在这过程需要有耐心,细心的去完成,通过这次锻炼提高了自身的动手能力;再次,加强了个人主动思考问题、分析问题及解决问题的能力,整个实验的过程会不断的产生问题,就需要我们学会去思考分析及解决问题。对我们小组而言,加强了小组成员之间的合作能力,设计完成这样的一个实验,单凭个人的能力是无法完成的,因此就需要小组成员有明确的分工,默契的合作。就此课程的设置而言,是一次很好的锻炼学员自主学习能力的机会,就为培养学员的能力而言,此类课程的设置意义重大。 七、附录

主要参考文献

1.《电子系统设计教程(第2版)》 陆应华、王照平、王理 国防工业出版社 2010

本文来源:https://www.bwwdw.com/article/0nvf.html

Top