基于单片机的广告灯课程设计

基于单片机的广告灯课程设计
基于单片机的广告灯课程设计

单片机课程设计报告书

课题名称

基于单片机的广告灯课程设计

姓 名 学 号 院 系 专 业 指导教师 2011年 6月10日

※※※※※※※※ ※※

※※

※※ 2008级学生单片机 课程设计

基于单片机的广告灯课程设计

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,#

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

LOOP1: RR A ;亮灯右移

MOV P1,A

LCALL DELAY

DJNZ R2,LOOP1

MOV A,#01H

MOV R0,#07H

LOOP2: RL A ;不亮灯左移

MOV P1,A

LCALL DELAY

DJNZ R0,LOOP2

MOV R0,#07H

LOOP3: RR A ;不亮灯右移 MOV P1,A

LCALL DELAY

DJNZ R0,LOOP3

LOOP4: MOV DPTR,#TABLE

LOOP5: CLR A

MOVC A,@A+DPTR ;查表

CJNE A,#01H,LOOP6

LJMP START

LOOP6: MOV P1,A

LCALL DELAY

INC DPTR

JMP LOOP5

DELAY: MOV R3,#20

D1: MOV R4,#20

D2: MOV R5,#248

DJNZ R5,$

DJNZ R4,D2

DJNZ R3,D1

Ret

TIME0: PUSH ACC

PUSH PSW

MOV TH0,#HIGH(65536-10000)

MOV TL0,#LOW(65536-10000)

DJNZ R7,LOOP7 ;中断100次?足则到 LOOP7

MOV R7,#100;

CPL P3.0

CPL P3.1

CPL P3.2

CPL P3.3

CPL P3.4

CPL P3.5

CPL P3.6

CPL P3.7

LOOP7: POP ACC

POP PSW

RETI

TABLE: DB 01111110B,B,B,B

DB B,B,01111110B,B

DB 01010101B

DB 01H

END

以上程序实现亮灯左右移,不亮灯左右移,从两边到中间、从中间到两边亮,从单位灯到双位灯、从双位到单位亮;在进行这些花样同时伴随中断控制的8个灯从单位灯到双位灯、从双位到单位亮。

这个电路图中都为低电位亮,高电位灭即‘0’亮‘1’灭,就这样通过查表控制‘0’与‘1’的变化来控制发光二极管的亮灭。中断中也是如此,通过取反的手段来控制灯的亮

灭。

相关主题
相关文档
最新文档