简易多彩广告灯控制设计资料.docx

上传人:b****3 文档编号:4799562 上传时间:2023-05-07 格式:DOCX 页数:26 大小:388.47KB
下载 相关 举报
简易多彩广告灯控制设计资料.docx_第1页
第1页 / 共26页
简易多彩广告灯控制设计资料.docx_第2页
第2页 / 共26页
简易多彩广告灯控制设计资料.docx_第3页
第3页 / 共26页
简易多彩广告灯控制设计资料.docx_第4页
第4页 / 共26页
简易多彩广告灯控制设计资料.docx_第5页
第5页 / 共26页
简易多彩广告灯控制设计资料.docx_第6页
第6页 / 共26页
简易多彩广告灯控制设计资料.docx_第7页
第7页 / 共26页
简易多彩广告灯控制设计资料.docx_第8页
第8页 / 共26页
简易多彩广告灯控制设计资料.docx_第9页
第9页 / 共26页
简易多彩广告灯控制设计资料.docx_第10页
第10页 / 共26页
简易多彩广告灯控制设计资料.docx_第11页
第11页 / 共26页
简易多彩广告灯控制设计资料.docx_第12页
第12页 / 共26页
简易多彩广告灯控制设计资料.docx_第13页
第13页 / 共26页
简易多彩广告灯控制设计资料.docx_第14页
第14页 / 共26页
简易多彩广告灯控制设计资料.docx_第15页
第15页 / 共26页
简易多彩广告灯控制设计资料.docx_第16页
第16页 / 共26页
简易多彩广告灯控制设计资料.docx_第17页
第17页 / 共26页
简易多彩广告灯控制设计资料.docx_第18页
第18页 / 共26页
简易多彩广告灯控制设计资料.docx_第19页
第19页 / 共26页
简易多彩广告灯控制设计资料.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

简易多彩广告灯控制设计资料.docx

《简易多彩广告灯控制设计资料.docx》由会员分享,可在线阅读,更多相关《简易多彩广告灯控制设计资料.docx(26页珍藏版)》请在冰点文库上搜索。

简易多彩广告灯控制设计资料.docx

简易多彩广告灯控制设计资料

 

科信学院

课程设计说明书

(2011/2012学年第二学期)

 

课程名称:

单片机应用课程设计

题目:

简易多彩广告灯控制设计

专业班级:

学生姓名:

学号:

指导教师:

王静爽王立国王书强等

设计周数:

2周

设计成绩:

2012年07月05日

1、课程设计目的

1.1原始数据及主要任务…………………………………………………………………2

1.2技术要求………………………………………………………………………………2

2、课程设计正文

2.1确定总体设计方案……………………………………………………………………2

2.2元器件介绍……………………………………………………………………………3

2.2.1STC90C52………………………………………………………………………3

2.2.2RS232…………………………………………………………………………4

2.2.3CD4511…………………………………………………………………………5

2.2.4共阴极数码管…………………………………………………………………6

2.2各部分电路设计

2.2.1单片机最小系统电路…………………………………………………………6

2.2.2多色彩广告灯闪烁控制电路…………………………………………………7

2.2.2.1设计数字显示电路…………………………………………………………7

2.2.2.2设计按键控制电路…………………………………………………………8

2.2.2.3设计LED灯显示电路电路…………………………………………………8

3、设计程序

3.1程序设计框图………………………………………………………………………9

3.2程序及注释…………………………………………………………………………9

4、设计图纸设计原理图附图

4.1设计原理图附图…………………………………………………………………16

4.2设计PCB附图……………………………………………………………………17

5、课程设计总结……………………………………………………………………………19

6、参考文献…………………………………………………………………………………20

 

1、课程设计目的

1.1原始数据及主要任务

设计并制作出一个以单片机为核心的彩灯闪烁控制系统:

(1)确定总体设计方案

(2)、设计键盘输入电路(3)、设计显示电路(4)、合理分配地址,编写系统程序(5)、利用Protel设计硬件电路原理图和PCB图(6)、软硬件联机调试

