单片机广告灯

                                                                                                                                                         

设计题目:     单片机广告灯设计      

名    称:   电子信息专业基础课程设计    

班    级:       电子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  <reg51.h>

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

         for(n=0;n<30000;n++);

      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;

         for(n=0;n<30000;n++);

      P1=0xff;                         //从右到左依次点亮

            for(n=0;n<30000;n++);          

      P17=0;P16=1;              

         for(n=0;n<30000;n++);

      P16=0;P15=1;

         for(n=0;n<30000;n++);

      P15=0;P14=1;    

         for(n=0;n<30000;n++);

      P14=0;P13=1;

         for(n=0;n<30000;n++);

      P13=0;P12=1;

         for(n=0;n<30000;n++);

      P12=0;P11=1;

         for(n=0;n<30000;n++);

      P11=0;P10=1;

         for(n=0;n<30000;n++);

       P10=0;

         for(n=0;n<30000;n++);

     P1=0xff;                       //从两边到中间亮

         for(n=0;n<30000;n++);

     P10=0;P17=0;              

         for(n=0;n<30000;n++);

     P11=0;P16=0;

     P10=1;P17=1;

         for(n=0;n<30000;n++);

     P12=0;P15=0;

     P11=1;P16=1;

       for(n=0;n<30000;n++);

     P13=0;P14=0;

     P12=1;P15=1;

      for(n=0;n<30000;n++);

     P1=0xff;                  //从中间到两边

        for(n=0;n<30000;n++);

     P13=0;P14=0;             

        for(n=0;n<30000;n++);

     P12=0;P15=0;

     P13=1;P14=1;

        for(n=0;n<30000;n++);

     P11=0;P16=0;

     P12=1;P15=1;

        for(n=0;n<30000;n++);

    P10=0;P17=0;

    P11=1;P16=1;

      for(n=0;n<30000;n++);

     P1=0Xff;                   //偶数亮,奇数不亮

          for(n=0;n<30000;n++);

    P10=0;P12=0;P14=0;P16=0;

    P11=1;P13=1;P15=1;P17=1;

           for(n=0;n<34000;n++);

    P10=1;P12=1;P14=1;P16=1;      //奇数亮,偶数不亮

    P11=0;P13=0;P15=0;P17=0;

           for(n=0;n<34000;n++);

     P1=0X00;                    //长亮

          for(n=0;n<40000;n++);

   }

  }

第4章  目标系统

4.1  仿真系统运行演示

偶数亮,如图4.2

图4.2

奇数亮,如图4.3

图4.3

从中间向两边从两边向中间,如图4.4

图4.4

连续闪亮,如图4.5

图4.5

4.2            系统展望

在现在诸多的娱乐场所、理发店、宾馆、饭店、公司等的门外,都可以看到各式各样的广告流水灯。所谓“广告流水灯”,就是将一系列的有颜色的广告灯串联接在一起,然后令这些灯按一定的次序逐个或者几个的一次点亮和熄灭。由于各灯点亮和熄灭,产生的效果就像流动的水一样,因此,就称这类广告灯为“广告流水灯”。生活中广告流水灯的形式和点亮的次序是多种多样的。有单一颜色的几个灯按固定的次序来点亮的,有多个不同颜色的灯构成某一图案依次点亮的,也有多排广告灯按多种组合好的次序循环点亮的等。我设计的广告流水灯,就是这些广告灯中的类型。

当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。在大学学习期间,完成了前期的单片机基础知识学习以后,从大三开始将理论学习和实践相结合,逐步完成了一些系统的设计与制作。但以前在制作课件时只是学一点做一点,没有系统的总结经验。此次的论文撰写我们认真对以前的单片机应用过程中的问题进行了回顾和总结,使自己的经验得到了理论上的升华,这些都将是自己今后进一步发展的宝贵财富。

为了实现用单片机对广告灯实现控制,我们用单片机着手对广告灯进行编程,画出接线图、流程图和写出指令表再运行程序,然后根据实际情况对程序进行调试与完善。在这次的课程中,发现单片机在工业控制中的作用很大,它能使人的控制转变成自动控制,大大地降低了产品的成本,很大地提高生产效率。


参考文献

[1] 赵志刚.吴海滨《Protel DXP 实用教程(修订本)》.清华大学出版社.北京交通大学出版社2007年8月。

[2] 刘和平《PIC16F877X单片机实用软件与接口技术——C语言及其应用》.北京:航空航天大学出版社.20##年1月。

[3] 甘仞初,颜志军,杜晖,龙虹.《信息系统分析与设计》.北京:高等教育出版社.20##年6月。

[4] 吴洁明,袁山龙.《软件工程应用实践教程》.北京:清华大学出版社.20##年8月。

[5] 张毅刚. 单片机原理及接口技术.哈尔滨:哈尔滨工业大学出版社,1990

[6] 谭浩强.单片机课程设计. 北京:清华大学出版社,1989

[7] 张义,陈敌北.例说8051.人民邮电出版社

[8] 肖婧.单片机入门与趣味实验设计.北京:北京航空航天大学出版社,2008

[9] 胡汉才. 单片机原理及其接口技术.北京:清华大学出版社,2002

 

第二篇:4单片机广告灯的左移右移实验

4. 广告灯的左移右移

1. 实验任务

做单一灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0

亮,重复循环。

2. 电路原理图

4单片机广告灯的左移右移实验

图4.4.1

3. 系统板上硬件连线

把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……,P1.7对应着L8。

4. 程序设计内容

我们可以运用输出端口指令MOV P1,A或MOV P1,#DATA,只要给累加器值或常数值,然后执行上述的指令,即可达到输出控制的动作。 每次送出的数据是不同,具体的数据如下表1所示

4单片机广告灯的左移右移实验

4单片机广告灯的左移右移实验

表1 5. 程序框图

6. START: LOOP: LOOP1:

汇编源程序 ORG 0 MOV R2,#8 MOV A,#0FEH SETB C MOV P1,A LCALL DELAY RLC A DJNZ R2,LOOP MOV R2,#8 MOV P1,A LCALL DELAY RRC A DJNZ R2,LOOP1 LJMP START 4.4.2 图

DELAY:

D1:

D2:

MOV R5,#20 MOV R6,#20 MOV R7,#248 DJNZ R7,$ ; DJNZ R6,D2 DJNZ R5,D1 RET END

7. C语言源程序 #include <AT89X51.H> unsigned char i; unsigned char temp; unsigned char a,b;

void delay(void) {

unsigned char m,n,s; for(m=20;m>0;m--) for(n=20;n>0;n--) for(s=248;s>0;s--); }

void main(void) {

while(1)

{

temp=0xfe; P1=temp;

delay();

for(i=1;i<8;i++) {

a=temp<<i; b=temp>>(8-i); P1=a|b; delay(); }

for(i=1;i<8;i++) {

a=temp>>i; b=temp<<(8-i); P1=a|b; delay(); }

}

}

相关推荐