基于c语言单片机流水节日彩灯课程设计.docx
- 文档编号:16086439
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:15
- 大小:193.76KB
基于c语言单片机流水节日彩灯课程设计.docx
《基于c语言单片机流水节日彩灯课程设计.docx》由会员分享,可在线阅读,更多相关《基于c语言单片机流水节日彩灯课程设计.docx(15页珍藏版)》请在冰点文库上搜索。
基于c语言单片机流水节日彩灯课程设计
课程设计报告
课程名称:
单片机课程设计
报告题目:
节日彩灯控制
学生姓名:
所在学院:
专业班级:
学生学号:
指导教师:
2013年12月25日
课程设计任务书
报告题目
节日彩灯控制
完成时间
12.15-12.29
学生姓名
专业班级
指导教师
职称
讲师
总体设计要求和技术要点
1.任务
以单片机为核心,设计一个节日彩灯控制器。
2.要求
(1)K1—开始,按此键则灯开始流动(由上而下)。
(2)K2—停止,按此键则停止流动,所有灯为暗。
(3)K3—上,按此键则灯由上向下流动。
(4)K4—下,按此键则灯由下向上流动。
(5)K5—从亮到暗到亮循环。
3.课程设计报告要求
按《湖南涉外经济学院课程设计管理办法》要求提交课程设计报告。
工作内容及时间进度安排
第17周:
周1---周3:
立题、论证方案设计
周4---周5:
预答辩
第18周:
周1---周3:
仿真实验7
周4---周5:
验收答辩
课程设计成果
1.与设计内容对应的软件程序
2.课程设计总结报告
摘要
彩灯是我国普遍流行的传统的民间的综合性的工艺品。
彩灯艺术也就是灯的综合性的装饰艺术。
新中国成立后,彩灯艺术得到了更大的发展,科学技术的发展,彩灯艺术更是花样翻新。
节日彩灯以成为我们生活中常见的装置,在各种场合我们都能看见它,它使我们的生活更加的丰富多彩。
它集中运用了单片机,LED,自动控制等技术,是典型的基于单片机的电子产品。
本文以AT89C51单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。
按键可以在彩灯使用的时候选择不同的亮法,使彩灯变化多样,键一可以使彩灯依次从上到下循环点亮,健二可以使彩灯停止流动,所有的灯为暗,键三可以使彩灯上向下流动,健四可以使彩灯下向上流动,键五可以使所有的彩灯从亮到暗到亮循环。
通过按键可以达到不同的效果。
关键词节日彩灯;循环;AT89C51;
一、概述1
二、方案设计与论证1
1.方案比较1
2.方案论证3
3.方案选择3
三、单元模块设计3
3.1矩阵键盘的控制3
3.2流水灯的控制4
四、总原理图6
五、结论与心得6
六、参考文献8
附录一:
程序清单10
一、概述
传统的制灯工艺和现代科学技术紧密结合,将电子、建筑、机械、遥控、声学、光导纤维等新技术、新工艺用于彩灯的设计制作,把形、色、光、声、动相结合,思想性、知识性、趣味性、艺术性相统一。
在当今的社会里,彩灯已经成为我们生活的一部分,能给我们带来视觉上的享受还能美化我们的生活彩灯控制器主要是通过电路产生有规律变化的脉冲信号来实现彩灯的各种变化。
它的主要器件是寄存器。
现如今寄存器是数字系统常见的重要部件,除在计算机中广泛用于存放中间数据外,它在其他方面的应用,目前在教材中只介绍可构成环形或扭环形计数器。
本次实验由于触发器具有记忆的功能,所以将移位寄存器设计成彩灯控制电路。
由于电路本身实用,如果再通过计算机仿真,就可以直观地看到循环彩灯控制效果。
如果稍微改动控制电路,就可以改变电路的不同工作状态,控制彩灯变幻出不同的闪烁效果。
彩灯控制电路是由单元电路组合而成的,主要由555振荡电路产生一矩形脉冲,在经74LS93分频后得到四路分频信号,由74LS74﹑74LS153组成的电子开关去控制这四路分频信号,进而控制彩灯亮灭的顺序,从而出现彩灯四种花样自动切换。
二、方案设计与论证
通过查阅大量相关技术资料,并结合自己的实际知识,我主要提出了两种技术方案来实现系统功能。
下面我将首先对这两种方案的组成框图和实现原理分别进行说明,并分析比较它们的特点,然后阐述我最终选择方案的原因。
1.方案比较
方案一只能实现稍微比较简单的一些功能,但是不能达到课程设计的全部任务,而且不能体现我们所学的知识。
虽然能达到预期目的。
但是它的结构比较单一,因此为了更好的了解所学知识,更好的巩固我们所学的知识我选择方案二,因为它能很好的完成任务,而且更好的锻炼我们的专业知识。
1.1方案一
方案一原理框图如图1-1所示。
图1-1方案一的原理框图
方案一:
用模十六计数器74LS161的输出端的最高位QD作为双D触发器的时钟,可以只用一个555定时器。
计数器每计八个数,QD由低电平变为高电平,双D触发器的状态改变,四选一数据选择器74LS153选择下一种码输出,彩灯变为另一种花样,以后四种花样循环改变,变化比较单一.
1.2方案二
方案二原理框图如图1-2所示。
图1-2方案二的原理框图
方案二:
彩灯控制器原理框图如图1-2所示。
用555构成多谐振荡器。
用4位2进制计数器74LS93接成16进制计数器,其4个输出端可以分别输出对计数脉冲的2、4、8、16分频信号。
用双D触发器74LS74接成2进制加法计数器。
数据选择器由双4选174LS153构成,并且只用它的一组4选1数据通道。
移位寄存器选择八位74LS164,它是产生移动灯光信号的核心器件。
2.方案论证
如果按方案一连接电路,彩灯无法完成第四种花样(依次点亮,依次熄灭),只能完成一半,依次点亮或依次熄灭,部分实现了设计要求。
3.方案选择
结合我们已学知识,为使实验更加成功,我觉得更适合做方案二,而不采用方案一。
三、单元模块设计
本系统主要分为两个单元模块,它们分别是:
矩阵键盘的控制和按键控制流水的得设计。
各单元模块功能及相关电路的具体说明如下。
3.1矩阵键盘的控制
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见在需要确定矩阵式键盘上何键被按下介绍一种“行扫描法”。
行扫描法 行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所
示键盘,介绍过程如下。
1. 判断键盘中有无键按下 将全部行线Y0-Y3置低电平,然后检测列线的状态。
只要有一列的
电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个
按键之中。
若所有列线均为高电平,则键盘中无键按下。
2. 判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。
其方法是:
依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。
在确定置为低电平后,再逐行检测各列线的电平状态。
若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。
3.2流水灯的控制
三极管在电路中充当开关的作用,当电路导通,最左边的LED首先点亮。
基极串出一电容连接下一个三极管的集电极。
当电容充分充电后,下一个三极管导通使得第二个LED点亮,以此类推。
可以通过调节电容的容量值,来控制流水灯点亮的时间。
51单片机的左移右移,首先在开始要调用"intrins.h"的文件包,这个文件包含_cror_(右移),_crol_(左移);然后通过for语句来控制;输出电路由八位移位寄存器74LS164、八个彩灯和八个驱动电阻构成(如图3-4所示)。
寄存器的数据输入端接收开关电路输出的四种码,这四种码在移位寄存器的八位并行输出端从QA向QH移动,输出四种彩灯花样。
图3-1输出电路
驱动电路用8只三极管组成8路射随器作缓冲放大,去触发作电流开关的8只双向可控硅,以控制彩灯发光。
电路的十5V电源由220V/9V变压器降压,经D1一D4桥式整流,7805稳压后给控制电路供电。
从IC5第⑦脚输出的数据信号送到IC6的输入端第⑧脚,在时钟脉冲作用下,数据在IC6的8位并行输出端从Q0一Q7顺序移动。
这一移动的8位控制信号经功率驱动电路去推动8路彩灯,就出现了8路4花样自动循环切换的流水彩灯。
当输入移位寄存器数据输入端的码为10000000时,清零后在移位脉冲CP的作用下,寄存器数码移动情况如图3-2所示
图3-2寄存器数码移动情况表
CP
Ri
QA
QB
QC
QD
QE
QF
QG
QH
1
1
1
0
0
0
0
0
0
0
2
0
0
1
0
0
0
0
0
0
3
0
0
0
1
0
0
0
0
0
4
0
0
0
0
1
0
0
0
0
5
0
0
0
0
0
1
0
0
0
6
0
0
0
0
0
0
1
0
0
7
0
0
0
0
0
0
0
1
0
8
0
0
0
0
0
0
0
0
1
由表3-2可看出,输入码中的那位高电平“1”从寄存器的输出端QA经八个移位脉冲CP作用后逐渐到了QH,使输出端所连接的彩灯依次点亮,实现了彩灯依次点亮的花样。
当输入另外的三种码时,寄存器的数码移动原理相似,所以就不累赘
程序见附一:
程序清单
四、总原理图
图4.1总原理图
五、结论与心得
在这一次的课程设计中我学到了许多的知识。
单片机作为我们的主要专业课之一,刚刚开始我对这门课并没有什么兴趣,觉得那些程序枯燥乏味,而且有难度。
但在这次课程设计后我发现自己在一点一滴的努力中对单片机的兴趣也在逐渐增加。
这次课程设计我们历时两个星期,我完成的算是比较艰难,但经过这两个星期的实践和体验下来,我觉得学到的不仅是那些知识,更多的是学会学习。
现在想来,也许学校安排的课程设计有着它更深层的意义吧,它不仅仅让我们综合那些理论知识来运用到设计和创新,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。
在已度过的大学时间里,我们大多数接触的是专业课。
我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?
如何把我们所学的专业基础课理论知识运用到实践中去呢?
我想做类似的课程
其次,在这次课程设计中,我觉得要做好一个课程设计,就必须做到:
在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。
发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。
设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。
在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
我们通过查阅大量有关资料,并在与同学互相讨论,交流经验和自学,若遇到实在搞不明白的问题就会及时请教老师,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。
通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。
这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。
通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。
六、参考文献
[1] 阎石.数字电子技术基础[M].北京:
高等教育出版社,2010
[2] 康华光.电子技术基础(数字部分)[M].北京:
高等教育出版社,2007
[3] 付家才.电子工程实践技术[M].北京:
化学工业出版社,2003
[4] 周泽义.电子技术实验[M].武汉:
武汉理工大学出版社,2009
[5] 谢自美. 电子线路设计-实验-测试[M] .武汉:
华中科技大学出版社, 2000.
教师评语及设计成绩
教师评语:
课程设计成绩:
指导教师:
(签名)
日期:
年月日
附录一:
程序清单
#include
#include
#defineDENG_VAL0xfe/*流水灯的初始值*/
unsignedcharkey_val[]={0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xa,0xb,0xc,0xd,0xe,0xf};/*键值*/
unsignedcharkey_num=0xff;/*用于保存按键值*/
/*用于矩阵键盘的反转*/
voidreverse(unsignedcharline)
{
P1=0xf0;
if(P1!
=0xf0)
{
switch(P1)
{
case0x70:
/*第一列*/
key_num=key_val[line*4+0];break;
case0xb0:
key_num=key_val[line*4+1];
break;
case0xd0:
key_num=key_val[line*4+2];
break;
case0xe0:
key_num=key_val[line*4+3];
break;
}
}
}
voidkey_scan(void)
{
P1=0x0f;
if(P1!
=0x0f)
{
switch(P1)
{
case0x0e:
/*第一行*/
reverse(0);
break;
case0x0d:
reverse
(1);
break;
case0x0b:
reverse
(2);
break;
case0x07:
、
reverse(3);
break;
}
}
}
/*1ms延时函数*/
voiddelaynms(unsignedinti)
{
unsignedchara,b;
while(i--)
{
for(b=4;b>0;b--)
for(a=248;a>0;a--)
;
}
}
main()
{
bitflag=0;
unsignedcharmy_key_val=0xff;
P0=DENG_VAL;
while
(1)
{
key_scan();
if(key_num<=0x4)/*屏蔽矩阵键盘多余的按键*/
my_key_val=key_num;
if(my_key_val==0x0)/*开始键*/
{
if(flag==0)
{
P0=DENG_VAL;
delaynms(100);
flag=1;
}
P0=_crol_(P0,1);
delaynms(100);
}
if(my_key_val==0x1)/*停止键*/
{
flag=0;
P0=0xff;
}
if(my_key_val==0x2)/*上*/
{
P0=_crol_(P0,1);
delaynms(100);
}
if(my_key_val==0x3)/*下*/
{
P0=_cror_(P0,1);
delaynms(100);
}
if(my_key_val==0x4)
{
P0=~P0;
delaynms(300);
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 语言 单片机 流水 节日 彩灯 课程设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)