88点阵实训报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
第一章引言 (2)
1.1内容摘要 (2)
1.2设计目的 (2)
1.3设计任务 (2)
1.4课程设计过程 (2)
第二章汉字显示屏表简介 (3)
2.1汉字显示屏的介绍 (3)
2.2汉字显示屏工作原理 (3)
第三章总体方案设计 (4)
第四章硬件部分的设计 (5)
4.1 AT89C51内部结构概述 (6)
4.2 P0-P3口结构 (6)
4.3时钟电路和复位电路 (7)
4.4显示电路 (8)
第五章系统软件的设计 (9)
5.1主程序 (9)
5.2 显示子程序 (10)
第六章系统的调试 (12)
6.1硬件调试 (13)
6.2软件调试 (13)
七心得体会 (13)
八参考文献 (14)
九附录....................................................................................... 1 5整体电路图 (15)
源程序清单 (16)
产品图 (20)
元器件清单 (21)
基于单片机的8*8点阵汉字显示屏设计
第一章引言
摘要:本次字符显示器设计采用AT89C52单片机作控制器,12MHZ晶振,8*8点阵共阳LED
显示器,其中,P0作为字符数据输出口,P2为字符显示扫描输出口,第31脚(EA)接电
源,P1.0~P1.2口分别接开关K1、K2、K3,改变电阻(270*)的大小可改变显示字符的亮度,驱动用9012三极管。
关键字:AT89C52单片机 8*8点阵共阳LED显示器
1、设计目的
本课程的任务是使学生通过“汉字显示器”的设计过程,综合所学课程,掌握目前自动
化仪表的一般设计要求,工程设计方法,开发及设计工具的使用方法,通过这一设计实践过
程,锻炼学生的动手能力和分析,解决问题的能力;积累经验,培养按部就班,一丝不苟的
工作个对所学知识的综合应用能力。
2、设计任务及要求
1、设计一个简易数字电压表,检测电压0—5V,检测精度0.02V。
2、扩展到3路巡检。
3、有键盘电路。
4、有适当的抗干扰措施。
3、课程设计过程
1、独立完成系统设计,经指导老师同意进行具体方案实施。
2、独立完成软硬件系统调试。
3、软硬件仿真。
4、万能板焊接电路。
第二章汉字显示屏简介
2.1汉字显示屏的介绍
数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模
拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
2.2 汉字显示屏的基本结构及工作原理
AT89C51是一种带4 kB闪烁可编程可擦除只读存储器
(Falsh Programmable and Erasable Read OnlyMemory,FPEROM)的低电压、高性能CMOS型8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,能够进行1 000次写/擦循环,数据保留时间为10年。
他是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
因此,在智能化电子设计与制作过程中经常用到AT89C51芯片。
时钟电路由AT89C51的18,19脚的时钟端(XTALl及XTAL2)以及12 MHz晶振X1、电容C2,C3组成,采用片内振荡方式。
复位电路采用简易的上电复位电路,主要由电阻R1,R2,电容C1,开关K1组成,分别接至AT89C51的RST复位输入端。
LED点阵显示屏采用16×16共256个象素的点阵,通过万用表检测发光二极管的方法测试判断出该点阵的引脚分布,如图2所示。
我们把行列总线接在单片机的IO口,然后把上面分析到的扫描代码送人总线,就可以得到显示的汉字了。
但是若将LED点阵的行列端口全部直接接入89S51单片机,则需要使用32条IO口,这样会造成IO资源的耗尽,系统也再无扩充的余地。
因此,我们在实际应用中只是将LED点阵的16条行线直接接在P0口和P2口,至于列选扫描信号则是由4-16线译码器74HC154来选择控制,这样一来列选控制只使用了单片机的4个IO口,节约了很多IO资源,为单片机系统扩充使用功能提供了条件。
考虑到P0口必需设置上拉电阻,我们采用4.7 kΩ排电阻作为上拉电阻。
汉字扫描显示的基本过程是这样的:通电后由于电阻R1,电容C1的作用,使单片机的RST复位脚电平先高后低,从而达到复位;之后,在C2,C3,X1以及单片机内部时钟电路的作用下,单片机89C51按照设定的程序在P0和P2接口输出与内部汉字对应的代码电平送至LED点阵的行选线(高电平驱动),同时在P1.1,P1.2,P1.3,P1.4接口输出列选扫描信号(低电平驱动),从而选中相应的象素LCD发光,并利用人眼的视觉暂留特性合成整个汉字的显示。
第三章总体方案设计
单片机控制的时钟电路,根据不同的要求有不同的设计思路,根据我们现在的水平和现有的设计能力,我们选择了比较简单的那种电路,但是,也是有两种可以选择的方案。
方案一:
显示预先想要显示的内容,在本设计中要求显示“电子设计”四个文字,显示方式分三种:①逐字显示,②向上滚动显示,③向左滚动显示。
本程序中显示前两中.
方案二:
在8X8LED点阵上显示柱形,让其先从左到右平滑移动三次,其次从右到左平滑移动三次,再次从上到下平滑移动三次,最后从下到上平滑移动三次,如此循环下去。
方案三:
点阵LED扫描介绍:点阵LED一般采用扫描式显示,实际运用分为三种方式:
(1)点扫描(2)行扫描(3)列扫描
若使用第一种方式,其扫描频率必须大于16*64=1024Hz,周期小于1ms即可。
若使用第二种和第三种方式,则频率必须大于16*7=128Hz,周期小于7.8ms即可符合视觉暂留要求。
此外一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则亮度会不足。
根据烧入程序的不同而显示的方式就不同.
显示屏在设计与使用中存在如下问题:
1.由于要对显示屏上数以万计的像素进行控制,并且随着显示屏面积的增大,电路结构也非常庞大,因此系统的模块化设计成为重点考虑的问题.
2.为了在屏上显示动画,视频图像等信息,显示系统必须用30帧/秒以上的速度来更新显示画面,这就要求显示系统有非常高的处理速度.
3.为了在显示屏上细致的显示出信息所表示的形状,一般每帧有多至几百KB的显示数据送到显示屏,因此有非常大的数据传输量.
4.用LED器件制造的显示屏主要用于大型公共设施和室外场所,尺寸通常在几米到几十米长,显示数据传输距离达几百米到千米以上.
有上文可以看到LED显示屏的制造技术是集大容量的数据传输,高速处理,高速LED控制,超高亮度LED器件等技术于一体,涉及了计算机,信息,电子技术,色彩学等领域的综合产物,有着较高的技术难度和较大的生产工作量.
对于上文所述的难点有以下解决方案:
1.总体设计采用集散控制方案,在统一协调的基础上来进行分级递阶控制,并通过功能分散,危险分散来达到设计的优化.
2.化整为零,将显示屏分解为规模较小的显示单元,即用显示单元来组成显示系统.
3.显示单元本身具有与显示屏相同的控制功能,并具有良好的嵌入性.
4.显示单元具备稳定,高速,简洁的长距离数据传输系统.
5.显示单元组成的显示系统应结构简单,性能稳定.
本设计思路是:利用单片机对整个系统进行总体控制,进行显示所要显示的字符。
显示方式分为三种:逐字显示、上滚显示、左滚显示,其中显示字模数据由单片机输入显存,点阵的点亮过程有程序控制,由驱动电路完成,点阵采用单色显示,该显示器电路的特点是:点阵的动态显示过程占用时间比较短,亮度比较高,而且亮度可以改变电阻进行调节。
系统的总体设计框图
第四章硬件部分的设计
本字符显示器采用AT89C52单片机作控制器,12MHZ晶振,8*8点阵共阳LED显示器,其中,P0作为字符数据输出口,P2为字符显示扫描输出口,第31脚(EA)接电源,P1.0~P1.2口分别接开关K1、K2、K3,改变电阻(270*)的大小可改变显示字符的亮度,驱动用9012三极管。
4.1 AT89C51内部结构概述
1 一个8位的CPU
2 128B或256B单元内数据存储器(RAM)
3 4KB或8KB片内程序存储器(ROM或EPROM)
4 4个8位并行I/O接口P0~P3。
5 两个定时/计数器。
6 5个中断源的中断管理控制系统。
7 一个全双工串行I/O口UART(通用异步接收、发送器)
8 一个片内振荡器和时钟产生电路。
4.2 P0-P3口结构
P0口功能:P0口具有两种功能:第一,P0口可以作为通用I/O接口使用,P0.7—P0.0用于传送CPU的输入/输出数据。
输出数据时可以得到锁存,不需外接专用锁存器,输入数据可以得到缓冲。
第二,P0.7—P0.0在CPU访问片外存储器时用于传送片外存储器de低8位地址,然后传送CPU对片外存储器的读写
P1口功能:P1口的功能和P0口de第一功能相同,仅用于传递I/O输入/输出数据。
P2口的功能:P2口的第一功能和上述两组引脚的第一功能相同,即它可以作为通用I/O使用。
它的第二功能和P0口引脚的第二功能相配合,作为地址总线用于输出片外存储器的高8位地址。
P3口功能:P3口有两个功能:第一功能与其余三个端口的第一功能相同;第二功能作控制用,每个引脚都不同。
表2.1 P3口第二功能
如图所示
4.3时钟电路和复位电路
单片机的时钟信号用来提供单片机内各种微操作的时间基准;复位操作则使单片机的片内电路初始化,使单片机从一种确定的状态开始运行。
1. 时钟电路
单片机的时钟信号通常用两种电路形式得到:内部振荡和外部振荡方式。
图2 内部振荡电路
图2.1 外部振荡电路
2 复位电路
当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。
上电复位要求接通电源后,自动实现复位操作。
图2.2 上电复位
图2.3 开关复位
上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。
上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。
当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。
4.4显示电路
从图中可以看出,8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如上图所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:
一根竖柱:对应的列置1,而行则采用扫描的方法来实现。
一根横柱:对应的行置0,而列则采用扫描的方法来实现。
第五章系统软件的设计5.1主程序
在刚上电时对系统进行初始化,然后读一次键开关状态,由键标志位值(00H、01H、02H)决定显示的方式。
主程序流程图如下(整体电路图见附录1)
主程序流程图
主程序清单:
;* 主程序 *
CLEARMEN: MOV A,#0FFH
MOV P1,A
MOV P2,A
MOV P3,A
MOV P0,A
MOV DPTR,#TAB
CLR A
MOV R3,A
MOV R1,#50H
MOV R2,#20H
CLLOOP: MOVC A,@A+DPTR
START: LCALL CLEARMEN
5.2 显示子程序
在系统初始化时,对四个端口进行复位,将显示用的字符数据从ROM表中装入内存单元50H—6FH中。
“电子设计”中的每个字占用8个地址单元。
(3)显示程序
显示程序由显示主程序和显示子程序写成。
显示主程序负责每次显示时的显示地址首址(在B寄存器中)、每个字的显示时间(由30H中的数据决定)和下一个显示地址的间隔(31H 中的数据决定)的处理。
显示子程序则负责对指定8个地址单元的数据进行输出显示,显示一个完整文字的时间约为8ms。
在显示子程序中,1ms延时程序是用调用键扫描子程序的方
法实现的。
下图为逐字显示及向上滚动显示方式时的显示控制程序流程图;
显示程序清单:
DISP1: MOV B,#50H
MOV R4,30H
MOV R5,31H
LOOP: LCALL DISPLAY
DJNZ R4,LOOP
MOV R4,30H
MOV A,B
CJNE A,#68H,CONT
AJMP DISP1
CONT: ADD A,R5
MOV B,A
AJMP LOOP
DISPLAY: MOV A,#0FFH
MOV P0,A
MOV P2,A
MOV R6,#0FEH
MOV R0,B
MOV R7,#08H
DISLOOP: MOV A,@R0
MOV P0,A
MOV P2,R6
LCALL DL1MS
INC R0
MOV A,R6
RL A
MOV R6,A
DJNZ R7,DISLOOP
RET
数字电压表程序清单(见附录2)
第六章系统的调试
完成了系统的硬件设计,制作和软件编程之后,要使系统能够按设计意图正常运行,必须进行系件和软件调统调试。
调试分了硬试
6.1 硬件的调试
硬件调试的主要任务是排除硬件故障,其中包括设计的错误和工艺性故障等。
1.检查所设计的硬件电路板所有的器件和引脚是否正确,尤其是电源的连接是否正确;检查各总线是否有短路的故障。
检查开关/按键是否正常,是否连接正确,为了保护芯片,应先对各IC座电位进行检查,确认无误后再插入芯片。
a.第一步,我们用数字万用表进行了逐一对点的检查,检查各导线间是否有短路与开路的故障。
(检测导线导通-连接无误)
b.第二步测输入5V电源(0V地)线是否与电路中的对应点的电源(地)线相连接是否正确;及检查开关/按键是否正常,是否连接正确。
(检测导线导通-连接无误-按键正常)c.测芯片管座与芯片管座之间用导线连接起来的对应脚是否导通与截止。
(检测对应脚的导线连接导通-连接正常)
2.将40芯片的仿真插头插入单片机插座进行调试,检查各接口是否满足设计的要求,有正常的程序测试硬件电路的好坏。
3.将显示子程序经过keill软件仿真生成(.hex)文件,用编程器将生成的(.hex)文件
写入AT89C51芯片。
4.将写入显示程序的芯片AT89C51插入硬件电路单片机管座,观看显示电路的4路数码管是否正常发光。
【数码管发光正常-电路能运行】
5.将整机程序生成的(.hex)文件写入AT89C51芯片,插入单片机插座进行调试,检查各接口是否满足设计的要求,有正常的程序测试硬件电路的好坏。
当我们把前几步准备工作都做完以后通电进行总调。
(硬件调试结果见附录4)
6.2 软件的调试
软件调试的任务是利用开发工具进行在线仿真调试,发现和纠正程序的错误,同时也能发现硬件的故障。
软件调试是一个模块一个模块进行的。
首先单独调试各子程序是否能够按照预期的功能,接口电路的控制是否正常。
最后调试整个程序。
尤其注意的是各模块间能否正确的传递参数。
1. 检查点阵显示模块程序。
观察在点阵上是否能够显示相应的字符。
2. 检查按键模块程序。
(软件调试结果见附录4)
七、心得体会
经过将近两周的单片机设计实训,终于完成了数字电压表的设计,这次设计基本达到设计要求,这是我们团队合作的结果,在这次实训中我们分工合作,发挥团队精神最后完成了设计。
看着设计出来的产品内心无比高兴,同时通过这次的实训我也明白了很多。
在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计让我增长很多知识。
对于这次的单片机设计,是把硬件和软件结合起来的设计,这也是我们第一次做这样的硬软件结合的设计。
在这次设计中,其硬件电路是比较简单的,但也需要足够的耐心加细心,同时也需要一定的硬件知识基础。
只有这样才能保证电路的成功。
而且在这次设计中硬件是基础,只有把基础打好才会有更高的设计。
硬件工作完成了就是解决程序设计的问题,程序设计是一个很灵活的东西,它反映了我们解决问题的逻辑思维和创新能力,它是一个设计的灵魂所在。
因此在整个设计过程中大部分时间是用在程序上面的。
很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对单片机的结构很熟悉。
通过我们努力和老师的指导最终完成了程序设计。
要设计一个成功的电路,必须要有耐心,要有坚持的毅力。
在整个电路的设计过程中,花费时间最多的是各个单元电路的连接及电路的细节设计上,如在多种方案的选择中,我们仔细比较分析其原理以及可行的原因。
这就要求我们对硬件系统中各组件部分有充分透彻的
理解和研究,并能对之灵活应用。
通过这次实训,我在书本理论知识的基础上又有了更深层次的理解。
在两周的实训中,收获知识的同时,还收获了阅历,收获了成熟与合作。
我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考的能力还培养了动手操作能力。
更重要的是我们学会了学习的方法,这是日后最实用的。
面对社会的挑战,只有通过不断的学习和实践才能完成知识的积累,才能更好的提高自己取得更好的成绩。
八、参考文献
1、李全利《单片机原理及应用技术》 [M] 北京:等教育出版社 2008年
2、蔡明文冯先成《单片机课程设计》 [M] 北京:华中科技大学出版社 2007年12月
3、李秀忠《单片机应用技术》 [M] 北京:人民邮电出版社 2007年3月
4欧阳文《ATMEL89系列单片机的原理》 [M] 北京:中国电力出版社2007年
源程序清单
;中断入口程序;
;************;
ORG 0000H
LJMP START
ORG 0003H
RETI
ORG 000BH
RETI
ORG 0013H
RETI
ORG 001BH
RETI
ORG 0023H
RETI
ORG 002BH
RETI
CLEARMEN: MOV A,#0FFH
MOV P1,A
MOV P2,A
MOV P3,A
MOV P0,A
MOV DPTR,#TAB
CLR A
MOV R3,A
MOV R1,#50H
MOV R2,#20H
CLLOOP: MOVC A,@A+DPTR
START: LCALL CLEARMEN START1: LCALL KEYWORK
KEYWORK: MOV P1,#0FFH JNB P1.0,KEY1
JNB P1.1,KEY2
JNB P1.2,KEY3
KEYRET: RET
KEY1: LCALL DL10MS
JB P1.0,KEYRET
WAIT: JNB P1.0,WAIT
LCALL CLEARMEN
MOV 30H,#80H
MOV 31H,#08H
LJMP DISP1
KEY2: LCALL DL10MS
JB P1.1,KEYRET WAIT1: JNB P1.1,WAIT1 LCALL CLEARMEN MOV 30H,#14H
MOV 31H,#01H
LJMP DISP1
KEY3: LCALL DL10MS
JB P1.2,KEYRET WAIT2: JNB P1.2,WAIT2 LCALL CLEARMEN LJMP DISP2 DISP1: MOV B,#50H
MOV R4,30H
MOV R5,31H LOOP: LCALL DISPLAY
DJNZ R4,LOOP
MOV R4,30H
MOV A,B
CJNE A,#68H,CONT AJMP DISP1 CONT: ADD A,R5
MOV B,A
AJMP LOOP DISPLAY: MOV A,#0FFH
MOV P0,A
MOV P2,A
MOV R6,#0FEH
MOV R0,B
MOV R7,#08H DISLOOP: MOV A,@R0
MOV P0,A
MOV P2,R6
LCALL DL1MS
INC R0
MOV A,R6
RL A
MOV R6,A
DJNZ R7,DISLOOP RET
DISP2: LCALL DISPP
LCALL MOVH
AJMP DISP2 DISPP: MOV B,#50H MOV R4,#24H LCALL DISPLAY DJNZ R4,DISPP RET
MOVH: MOV R1,#20H MOV R0,#50H MOV R2,#08H MOV1: MOV A,@R0
CLR C
RLC A
MOV @R0,A
MOV A,@R1
RRC A
MOV @R1,A
INC R0
DJNZ R2,MOV1 MOV R2,#08H INC R1
MOV A,R1
SUBB A,#24H JZ OUT
AJMP MOV1 OUT: RET
MOVH1: MOV A,20H
XCH A,23H
XCH A,22H
XCH A,21H
MOV 20H,A
MOV R1,#20H MOV R0,#50H MOV2: MOV A,@R0
RR A
MOV @R0,A
MOV A,@R1
CLR C
RRC A
MOV A,@R0
RLC A
MOV @R0,A
INC R0
DJNZ R2,MOV2
INC R1
MOV A,R1
SUBB A,#24H
JZ OUT
AJMP MOV2
DL1MS: MOV R3,#64H ;100*(8+2)us
LOOPK: LCALL KEYWORK
DJNZ R3,LOOPK
RET
DL512: MOV R2,#0FFH
LOOP1: DJNZ R2,LOOP1
RET
DL10MS: MOV R3,#14H
LOOP2: LCALL DL512
DJNZ R3,LOOP2
RET
TAB: DB 0EFH,83H,0ABH,83H,0ABH,83H,0EEH,0E0H ; 电 DB 0FFH,0C7H,0EFH,83H,0EFH,0EFH,0CFH,0EFH ; 子 DB 0B1H,0B5H,04H,0BFH,0B1H,0B5H,9BH,0A4H ; 设 DB 0BBH,0BBH,1BH,0A0H,0BBH,0BBH,9BH,0BBH ; 计 DB 00H,00H,00H,00H
END
附录4
元器件清单。