简易多彩广告灯控制设计解析.doc

上传人:牧羊曲112 文档编号:4295857 上传时间:2023-04-14 格式:DOC 页数:20 大小:917KB
返回 下载 相关 举报
简易多彩广告灯控制设计解析.doc_第1页
第1页 / 共20页
简易多彩广告灯控制设计解析.doc_第2页
第2页 / 共20页
简易多彩广告灯控制设计解析.doc_第3页
第3页 / 共20页
简易多彩广告灯控制设计解析.doc_第4页
第4页 / 共20页
简易多彩广告灯控制设计解析.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《简易多彩广告灯控制设计解析.doc》由会员分享,可在线阅读,更多相关《简易多彩广告灯控制设计解析.doc(20页珍藏版)》请在三一办公上搜索。

1、科信学院课程设计说明书(2011/2012学年 第二学期)课程名称 : 单片机应用课程设计 题 目 : 简易多彩广告灯控制设计 专业班级 : 学生姓名 : 学 号 : 指导教师 : 王静爽 王立国 王书强等 设计周数 : 2周 设计成绩 : 2012年07月05日目 录1、 课程设计目的 1.1 原始数据及主要任务2 1.2 技术要求22、 课程设计正文 2.1 确定总体设计方案2 2.2 元器件介绍3 2.2.1 STC90C523 2.2.2 RS232 42.2.3 CD45115 2.2.4 共阴极数码管62.2 各部分电路设计 2.2.1 单片机最小系统电路6 2.2.2 多色彩广告

2、灯闪烁控制电路7 2.2.2.1设计数字显示电路 7 2.2.2.2设计按键控制电路 8 2.2.2.3设计LED灯显示电路电路 83、设计程序 3.1 程序设计框图9 3.2程序及注释94、设计图纸设计原理图 附图 4.1设计原理图 附图16 4.2设计PCB 附图175、 课程设计总结196、 参考文献201、课程设计目的 1.1 原始数据及主要任务 设计并制作出一个以单片机为核心的彩灯闪烁控制系统:(1)确定总体设计方案(2)、设计键盘输入电路(3)、设计显示电路(4)、合理分配地址,编写系统程序(5)、利用Protel设计硬件电路原理图和PCB图(6)、软硬件联机调试 1.2 技术要求

3、设计一个以MCS-51单片机为核心的简易多彩广告灯广告灯闪烁控制系统,2位数码管显示闪烁控制方案,分别显示01、02、03、和10号方案,初始化为00,彩灯灭;2个控制按键,一个加一数字键,一个确定键,循环10个花型的方案。方案01为左循环亮一秒闪烁;方案02为右循环亮一秒闪烁;方案03为“100000000、1100000011111111”递增间隔1秒闪烁;方案10为“01010101,10101010”间隔一秒闪烁;其余方案灯灭。2、 课程设计正文 2.1确定总体设计方案2.2 元器件介绍 2.2.1 单片机STC90C52 VCC:供电电压。GND:接地。 P0口:P0口为一个8位漏级

4、开路双向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

5、个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出

6、电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能,如P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用

7、于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部

8、程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 2.2.2 RS232 RS-232C 标准(协议)的全称是 EIA-RS-232C 标准,其中EIA (Electronic Industry Association)代表美国电子工业协会,RS(recommeded standard)代表推荐标准,232是标识号,C代表RS23

9、2的最新一次修改(1969),在这之前,有RS232B、RS232A。它规定连接电缆和机械、电气特性、信号功能及传送过程。常用物理标准还有有EIA RS-422A、EIA RS-423A、EIA RS-485。 例如,目前在IBM PC机上的COM1、COM2接口,就是RS-232C接口。 2.2.3 CD4511CD4511是一个用于驱动共阴极 LED (数码管)显示器的 BCD 码七段码译码器,特点:具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路,能提供较大的电流,可直接驱动LED显示器。CD4511 是一片 CMOS BCD锁存/7 段译码/驱动器,引脚排列如图 所示。

