基于单片机的广告灯课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计报告书
课题名称 基于单片机的广告灯课程设计
姓 名
学 号
院 系 专 业
※※※※※※※※※ ※
※ ※
※ ※
※
2008级学生单片机
课程设计
指导教师
2011年 6月10日
基于单片机的广告灯课程设计
1、设计目的
本设计以AT89S51单片机为核心并用它来控制发光二极管双灯点亮循环的实验装置,用AT89S51单片机控制16个发光二极管发光,实现亮点从高到低位,从左到右,从单到双的循环移动。通过PROTEL软件设计、仿真,并能从中掌握通过软件控制发光二极管的思路和技巧。这次设计重点就在于利用单片机的知识去控制系统的运行。
2、设计要求
1)广告流水灯具有控制的功能。
2)设置一个系统使广告流水灯能够规律性和周期性的闪烁功能。
3)能够使其制动化和中断的功能。
3、设计总框图与方案
图3.1系统框图
本次课程设计是用流水灯的变化来表示不同的效果。主体选用AT89S51单片机使用多个发光二极管,通过编程来实现“流水灯”的花样变化。
4、硬件电路的设计
4.1系统电路图
图4.1 广告灯的硬件原理电路图
这个电路图中都为低电位亮,高电位灭即‘0’亮‘1’灭,就这样通过查表控制‘0’与‘1’的变化来控制发光二极管的亮灭。中断中也是如此,通过取反的手段来控制灯的亮灭。按照图4.1进行仿真,通过编程来实现“流水灯”的花样变化。AT89S51的P1、P3口分别接一组发光二极管,发光二极管另一端接电源输出,故为高电平。P1、P3口输出电平的变化控制二极管的发光情况。当P1、P3口的输出电平为低时,LED灯亮;反之,不亮。
5、软件设计
5.1 流程图与程序
图5.1程序总流程图
本实验流程中,用AT89S51单片机控制16个发光二极管发光。其中二极管一端接高电平,另一端接AT89S51芯片输出端口,通过控制各输出端口高低电平的变化决定二极管是否发光,从而使广告流水灯能够规律性和周期性地分别实现一
个亮灯的左右移动、一个不亮灯的左右移动、灯的从两边到中间及单双等交替闪烁等花样变化。
6、系统仿真
在Proteus的ISIS 7.1sp2软件环境下画出电路原理图,接下来就是将设计的程序在Keil C51 μVision2开发集成环境上编译成机器语言,进入Proteus 的ISIS,鼠标左键点击菜单“Debug”,选中“use romote debuger monitor”,便可实现KeilC与Proteus连接调试。首先在Proteus中双击单片机AT89C51,将KeilC下编程生成的 .HEX文件导入到AT89C51中,可在Proteus中单击全速仿真运行按钮,进行现象的查看,能清楚地观察到芯片上每一个引脚的电平变化,红色代表高电平,蓝色代表低电平;如果现象不正确,则在KeilC中单步调试程序,并在Proteus观察现象,那一步不正确则对该段的程序进行修改,调试直到仿真完全成功为止。
图6.1 Proteus软件环境下画出电路原理图
图6.2效果一
实现一个灯的左右移同时通过中断控制下面8个发光二极管的单双亮灭。
图6.3效果二
实现一个不亮的灯左右移同时通过中断控制下面8个发光二极管的单双亮灭。
图6.4效果三
实现灯从两边到中间,从中间到两边的点亮同时通过中断控制下面8个发光二极管的单双亮灭。
图6.5效果四
实现单位到双位,从双位到单位的点亮同时通过中断控制下面8个发光二极管的单双亮灭。
7、使用说明
按照图6-1进行仿真,主体选用AT89S51单片机使用多个发光二极管,通过编程来实现“流水灯”的花样变化。AT89S51的P1、P3口分别接一组发光二极管,发光二极管另一端接电源输出,故为高电平。P1、P3口输出电平的变化控
制二极管的发光情况。当P1、P3口的输出电平为低时,LED灯亮;反之,不亮。
8、设计总结
在这次单片机课程设计过程中,我用了两周时间去学习软件和电路设计,进一步巩固了以前所学,培养了自己独立设计电子电路的能力,更加懂得了只有实践才能进一步提高能力,当然在这过程中遇到了很多困难,但通过自己不断的查找资料,和同学讨论,逐渐的形成了自己的思路,通过本次实习,收获了很多。
通过本次课程设计进一步掌握和理解以前所学的基础课程和基本原理。本次课程设计提高了我分析问题解决问题和独立进行思考设计的能力。熟悉了单片机AT89S51模块的功能。
在老师与同学们的帮助下这次课程设计让我受益匪浅,也拉近了同学与老师之间的距离。
参考文献
[1] 徐益民,范红刚,苏凤武.零基础学AVR单片机—基于ATmega16、汇编及C语言[M].北京:机械工业出版社,2011: 138-157
[2] 彭伟.单片机C语言程序设计实训100例—基于AVR+Proteus仿真[M].北京:北京航空航天大学出版社,2010: 213-221
3] 秦志强,彭建盛,谭立新.AVR单片机与小型机器人制作[M].北京:电子工业出版社,2009:72-93
[4] 黄智伟.全国大学生电子设计竞赛训练教程[M].北京:电子工业出版社,2005: 348-371
[5] 顾德英,张健,马淑华. 计算机控制技术[M]. 北京:北京邮电大学出版社,2006:64--70
[6] 夏扬. 计算机控制技术[M]. 北京:机械工业出版社,2004:11--92
[7] 刘国钧,陈绍业,王凤翥.图书馆目录[M].北京:高等教育出版社,1957:15-18.
[8]张毅刚,彭喜源,谭晓昀,曲春波.MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,1997:53-61.
[9]李建忠.单片机原理及应用[M].西安:西安电子科技大学出版,2002:63-78.
[10]张俊谟.单片机中级教程[M].北京:北京航空航天大学出版,2000:36-45.
附录A 程序清单
ORG 00H
Ljmp START1
Org 0bh
Ljmp TIME0 ; 跳至TIME0中断
START1: MOV SP,#70H
MOV P3,#01010101B
MOV TMOD,#00000001B
MOV TH0,#HIGH(65536-10000)
MOV TL0,#LOW(65536-10000)
SETB TR0
MOV IE,#10000010
MOV R7,#100 ;设中断100次即1秒
START: MOV A,#0FEH
MOV R2,#07H
LOOP: RL A ;亮灯左移
MOV P1,A
LCALL DELAY
DJNZ R2,LOOP
MOV R2,#07H