1.2技术要求

设计一个以MCS-51单片机为核心的简易多彩广告灯广告灯闪烁控制系统,2位数码管显示闪烁控制方案,分别显示01、02、03、和10号方案,初始化为00,彩灯灭;2个控制按键,一个加一数字键,一个确定键,循环10个花型的方案。

方案01为左循环亮一秒闪烁;方案02为右循环亮一秒闪烁;方案03为“100000000、11000000…11111111”递增间隔1秒闪烁;方案10为“01010101,10101010”间隔一秒闪烁;其余方案灯灭。

2、课程设计正文

2.1确定总体设计方案

2.2元器件介绍

2.2.1单片机STC90C52

 

 

VCC:

供电电压。

GND:

接地。

  

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据地址的低八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

  

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

  

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

 

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能,如P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。

 

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

  

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

  

/PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

 

/EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

  

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

 

XTAL2:

来自反向振荡器的输出。

2.2.2RS232

RS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(ElectronicIndustryAssociation)代表美国电子工业协会,RS(recommededstandard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。

它规定连接电缆和机械、电气特性、信号功能及传送过程。

常用物理标准还有有EIARS-422A、EIARS-423A、EIARS-485。

例如,目前在IBMPC机上的COM1、COM2接口,就是RS-232C接口。

2.2.3CD4511

CD4511是一个用于驱动共阴极LED(数码管)显示器的BCD码—七段码译码器,特点:

具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路,能提供较大的电流,可直接驱动LED显示器。

CD4511是一片CMOSBCD—锁存/7段译码/驱动器,引脚排列如图所示。

其中A、B、C、D为BCD码输入,A为最低位。

LT为灯测试端,加高电平时,显示器正常显示,加低电平时,显示器一直显示数码“8”,各笔段都被点亮,以检查显示器是否有故障。

BI为消隐功能端,低电平时使所有笔段均消隐,正常显示时,B1端应加高电平。

另外CD4511有拒绝伪码的特点,当输入数据越过十进制数9(1001)时,显示字形也自行消隐。

LE是锁存控制端,高电平时锁存,低电平时传输数据。

a~g是7段输出,可驱动共阴LED数码管。

限流电阻要根据电源电压来选取,电源电压5V时可使用300Ω的限流电阻。

功能介绍如下:

BI:

4脚是消隐输入控制端,当BI=0时,不管其它输入端状态如何,七段数码管均处于熄灭(消隐)状态,不显示数字。

LT:

3脚是测试输入端,当BI=1,LT=0时,译码输出全为1,不管输入DCBA状态如何,七段均发亮,显示“8”。

它主要用来检测数码管是否损坏。

LE:

锁定控制端,当LE=0时,允许译码输出。

LE=1时译码器是锁定保持状态,译码器输出被保持在LE=0时的数值。

A1、A2、A3、A4、为8421BCD码输入端。

a、b、c、d、e、f、g:

为译码输出端,输出高电平有效。

CD4511具有锁存、译码、消隐功能,通常以反相器作输出级,通常用以驱动LED。

各引脚的名称:

其中7、1、2、6分别表示A、B、C、D;5、4、3分别表示LE、BI、LT;13、12、11、10、9、15、14分别表示a、b、c、d、e、f、g。

左边的引脚表示输入,右边表示输出,还有两个引脚8、16分别表示的是GND、VCC。

 

2.2.4共阴极数码管

2.2各部分电路设计

2.2.1单片机最小系统电路

要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成。

单片机最小系统如图所示。

时钟电路:

本系统采用单片机内部方式产生时钟信号,用于外接一个6MHz石英晶体振荡器和2个22pF微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。

复位电路:

确定单片机工作的起始状态,完成单片机的启动过程。

单片机系统的复位方式有上电自动复位和手动按键复位。

本设计采用手动按键复位,该复位方式同样具有上电自动复位功能。

电路如下图所示。

时钟电路复位电路

2.2.2多色彩广告灯闪烁控制电路

2.2.2.1设计数字显示电路

本部分为数字显示电路,用CD4511驱动共阴极数码管,220Ω为限流电阻,由单片机P2口控制。

数字显示电路

2.2.2.2按键控制电路

2.2.2.3设计LED灯显示电路

本部分为LED灯显示电路,由于发光二极管工作电流为10mA,选用所以470Ω为限流电阻。

3.设计程序

3.1程序设计框图

3.2源程序

#include

#include

#include"delay.h"

#include"main.h"

#include"key.h"

#include"led.h"

#include"shumaguan.h"

voidmain()

{

init();

while

(1)

{

key_detect();

display();

}}#include"main.h"

/*********************************************

函数功能:

延时

入口参数:

z

*********************************************/

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=619;y>0;y--);

}