10、其中A、B、C、D为 BCD 码输入,A为最低位。LT为灯测试端,加高电平时,显示器正常显示,加低电平时,显示器一直显示数码“8”,各笔段都被点亮,以检查显示器是否有故障。BI为消隐功能端,低电平时使所有笔段均消隐,正常显示时, B1端应加高电平。另外 CD4511有拒绝伪码的特点,当输入数据越过十进制数9(1001)时,显示字形也自行消隐。LE是锁存控制端,高电平时锁存,低电平时传输数据。ag是 7 段输出,可驱动共阴LED数码管。限流电阻要根据电源电压来选取,电源电压5V时可使用300的限流电阻。功能介绍如下:BI:4脚是消隐输入控制端,当BI=0 时,不管其它输入端状态如何,七段数码管均

11、处于熄灭(消隐)状态,不显示数字。 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、1

12、1、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微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。复位电路:确定单片机工作的起始状态,完成单片机的启动过程。单片机系统的复位方式有上电自动复位和手动按键复位。本设计

13、采用手动按键复位,该复位方式同样具有上电自动复位功能。电路如下图所示。时钟电路 复位电路 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#includedelay.h#includemain.h#includekey.h#includeled

14、.h#includeshumaguan.hvoid main()init(); while(1) key_detect();display(); #includemain.h/*函数功能:延时入口参数:z*/void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=619;y0;y-);#includemain.h#includekey.h#includedelay.h#includeled.h#includeshumaguan.huint flag;/*函数功能:按键检测* #includemain.h#includekey.h#includedelay.

15、h#includeled.h#includeshumaguan.huint flag;/*函数功能:按键检测*/void key_detect() if(k1=0)P0=0xff;/关位选delay(10);if(k1=0) flag+;if(flag=11)flag=0;while(!k1); /检测是否松开按键relse if(k2=0)P0=0xff;/关位选delay(10);if(k2=0)switch(flag)case 1:left_loop();break;case 2:right_loop();break;case 3:increase();break;case 10:ji_

16、ou();break;default:other_program();while(!k2); /检测是否松开按键r #includemain.h#includeled.h#includedelay.h#includekey.h#includeshumaguan.huchar code table_l=0xfe,0xfc,0xfb,0xf7,0xef,0xcf,0xbf,0x7f;/*函数功能:实现任务一: 流水灯正向循环亮5次 要实现流水灯左循环亮1秒闪烁*/void left_loop() uchar temp;temp=0x7f; while(1)temp=_cror_(temp,1);d

17、elay(8); P3=temp;display();if(k1=0)P3=0xff;/关位选delay(20);if(k1=0)P3=0xff;flag+;delay(10);break;while(!k1); /检测是否松开按键rdelay(20); while(!k1); /*函数功能:实现任务二: 流水灯反向循环亮5次 要实现流水灯右循环亮1秒闪烁*/void right_loop()uchar temp;temp=0xfe; while(1)temp=_cror_(temp,1);delay(8);P3=temp;display();if(k1=0)delay(20);if(k1=0

18、)P3=0xff;flag+;delay(10);break;while(!k1); /检测是否松开按键rdelay(20); while(!k1);/*函数功能:所有灯灭*/void other_program()P3=0xff;delay(10);display();if(k1=0)delay(10);if(k1=0)P3=0xff;flag+;delay(10);while(!k1); /检测是否松开按键rdelay(20); while(!k1);/*函数功能:实现任务三: 全灭全亮3次,正向循环亮五次 要实现递增间隔1秒闪烁*/void increase()uchar i,m,j;u

19、char a=0x00,0xff,0x00,0xff,0x00,0xff;for(i=0;i0;m-) P3=0xfe;for(j=0;j0;m-) for(i=0;i4;i+)P3=ai;delay(50);display();if(k1=0)delay(10);if(k1=0)P3=0xff;flag+;delay(10);break;while(!k1); /检测是否松开按键rfor(j=0;j4;j+)P3=bj;delay(50);display();if(k1=0)delay(10);if(k1=0)P3=0xff;flag+;delay(10);break;while(!k1);

