单片机广告灯
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息工程学院
课程设计报告
设计题目: 单片机广告灯设计
名称:电子信息专业基础课程设计
班级: 电子1102班
姓名: 姚旭李顶峰
学号: 2011013581 2011013562
设计时间: 2013.12.17 至2013.12.31
指导教师: 王祥青
评语:
评阅成绩: 评阅教师:
目录
第1章系统概述 (1)
1.1 设计目的和意义 (1)
1.2 设计的主要内容 (1)
第2章设计方案 (2)
2.1 方案实施所需的条件 (2)
2.1.1 软件条件 (2)
2.1.2 硬件或仿真条件 (2)
2.2 设计难点与解决方案 (2)
2.2.1 设计难点 (2)
2.2.2 解决方案 (2)
第3章软件设计 (3)
3.1 功能模块划分 (3)
3.2 各模块程序流程及代码 (4)
第4章目标系统 (8)
4.1 仿真系统运行演示 (8)
4.2 系统展望 (10)
参考文献 (11)
第1章系统概述
1.1 设计目的和意义
随着改革的不断深入,社会主义市场经济的不断繁荣和发展,个大中小城市都在进行亮化工程。个人企业为宣传自己企业的形象和产品,均采用广告手法之一:流水灯来实现这一目的.当我们夜晚走在大街上,马路两旁各色各样的流水灯广告均可以见到,一种是采用霓虹灯管做成的各种形状和多种彩色的灯管,另一种为日光等管或白炽灯管作为光源,另配大型广告语或宣传画来达到宣传的效果。这些灯的亮灭,闪烁时间及流动方向等均可以通过单片机来达到控制的要求.
在学习了《单片机技术》课程后,为了加深对理论知识的理解,学习理论知识在实际中的运用,培养动手能力和解决实际问题的能力。进一步理解和消化书本知识,运用所学知识和技能进行简单的设计。
1.2 设计的主要内容
生活中广告流水灯的形式和点亮的次序是多种多样的。有单一颜色的几个灯按固定的次序来点亮的,有多个不同颜色的灯构成某一图案依次点亮的,也有多排广告灯按多种组合好的次序循环点亮的等。我的设计就是这些广告灯中的最基本类型。
利用广告灯;AT89S51单片机,控制小灯的左移,右移,从中间到两边,从两边到中间,奇数亮等来控制小灯的花式,达到预定的广告效果!
第2章设计方案
2.1 方案实施所需的条件
2.1.1 软件条件
Keil uVision4
Proteus
2.1.2硬件条件
AT89C51单片机
2.2 设计难点与解决方案
2.2.1 设计难点
利用取表的方法,使端口P1做单一灯的变化:从左到右亮、从右向左、从两边到中间亮、从中间到两边、奇数亮偶数灭、偶数亮奇数灭…
2.2.2 解决方案
生活中广告流水灯的形式和点亮的次序是多种多样的。有单一颜色的几个灯按固定的次序来点亮的,有多个不同颜色的灯构成某一图案依次点亮的,也有多排广告灯按多种组合好的次序循环点亮的等。我的设计就是这些广告灯中的最基本类型。首先通过互联网看到有关流水灯的资料,一个程序让LED以不同的方式亮。分别是:左移,右移,从外向内亮,奇数亮,一直亮等。
第3章软件设计3.1 功能模块划分
电路原理图
图3.1电路原理图
图3-1 系统功能模块图3.2 各模块程序流程及代码
#include
#define uchar unsigned char
#define uint unsigned int
sbit P10=P1^0;
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
sbit P14=P1^4;
sbit P15=P1^5;
sbit P16=P1^6;
sbit P17=P1^7;
void main (void) //主程序
{ uint n;
while(1)
{ P1=0xff;P10=0; //从左到右亮 for(n=0;n<30000;n++);
P10=1;P11=0;
P11=1;P12=0;
for(n=0;n<30000;n++);
P12=1;P13=0;
for(n=0;n<30000;n++);
P13=1;P14=0;
for(n=0;n<30000;n++);
P14=1;P15=0;
for(n=0;n<30000;n++);
P15=1;P16=0;
for(n=0;n<30000;n++);
P16=1;P17=0;
for(n=0;n<30000;n++);
P17=1;P16=0; //从右到左亮
for(n=0;n<30000;n++);
P16=1;P15=0;
for(n=0;n<30000;n++);
P15=1;P14=0;
for(n=0;n<30000;n++);
P14=1;P13=0;
for(n=0;n<30000;n++);
P13=1;P12=0;
for(n=0;n<30000;n++);
P12=1;P11=0;
for(n=0;n<30000;n++);
P11=1;P10=0;
for(n=0;n<30000;n++);
P10=0;P11=1; //从左到右依次点亮 for(n=0;n<30000;n++);
P11=0;P12=1;
for(n=0;n<30000;n++);
P12=0;P13=1;
for(n=0;n<30000;n++);
P13=0;P14=1;
for(n=0;n<30000;n++);
P14=0;P15=1;
for(n=0;n<30000;n++);
P15=0;P16=1;
for(n=0;n<30000;n++);
P16=0;P17=1;
for(n=0;n<30000;n++);
P17=0;