- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
综合电子课程设计-节拍速度渐变的彩灯控制器
xxxx
课程设计(论文)
题 目 名 称 节拍速度渐变的彩灯控制器
课 程 名 称 综合电子课程设计
学 生 姓 名 xxx
学 号 xxxxxxxxxx
系 、专 业 信息工程系
指 导 教 师 xxx
2011年 12 月 29日
摘要
采用AT89C51芯片来实现节拍速度渐变的彩灯控制器。阐述了其工作原理,给出了具体电路原理图,红、黄、绿及红、黄、绿组合的红绿、红黄,黄绿等颜色依次点亮。通过装置控制该彩灯白天不亮晚上自动亮,色变换为红-红绿-黄-黄绿-黄-黄红-全亮-红一次点亮并循环,产生流水般的效果。流水速度又快到慢,在由慢到快一次这样反复循环。采用自行设计的直流电源供电,具有耗电低等特点。通过调用时延来控制彩灯颜色变化的快慢和循环。
关键字:AT89C51;时延;循环;流水
目录
摘要 I
绪论 1
1.1 课题背景 1
1.2 课程设计的目标 1
硬件电路方案分析 2
2.1 单片机系统 2
2.2 LED显示 3
硬件设计 3
3.1 控制电路的设计 3
3.2 显示电路设计 3
程序代码设计分析 4
4.1主程序初始化 5
4.2彩灯的流水变化 7
仿真电路图与效果图 8
5.1 仿真电路图 8
5.2 仿真效果图 9
总结 11
参考文献 12
致 谢 13
”般的效果;
(2) 彩灯白天不亮,晚上自动亮;
(3) 流水的速度由快到慢,再由慢到快。
2 硬件电路方案分析
2.1 单片机系统
此次课题采用以AT89C51芯片为核心的单片机控制方案。利用单片机灵活的编程设计及丰富的IO端口,以及控制的准确性,来进行节拍速度渐变的彩灯控制器。此次课程设计P2.0接口与红色LED相连,P2.3接口与黄色LED相连,P2.6接口与绿色LED相连,红、黄、绿及其组合颜色一次闪亮。
系统总框图
2.2 LED显示
此次LED显示为直接接P2接口输出,P2.0接口接红色LED,P2.3接黄色LED,P2.6接口接绿色LED;由C语言控制灯亮的顺序依次为:红、黄、绿依次闪亮,以此循环,并且次彩灯白天不亮,晚上自动亮灯。
3 硬件设计
3.1 控制电路的设计
借助AT89C51芯片的丰富的端口及其精确的控制,设计如下所示电路图来实现节拍速度渐变的彩灯控制器。用AT89C51实现该过程既简单又方便,借助C语言的控制,可以非常容易的实现该过程,调用延时来实现快慢的闪灯过程,依次循环过程。
3.2 显示电路设计
用AT89C51的P2.0接口接红色LED,P2.3口接黄色LED,P2.6接绿色LED,然后让它按照要求闪亮。LED接法(如下图示)
显示电路设计
4 程序代码设计分析
4.1主程序初始化
主程序主要完成初始化,以及能否调用,程序是否能正确的完成所需实现的目标;以及指示灯是否受程序的控制。具体模块包括:
(1) 程序识别与编码设计
(2) 显示程序设计
(3) 彩灯依次闪亮
(4) 流水由快变慢,再由慢变快
(5) 彩灯白天不亮晚上自动亮
4.2彩灯的流水变化
彩灯的的流水变化利用单片机的时延和开中断以及调用程序来实现,由快变慢即是调用时延由短变长,由慢至快即是调用延时由长变短。彩灯白天不亮晚上自动亮,由于没有传感器,所以只能按照预先设置的定时系统来解决,一天为一个定时周期。
4.3 系统流程图
系统流程图
4.4 源程序代码
#include reg51.h
#define uchar unsigned char
#define uint unsigned int
sbit GREEN = P2^6;
sbit RED = P2^0;
sbit YELLOW = P2^3;
//ms级延时函数
void Delay(uint ms)
{
uint i,j;
for(i=0; ims; i++)
for(j=0; j110; j++);
}
//LED显示函数
void DisPlay()
{
uchar i;
for(i=0; i2; i++)
{
RED = 0;
文档评论(0)