20、 /检测是否松开按键rP3=0xff;delay(1000);#includemain.h#includedelay.h#includekey.h#includeshumaguan.huchar code table=0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9;/*函数功能:初始化(在数码管上显示00)*/void init()/初始化函数P2=table0; /送段码P0=0x00;/开位选delay(10);/*函数功能:14位数码管上的显示*/void display(void) /显示函数uint shi,ge; shi=flag

21、/10;/取十位 ge=flag%10; /取个位/P2=0x00;/消隐,让数码管什么都不显示P0=0x10;/开位选P2=tableshi;/送十位数delay(1);P0=0x30;/关位选/P2=0x00;/消隐,让数码管什么都不显示P0=0x20;/开位选P2=tablege;/送个位数delay(1);/关位选P0=0x30; 4.设计图纸设计原理图 附图4.1设计原理图 附图4.2设计PCB 附图5、 课程设计总结 单片机课程设计已经完成,但是学习没有结束,在这次课程设计里面,不仅仅是设计一样东西,更多的是学习一种态度,对生活,对学习,不能只单单考虑一件事,一个方面,而是要更多的

22、方面来思考,尽可能完善它,充实它,让它体现出一种人性化出来,让你学会一种态度,首先明确要做的是什么,然后开始思考设计思路,设计方法,然后一步一步把它实践出来,然后再看哪里不够完善,仔细修正,才能做出好的东西出来。通过这次实践的机会,我能够初步掌握一些设计的基本思路,对单片机这么课程有了一定的认识,不能仅仅看做成一门设计编程的课本,他更多的是一种指示的意思,然你学会综合分析的思路,让你能够成站起来的一门课程,每门课程开出来总有一定的道理,它既然放在大三上学期,就是让你对未来有一定的认识,不能只是一个单一的设计人员,更多的是要综合考虑一件事物,这样才能更好的融入进去。通过课程设计,我们增强了对单片

23、机的理解,学会查寻资料比较方案,学会单片机的设计计算;进一步提高分析解决实际问题的能力,创造一个动脑动手独立开展电路实验的机会,锻炼分析解决程序编写问题的实际本领,真正实现由课本知识向实际能力的转化;通过典型程序的设计与制作,加深对基本原理的了解,增强了实践能力。这次课程设计也让我更加了解了关于单片机设计原理。有很多设计理念来源于实际,从中找出最适合的设计方法。本次课程设计脱离不了集体的力量,遇到问题和同学互相讨论交流。多和同学讨论。我们在做实训项目的过程中要不停的讨论问题,这样,我们组员可以尽可能的统一思想,这样就不会使在做的过程中没有方向,并且这样也是为了方便最后设计和在一起。讨论不仅是一

24、些思想的问题,还可以深入的讨论一些技术上的问题,这样可以使自己的处理问题要快一些,少走弯路。多改变自己设计的方法,在设计的过程中最好要不停的改善自己解决问题的方法,这样可以方便自己解决问题这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于迎刃而解。在本次课程设计中,实验室的指导老师和同学认真的的教导我们指出了我门的不足还有需要改进的地方。另外,在系统开发过程中还有同班的几位同学的热心帮助,齐心协力,使我们的设计能够顺利的完成,在这里一并对他们的帮助表示由衷的感谢。感谢老师提供了这次课设的机会,我们能够更好的系统的学习一门课程,能够更好的理解本专业的相关知识,也

25、能更好的面对后面的学习与生活。6、 参考文献1李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,1998 2李广弟.单片机基础.北京:北京航空航天大学出版社,1994 3阎石.数字电子技术基础(第三版). 北京:高等教育出版社,1989 4 何立民.单片机应用技术大全.北京:北京航空航天大学出版社, 19945 张毅刚. 单片机原理及接口技术.哈尔滨:哈尔滨工业大学出版社,1990 6 谭浩强.单片机课程设计. 北京:清华大学出版社,1989 7 张义,陈敌北.例说8051.人民邮电出版社 8 肖婧.单片机入门与趣味实验设计.北京:北京航空航天大学出版社,20089 胡汉才. 单片机原理及其接口技术.北京:清华大学出版社,2002 课程设计评 语课程设计成 绩指导教师(签字) 年 月 日

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号