#include"main.h"

#include"key.h"

#include"delay.h"

#include"led.h"

#include"shumaguan.h"

uintflag;

/***********************************************************************************************************************

函数功能:

按键检测

***********************************************************************************************************************

#include"main.h"

#include"key.h"

#include"delay.h"

#include"led.h"

#include"shumaguan.h"

uintflag;

/***********************************************************************************************************************

函数功能:

按键检测

***********************************************************************************************************************/

voidkey_detect()

{

if(k1==0)

{

P0=0xff;//关位选

delay(10);

if(k1==0){

flag++;if(flag==11)

{flag=0;

}

}

while(!

k1);//检测是否松开按键r

}

elseif(k2==0)

{

P0=0xff;//关位选

delay(10);

if(k2==0)

{

switch(flag)

{

case1:

left_loop();break;

case2:

right_loop();break;

case3:

increase();break;

case10:

ji_ou();break;

default:

other_program();

}

}

while(!

k2);//检测是否松开按键r

}

}#include"main.h"

#include"led.h"

#include"delay.h"

#include"key.h"

#include"shumaguan.h"

ucharcodetable_l[]={0xfe,0xfc,0xfb,0xf7,0xef,0xcf,0xbf,0x7f};

/****************************************

函数功能:

实现任务一:

流水灯正向循环亮5次

要实现流水灯左循环亮1秒闪烁

****************************************/

voidleft_loop()

{

uchartemp;

temp=0x7f;

while

(1)

{temp=_cror_(temp,1);

delay(8);

P3=temp;

display();

if(k1==0)

{P3=0xff;//关位选

delay(20);

if(k1==0)

{

P3=0xff;

flag++;

delay(10);

break;

}

while(!

k1);//检测是否松开按键r

delay(20);

while(!

k1);

}

}

}

/****************************************

函数功能:

实现任务二:

流水灯反向循环亮5次

要实现流水灯右循环亮1秒闪烁

****************************************/

voidright_loop()

{

uchartemp;

temp=0xfe;

while

(1)

{temp=_cror_(temp,1);

delay(8);

P3=temp;

display();

if(k1==0)

{delay(20);

if(k1==0)

{P3=0xff;

flag++;

delay(10);

break;

}

while(!

k1);//检测是否松开按键r

delay(20);

while(!

k1);

}

}

}

/******************************************

函数功能:

所有灯灭

******************************************/

voidother_program()

{

P3=0xff;

delay(10);

display();

if(k1==0)

{delay(10);

if(k1==0)

{

P3=0xff;

flag++;

delay(10);

}

while(!

k1);//检测是否松开按键r

delay(20);

while(!

k1);

}

}

/*******************************************

函数功能:

实现任务三:

全灭全亮3次,正向循环亮五次

要实现递增间隔1秒闪烁

*******************************************/

voidincrease()

