LED滚动字幕的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息工程学院
课程设计报告
设计题目: 基于单片机LED滚动字幕的设计名称: 电子信息专业综合课程设计
班级: 电子1201班
姓名: 代冠锋2012013646
孙学成2012013668
设计时间: 2014/6/5 至2014/6/20
指导教师: 王本有
评语:
评阅成绩: 评阅教师:
一、课程设计的性质和目的
通过课程设计,进行硬软件设计的方法和技能训练,巩固在课堂上学到的有关硬件电路设计和相应程序设计的基本知识和基本方法,通过具体课题的训练,达到能独立阅读、查阅资料、软硬件设计和调试完善特定功能的目的。
二、课程设计的要求
1、遵循硬件设计模块化。
2、要求通过自制PCB板、或万能板、或面包板设计实物。
3、程序设计结构化。
4、要求程序结构合理,程序简明易懂,有必要的注释。
三、主要仪器设备及软件
PC机、Keil软件、、ALTIUM DESINGERS09(PROTEL99)、Proteus绘图软件及仿真等。
四、课程设计题目及要求
具体课题 :基于单片机LED汉子滚动字幕的设计
地点:信息工程学院实验室
元器件领用:由指导教师签字在行政楼301领取
时间安排:每天集中半天的辅导
五、课题分析及设计思路
1、课题分析
单片机是一种集成微处理芯片,高密度集成了普通计算机的微
型处理器,具有8kb的ROM和P0、P1、P2、P3输入输出接口,且集成了定时器等电路。自其问世以来就因性价比极高而广受欢迎:其因价格低廉、功能强大、对环境要求低、编程简易方便、灵活而广泛应用在一些工控机和智能化仪表装置里面。LED点阵显示屏就是其一种常见的运用。
自从改革开放以来,人们的生活水平日渐提高。纯粹的物质需求已经不能满足人们的需要。人们对信息的渴求也越来越强烈。广告已经成为人们获取信息重要的一部分。LED显示屏有图文显示屏和视频显示屏两种。其中图文屏可以显示单色或者彩色的简单图形、文字,广泛应用在医院、火车站、学校教学楼、小型门店等场所;视频显示屏通过上位机控制,能实时的显示视频、实况转播等,多用在足球场、大型会客厅等场所。而且,不同尺寸规格和亮度的LED为室内和室外信息显示提供了多种选择。
LED之所以收到广泛的欢迎和应用,跟它的多项优点是分不开的。其概括起来主要是:成本低、体积小、亮度高、设计简单、需要电压低、功耗小、耐冲击、稳定、寿命长。现在LED正在向着更小体积、更大点阵密度、更多色彩和更小成本发展。
由于LED技术的快速发展,有很多已经超出在校生所接触到的知识范围,所以本设计旨在利用最简单主要的单色屏显示演示LED屏的工作过程和原理,并实现其显示内容的滚动效果。可以通过更改程序中的点阵字库来改变所需要显示的内容。且该设计具有较好的扩展性,要使其能同时显示更多的内容,只需要再接通上相应数量的点阵屏模块即可。还可以通过修改烧录在单片机ROM的程序内容来实现更多的动态效果如缩放、文字切入等。
2、设计思路
毕业设计是考察学生完成本专业教学培养目标的重要环节,是整个教学计划中综合性最强的实践性教学环节,它对于培养学生的正确思想和工作学习作风,提高学生综合应用专业知识和分析解决实际问
题的综合能力,达到工程技术人员所必备的基本素质等方面具有重要的意义。
该设计借助单片机AT89S52使LED显示屏实现滚动显示汉字的方法。研究Proteus软件在LED汉字滚动显示器和仿真中的应用,研究Keil软件编译和调试程序,并制作出LED滚动汉字显示屏。
该设计的理论基础是单片机技术与应用基础,微机原理,模拟电子技术及数子电子技术。比如AT89S52芯片的一些工作原理是在MCS51的基础上加以改进完成的。8255芯片的工作方式曾在微机原理课程中介绍的。74LS154和三极管的工作原理也分别在数子和模拟电路课程中介绍过。
(1)硬件设计
○1硬件设计框图
○2硬件设计电路图
单片机处理模块
复位电路
晶振电路
动态扫描电路
(2)软件设计
软件中的程序设计一般主要由开始、初始化程序、主程序及字库组成。
在设计主程序中,同一帧反复扫描次数的设定就决定了汉字显示移动的速度。延时程序非常重要,这就要涉及到之前所说的屏幕刷新率的问题了,如果设置不当,则会产生汉字不停闪烁。只要刷新速率不小于25帧/秒,就不会有闪烁的感觉。
○1主程序设计
主程序调用了两个重要的子函数,即显示子函数和移位子函数。显示子函数的功能是让LED显示屏的显示指针指向自摸数组的数据,而移位子函数的功能是让指针所指的地址加2,从而实现汉字向左移动一列的效果。整个主程序开始运行后先初始化指针所指向的地址,让指针指向字库首地址,再设定变量tmp初值为0,用tmp的值来控制显示函数的重复次数,从而达到显示汉字的移动速度的目的。当tmp没有达到设定值时不断重复显示子函数,此时显示屏上显示的是
一个静止不动的汉字,直到tmp达到设定值,调用子函数将指针地址加2,使指针位置指向第二列,然后重新从tmp的初始化开始执行,这样显示屏幕上将会出现一个不断由右向左移动,流程如图所示。
○2显示程序
显示子程序的执行过程主要是单片机I/O口对外传输数据的过程。程序在设计时,首先设定一个局部变量col,并将其初始值设置为0,设置该变量的目的是确定扫描的行数,以便控制I/O口发送相应的字模数据。若col值小于15说明正在扫描显示屏上的某一行,P1口送出相应的行扫描命令到74LS138芯片经译码后来控制相应的行数。然后P2口送出相应的高、低八位字模数据,最后关闭列控制以防止残影出现,影响整体效果。之后对col进行自己加1完成一个循环。当col>15时说明16行已全部扫描完毕,此时显示屏将出现一个完整的汉字,程序执行完毕,流程如下图所示。
否