ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:388.47KB ,
资源ID:4799562      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-4799562.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(简易多彩广告灯控制设计资料.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

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

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)、软硬件联机调试

3、1.2 技术要求设计一个以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口

4、为一个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口缓冲器

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

6、,P3口将输出电流(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是标识号,

9、C代表RS232的最新一次修改(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;

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

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

14、ludeled.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#inc

15、ludedelay.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();b

16、reak;case 10:ji_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

17、=_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); /检测是否松开按键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=

18、0)delay(20);if(k1=0)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); /检测是否松开按键r delay(20); while(!k1); /*函数功能:实现任务三: 全灭全亮3次,正向循环亮五次 要实现递增间隔1秒闪烁*/void

19、 increase()uchar i,m,j;uchar 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); /检测是否松开按键r for(j=0;j4;j+)P3=bj;delay(50);display();if(k1=0)delay(10);if(k1=0)P3=0xff;flag+;

20、delay(10); break;while(!k1); /检测是否松开按键r P3=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(v

21、oid) /显示函数uint shi,ge; shi=flag/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、东西,更多的是学习一种态度,对生活,对学习,不能只单单考虑一件事,一个方面,而是要更多的方面来思考,尽可能完善它,充实它,让它体现出一种人性化出来,让你学会一种态度,首先明确要做的是什么,然后开始思考设计思路,设计方法,然后一步一步把它实践出来,然后再看哪里不够完善,仔细修正,才能做出好的东西出来。通过这次实践的机会,我能够初步掌握一些设计的基本思路,对单片机这么课程有了一定的认识,不能仅仅看做成一门设计编程的课本,他更多的是一种指示的意思,然你学会综合分析的思路,让你能够成站起来的一门课程,每门课程开出来总有一定的道理,它既然放在大三上学期,就是让你对未来有一定的认识,不能只是一个单一的设计人员,更多的是要综合考虑一件事物,这样才能更好的融入进去。通过课程设计,我们增强了对单片机的理解,学会查寻资料比较方案,学会单片机的设计计算;进一步提高分析解决实际问题的能力,创造一个动脑动手独立开展电路实验的机会,锻炼分析解决程序编写问题的实际本领,真正实现由课本知识向实际能力的转化;通过典型程序的设计与制作,加深对基本原理的了解,增强了实践能力。这次课程设计也让我更加了解了关于单片机设计原理。有很多设计理念来源于实际,从中找出最适合的设计方法。本次课程设计脱离不了集体的力量,遇到问题和同学互相讨论交流。多和同学讨论。我们在做实训项

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

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