资源描述
信息传媒系2013级 高职学生毕业设计(论文)任务书
设计题目 基于单片机的键控彩灯电路设计
学生姓名 系别 信息传媒系 专业 电子信息工程 班级 电子13301班
指导教师 职称 讲师 课题来源 指导老师拟定 任务书下达时间 2015.8.24
系主任签字 教研室主任签字
1、毕业设计(论文)主要内容及技术指标
本课题一单片机为核心,利用其中断器和8个LED,设计一个彩灯控制器。有以下功能:
1)花型种类不少于四中,花型自拟;
2)可用键控制彩灯按预设的花型进行变换;
3)可用键控制分别用快/慢俩种节拍实现花型变换。
2、毕业设计(论文)基本要求
①编写设计(论文),格式按烟台工程职业技术学院毕业设计(论文)要求完成。
②完成项目开发,自行设计完成。
3、 所需数据资料及参考文献
[1] 高峰.单片微型计算机原理与接口技术.科学出版社,2007
[2」武庆生,仇梅.单片机原理与应用.电子科技大学出版,1998,12
[3] 朱定华.单片机原理与接口技术.电子工业出版社,2001,4
进度计划
序号
阶段性工作及成果
时间安排
1
申报毕业设计(论文)课题
2015.8
2
开题会,各指导教师下达任务书。
2015.8.24
3
全体指导教师及学生大会:考试时间调整;各指导教师检查工作进展情况。
2015.9.1
4
课题设计、撰写论文、实物制作
2015.9.2—2015.10.8
5
上交有关材料给指导老师
2015.10.9
6
答辩会
2015.10.15
烟台工程职业技术学院
信息与传媒 系 电子信息 专业 13 级
毕业设计(论文)
题 目: 基于单片机的键控彩灯电路设计
姓名 学号
指导教师(签名)
2015 年 10月 12 日
烟台工程职业技术学院毕业设计(论文)
诚 信 承 诺 书
本人慎重承诺:
我所撰写的设计(论文)《 基于单片机的键控彩灯电路设计 》是在老师的指导下自主完成,没有剽窃或抄袭他人的论文或成果。如有剽窃、抄袭,本人愿意为由此引起的后果承担相应责任。
毕业论文(设计)的研究成果归属学校所有。
学生(签名):
2015年10月15日
目录
一.摘要…………………………………………………………………………………………4
二.前言…………………………………………………………………………………………5
三.正文…………………………………………………………………………………………6
3.1设计目的………………………………………………………………………………6
3.2设计要求………………………………………………………………………6
3.3硬件电路的设计………………………………………………………………6
3.3.1单片机总体设计原理…………………………………………………………6
3.3.2闪烁系统 …………………………………………………………7
3.3.3脉冲震荡系统………………………………………………………… 8
3.3.4核心控件…………………………………………………………8
3.3.5移位法…………………………………………………………9
3.3.6循环移位法…………………………………………………………10
3.3.7查表法……………………………………………………12
3.3.8复位电路 …………………………………………………………13
四.使用说明………………………………………………………………14
五.流程图设计………………………………………………………………16
结论…………………………………………………………………………………………19
结束语………………………………………………………………………………………20
参考文献……………………………………………………………………………………21
成绩评定表…………………………………………………………………………………22
摘要
近年来,彩灯对于美化、亮化城市有着不可轻视的重要作用。因此作为城市装饰的彩灯需求量越来越大,对与彩灯的技术和花样也越来越高。目前市场上各种式样的LED彩灯多半是采用全硬件电路实现,存在电路结构复杂、功能单一等局限性,因此有必要对现有的彩灯控制器进行改进。单片机技术是电路设计中不可缺少的一部分,而本课题一单片机为核心,利用其中断器和8个LED,设计一个彩灯控制器,通过键控让发光二极管工作。
前言
电子技术是当今高新技术的“龙头”,各先进国家无不把它放在优先的发展的地位。电子技术是电类专业的一门重要的技术基础课,课程的显著特点之一是它的实践性。要想很好的掌握电子技术,除了掌握基本器件的原理,还要掌握单片机技术,本课题就是利用单片机技术设计键控彩灯电路。
一、设计目的
通过课程设计的教学实践,将课本所学应用于实际中,缩小理论与实际的差距,记忆不学习、掌握单片机应用系统的有关知识,加深了解单片机的工作原理。初步掌握简单单片机应用系统的设计、制作、调试的方法。是自己的设计水平和对所学的只是的应用能力以及分析问题解决问题的能力得到全面提高。
二、 设计要求
本课题一单片机为核心,利用其中断器和8个LED,设计一个彩灯控制器。有以下功能:
1. 花型种类不少于四中,花型自拟;
2. 可用键控制彩灯按预设的花型进行变换;
3. 可用键控制分别用快/慢俩种节拍实现花型变换。
三、硬件电路的设计
1. 单片机总体设计原理
LED残灯系统包括5大部分,
2. 闪烁系统
发光二极管显示器简称LED。这种灯具具有线路简单、耗电少、成本少、寿命长等优点,本系统输出结果选用8个LED。LED有共阴共阳之分,本系统采用共阳型LED ,其原理图如图所示,每段有8个发光二极管,公共端由8个发光二极管的阳极并接而成,正常显示时公共端接高电平,各发光二极管是否点亮取决于各引脚上是否是低电平。彩灯闪烁由+5V电源和8个LED发光二极管,八个限压电阻组成如下图所示是彩灯闪烁系统的主要的外部可视部件。LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器:另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。
2、闪烁系统
发光二极管显示器简称LED。这种灯具有线路简单、耗电少、成本低、寿命长等优点,本系统输出结果选用8个LED。LED有共阴共阳之分,本系统采用共阳型LED,其原理图如图2所示,每端有8个发光二极管,公共端由8个发光二极管的阳极并接而成,正常显示时公共端接高电平,各发光二极管是否点亮取决于各引脚上是否是低电平。彩灯闪烁由+5V电源和八个LED发光二极管,八个限压电阻组成如下图所示是彩灯闪烁系统的主要的外部可视部件。LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。
由于系统要显示的内容比较简单,显示量不多,所以选用LED既方便又经济
如下图所示。
3、 脉冲震荡系统
为彩灯循环系统提供稳定频率波在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,引入唯一的外部脉冲信号作为各单片机的振荡脉冲。这时外部的脉冲信号是经单片机89C52的XTAL2引脚注入的;如图3所示
4、核心控件
89C52单片机是整个彩灯循环系统的核心是控制彩灯循环闪烁等等一切功能的部件;其中内部有ROM、有RAM、有并行I/O口等,在52单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。P1接口(P1.0~P1.7);8位准双向I/O接口,占1~8脚.准双向接口是指该接口内部有上拉电阻,能驱动4个LSTTL(低功耗肖脱基晶体管逻辑电路)负载.P1接口一般作通用I/O接口线使用.P2接口(P2..~P2.7);8位准双向I/O接口,占21~28脚.能驱使动个LSTTL负载.如果系统接有外部存储器,则CPU访问外边存储器时,该口作高8位地址线使用.P3接口(P3.0~P3.7);8位准双向I/O接口,占10~17脚.能驱动4个LSTTL负载.P3借口同时也是多功能接口,除可作通用I/O接口线使用外,其每一引脚还有第二功能。 89C52单片机最小系统是指单片机要工作所必须保证的最低配置如图4所示。
5、移位法
这是一种最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,从而来控制相应LED灯的亮灭。程序如下:
ORG 0000H ;单片机上电后从0000H地址执行
AJMP START ;跳转到主程序存放地址处
ORG 0030H ;设置主程序开始地址
START:MOV SP,#60H ;设置堆栈起始地址为60H
CLR P1.0 ;P1.0输出低电平,使LED1点亮
ACALL DELAY ;调用延时子程序
SETB P1.0 ;P1.0输出高电平,使LED1熄灭
CLR P1.1 ;P1.1输出低电平,使LED2点亮
ACALL DELAY ;调用延时子程序
SETB P1.1 ;P1.1输出高电平,使LED2熄灭
CLR P1.2 ;P1.2输出低电平,使LED3点亮
ACALL DELAY ;调用延时子程序
SETB P1.2 ;P1.2输出高电平,使LED3熄灭
CLR P1.3 ;P1.3输出低电平,使LED4点亮
ACALL DELAY ;调用延时子程序
SETB P1.3 ;P1.3输出高电平,使LED4熄灭
CLR P1.4 ;P1.4输出低电平,使LED5点亮
ACALL DELAY ;调用延时子程序
SETB P1.4 ;P1.4输出高电平,使LED5熄灭
CLR P1.5 ;P1.5输出低电平,使LED6点亮
ACALL DELAY ;调用延时子程序
SETB P1.5 ;P1.5输出高电平,使LED6熄灭
CLR P1.6 ;P1.6输出低电平,使LED7点亮
ACALL DELAY ;调用延时子程序
SETB P1.6 ;P1.6输出高电平,使LED7熄灭
CLR P1.7 ;P1.7输出低电平,使LED8点亮
ACALL DELAY ;调用延时子程序
SETB P1.7 ;P1.7输出高电平,使LED8熄灭
ACALL DELAY ;调用延时子程序
AJMP START ;8个LED流了一遍后返回到标号START处再循环
DELAY: ;延时子程序
MOV R0,#255 ;延时一段时间
D1: MOV R1,#255
DJNZ R1,$
DJNZ R0,D1
RET ;子程序返回
END ;程序结束
6、循环移位法
在上个程序中我们是逐个控制P1端口的每个位来实现的,因此程序显得有点复杂,下面我们利用循环移位指令,采用循环程序结构进行编程。我们在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P1口,这样就实现“流水”效果啦。由于8051系列单片机的指令中只有对累加器ACC中数据左移或右移的指令,因此实际编程中我们应把需移动的数据先放到ACC中,让其移动,然后将ACC移动后的数据再转送到P1口,这样同样可以实现“流水”效果。具体编程如下所示。
ORG 0000H ;单片机上电后从0000H地址执行
AJMP START ;跳转到主程序存放地址处
ORG 0030H ;设置主程序开始地址
START:MOV SP,#60H ;设置堆栈起始地址为60H
MOV A,#0FEH ;ACC中先装入LED1亮的数据(二进制的11111110)
MOV P1,A ;将ACC的数据送P1口
MOV R0,#7 ;将数据再移动7次就完成一个8位流水过程
LOOP: RL A ;将ACC中的数据左移一位
MOV P1,A ;把ACC移动过的数据送p1口显示
ACALL DELAY ;调用延时子程序
DJNZ R0,LOOP ;没有移动够7次继续移动
AJMP START
DELAY: ;延时子程序
MOV R0,#255 ;延时一段时间
D1: MOV R1,#255
DJNZ R1,$
DJNZ R0,D1
RET ;子程序返回
END ;程序结束
7、查表法
上面的两个程序都是比较简单的流水灯程序,“流水”花样只能实现单一的“从左到右”流方式。运用查表法所编写的流水灯程序,能够实现任意方式流水,而且流水花样无限,只要更改流水花样数据表的流水数据就可以随意添加或改变流水花样,真正实现随心所欲的流水灯效果。我们首先把要显示流水花样的数据建在一个以TAB为标号的数据表中,然后通过查表指令“MOVC A,@A+DPTR”把数据取到累加器A中,然后再送到P1口进行显示。具体源程序如下,TAB标号处的数据表可以根据实现效果的要求任意修改。
ORG 0000H ;单片机上电后从0000H地址执行
AJMP START ;跳转到主程序存放地址处
ORG 0030H ;设置主程序开始地址
START:MOV SP,#60H ;设置堆栈起始地址为60H
MOV DPTR,# TAB ;流水花样表首地址送DPTR
LOOP: CLR A ;累加器清零
MOVC A,@A+DPTR ;取数据表中的值
CJNE A,#0FFH,SHOW ;检查流水结束标志
AJMP START ;所有花样流完,则从头开始重复流 SHOW: MOV P1,A ;将数据送到P1口
ACALL DELAY ;调用延时子程序
INC DPTR ;取数据表指针指向下一数据
AJMP LOOP ;继续查表取数据
DELAY:MOV R0,#255 ;延时一段时间
D1: MOV R1,#255
DJNZ R1,$
DJNZ R0,D1
RET ;子程序返回 ;
下面是流水花样数据表,用户可据要求任意编写
TAB: DB 11111110B ;二进制表示的流水花样数据,从低到高左移
DB 11111101B
DB 11111011B
DB 11110111B
DB 11101111B
DB 11011111B
DB 10111111B
DB 01111111B
DB 01111111B ;二进制表示的流水花样数据,从高到低右移 DB 10111111B
DB 11011111B
DB 11101111B
DB 11110111B
DB 11111011B
DB 11111101B
DB 11111110B
DB 0FEH,0FDH,0FBH,0F7H ;十六进制表示的流水花样数据
DB 0EFH,0DFH,0BFH,7FH
DB 7FH,0BFH,0DFH,0EFH
DB 0F7H,0FBH,0FDH,0FEH
„„
DB 0FFH ;流水花样结束标志0FFH
END ;程序结束
8、复位电路
复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。 除PC之外,复位操作还对其它一些专用寄存器有影响,它们的复位状态如表1所示:
单片机的RST管脚为主机提供了一个外部复位信号输入口。复位信号是高电平有效,高电平有效的持续时间为2个机器周期以上。单片机的复位方式可由手动复位方式完成。复位电路如图所示
四、使用说明
1、花型选择按钮,每按一次切换一次花型,循环切换4种花型。
2、复位开关,返回第一种花型及慢速状态。
3、快慢控制按钮,用于快/慢两种节拍的切换。
五、流程图设计
#include <reg52.h>
unsigned char key=1;
bit speed = 0;
void delay()
{
unsigned int j ,k;
if(speed == 0)
{
for(k=0;k<1000;k++)
for(j=0;j<100;j++);
} else
{
for(k=0;k<1000;k++)
for(j=0;j<20;j++);
}
}
void int_init()
{
IT0 = 1;
IT1 = 1;
EX1 = 1;
EX0 = 1;
EA = 1;
}
void show1(void)
{
unsigned char i;
while (1)
{
if (key != 1) break;
for (i=0; i<8; i++)
{
if (key != 1)
break;
P1 = ~(1<<i);
delay();
}
}
} void show2(void)
{
unsigned char i;
while (1)
{
if (key != 2)
break;
for (i=0; i<8; i++)
{
if (i < 7)
P1 = ~(3<<i);
else
P1 = ~(0x81);
delay();
if (key != 2)
break;
}
}
}
void show3(void)
{
while(1)
{
if (key != 3)
break;
P1 = 0xaa;
delay();
P1 = 0x55;
delay();
}
}
void show4(void)
{
while (1)
{
if (key != 4)
break;
P1 = ~0x18;
delay();
if (key != 4)
break;
P1 = ~0x24;
delay();
if (key != 4)
break;
P1 = ~0x42;
delay();
if (key != 4)
break;
P1 = ~0x81;
delay();
}
}
main()
{
//timer_init();
int_init();
while (1)
{ switch (key)
{
case 1: show1(); break;
case 2: show2(); break;
case 3: show3(); break;
case 4: show4(); break;
default : show1();
}
}
}
void interrupt_int0()interrupt 0
{
speed = ~speed;
}
void interrupt_int1()interrupt 2
{
key++; if(key == 5)
{key=1;
}
当上述程序之一编写好以后,我们需要使用编译软件对其编译,得到单片机所能识别的二进制代码,然后再用编程器将二进制代码烧写到单片机中,最后连接好电路通电,我们就看到LED1~LED8的“流水”效果了
设计总结
单片机是一门实践性很强的课程,光光一个单片机并不能发挥什么作用,必须要和其它的芯片一起才能最大可能的发挥它的各种各样的功能。为了做这个课程设计我查阅了不少单片机的资料,图书馆关于单片机的书基本上都被我们班同学借光了。上网查找相应的资料和找老师指导;最后完成了这篇课程设计。在这次设计的过程中,软件编程是比较难的环节,因为用的是汇编和C语言,汇编语言是低级语言,不像高级语言哪么直观,算法的实现也比较困难,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,才能实现LED灯的相应的功能,在编程上需要花大量的时间在里面。
结束语
在这次设计中,我真诚地感谢老师和同学们的帮助,在他们的帮助下我顺利的完成了此次设计也使我对单片机的一些相应的周边知识有了更进一步的了解。 在做论文的过程中,老师又反复而耐心地给我指出问题的所在,并帮助我纠正了许多不妥之处。在做系统设计这一过程中,也给我提出了许多意见和建议,并交给我许多解决问题的技巧和方法。
参考文献
[1] 高峰.单片微型计算机原理与接口技术.科学出版社,2007
[2」武庆生,仇梅.单片机原理与应用.电子科技大学出版,1998,12
[3] 朱定华.单片机原理与接口技术.电子工业出版社,2001,4
[4] 刘瑞新.单片机原理及应用教程.机械工业出版社,2003,7
[5」吴普特,牛文全,郝宏科.现代化高效节水灌溉设施.化学工业出版社,2002
[6]刘连吉.ISD单片语音录放器件及电路实现[J]. 青岛海洋大学学报,2003
[7] 阎 石. 数字电子技术基础(第四版)[M].高等教育出版社,2000年5月第一版.
[8] 胡汉才. 单片机原理及其接口技术[M].清华大学出版社,2000年5月第一版.
[9] 何立民. 单片机高级教程[M].北京航空航天大学出版社,2000年5月第一版
烟台工程职业技术学院
课程(设计)成绩评定评分表
评价基元
评价内涵
满分
实评分
平时成绩
30%
能按时完成课程设计(论文)各阶段所要求的工作
10
能综合运用所学知识分析与解决问题的能力、独立工作能力和实际动手能力
14
工作态度认真、端正、虚心、严谨,严格遵守纪律
6
小计
30
评阅成绩
30%
能按任务书要求出成果
3
论文结构完整、合理,条理清晰,对实验方案的论述正确
5
能运用本学科常规研究方法及相关研究手段(如计算机、实验仪器设备等)进行实验、实践并加工处理、整合信息,实验数据可靠,实验结果正确
5
设计用语、格式、图纸(图表)、数据、量和单位符合国家标准,各种资料引用规范
4
视角新颖,主题突出,论据充分,论证有力,分析透彻,计算和结论正确
5
论文中所表述的基本概念清楚,基础知识和专业知识的掌握牢固扎实
6
文字表达通顺无误,字数符合要求
2
小计
30
答辩成绩
40%
答辩时基本概念清楚, 基础知识和专业知识的掌握牢固扎实
10
答辩过程中的自述简明无误,语言流畅
10
能正确回答问题,特别是本课题范围内的基本理论和基本技能问题
20
课题范围以外的提问仅作参考,不计分
小计
40
总成绩合计
100
说明:评定成绩分为优秀、良好、中等、及格、不及格五个等级,实评总分90分(含90分)以上记为优秀,80分(含80分)以上为良好,70分(含70分)以上记为中等,60分(含60分)以上记为及格,60分以下记为不及格。
烟台工程职业技术学院
毕业设计(论文)成绩评定评审等级表
指导教师评审意见
评语:
评定等级:
指导教师(签名):
答辩小组意见
评语:
评定等级:
负责人(签名):
学院抽查意见
评语:
评定等级:
负责人(签名):
展开阅读全文