{

uchari,m,j;

uchara[]={0x00,0xff,0x00,0xff,0x00,0xff};

for(i=0;i<6;i++)

{P3=a[i];

delay(40);

if(k1==0)

{delay(10);

if(k1==0)

{

P3=0xff;

flag++;

delay(10);

}

while(!

k1);//检测是否松开按键r

delay(20);

while(!

k1);

}

}

delay(8);for(m=5;m>0;m--)

{

P3=0xfe;for(j=0;j<7;j++)

{P3=_crol_(P3,1);delay(8);

}

}

P3=0xff;

delay(1000);

}

/********************************************

函数功能:

实现任务十:

奇偶循环亮5次

要实现奇偶间隔1秒闪烁

********************************************/

voidji_ou()

{

uchari,m,j;

uchara[]={0xfe,0xfb,0xef,0xbf};

ucharb[]={0xfd,0xf7,0xdf,0x7f};

for(m=5;m>0;m--)

{for(i=0;i<4;i++)

{P3=a[i];

delay(50);

display();

if(k1==0)

{delay(10);

if(k1==0)

{P3=0xff;

flag++;

delay(10);

break;

}

while(!

k1);//检测是否松开按键r

}}

for(j=0;j<4;j++){

P3=b[j];

delay(50);

display();

if(k1==0)

{delay(10);

if(k1==0)

{P3=0xff;

flag++;

delay(10);

break;

}

while(!

k1);//检测是否松开按键r

}

}P3=0xff;

delay(1000);

}

#include"main.h"

#include"delay.h"

#include"key.h"

#include"shumaguan.h"

ucharcodetable[]={0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9};

/********************************************************************

函数功能:

初始化(在数码管上显示00)

********************************************************************/

voidinit()//初始化函数

{P2=table[0];//送段码

P0=0x00;//开位选

delay(10);

}

/****************************************************

函数功能:

1~4位数码管上的显示

****************************************************/

voiddisplay(void)//显示函数

{uintshi,ge;

shi=flag/10;//取十位

ge=flag%10;//取个位

//P2=0x00;//消隐,让数码管什么都不显示

P0=0x10;//开位选

P2=table[shi];//送十位数

delay

(1);

P0=0x30;//关位选

//P2=0x00;//消隐,让数码管什么都不显示

P0=0x20;//开位选

P2=table[ge];//送个位数

delay

(1);//关位选

P0=0x30;

}

4.设计图纸设计原理图附图

4.1设计原理图附图

 

4.2设计PCB附图

5、课程设计总结

单片机课程设计已经完成,但是学习没有结束,在这次课程设计里面,不仅仅是设计一样东西,更多的是学习一种态度,对生活,对学习,不能只单单考虑一件事,一个方面,而是要更多的方面来思考,尽可能完善它,充实它,让它体现出一种人性化出来,让你学会一种态度,首先明确要做的是什么,然后开始思考设计思路,设计方法,然后一步一步把它实践出来,然后再看哪里不够完善,仔细修正,才能做出好的东西出来。

通过这次实践的机会,我能够初步掌握一些设计的基本思路,对单片机这么课程有了一定的认识,不能仅仅看做成一门设计编程的课本,他更多的是一种指示的意思,然你学会综合分析的思路,让你能够成站起来的一门课程,每门课程开出来总有一定的道理,它既然放在大三上学期,就是让你对未来有一定的认识,不能只是一个单一的设计人员,更多的是要综合考虑一件事物,这样才能更好的融入进去。

通过课程设计,我们增强了对单片机的理解,学会查寻资料﹑比较方案,学会单片机的设计﹑计算;进一步提高分析解决实际问题的能力,创造一个动脑动手﹑独立开展电路实验的机会,锻炼分析﹑解决程序编写问题的实际本领,真正实现由课本知识向实际能力的转化;通过典型程序的设计与制作,加深对基本原理的了解,增强了实践能力。

这次课程设计也让我更加了解了关于单片机设计原理。

有很多设计理念来源于实际,从中找出最适合的设计方法。

本次课程设计脱离不了集体的力量,遇到问题和同学互相讨论交流。

多和同学讨论。

我们在做实训项

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2