毕业设计 基于单片机的键控彩灯电路设计.docx

上传人:b****9 文档编号:23383942 上传时间:2023-05-16 格式:DOCX 页数:20 大小:572.42KB
下载 相关 举报
毕业设计 基于单片机的键控彩灯电路设计.docx_第1页
第1页 / 共20页
毕业设计 基于单片机的键控彩灯电路设计.docx_第2页
第2页 / 共20页
毕业设计 基于单片机的键控彩灯电路设计.docx_第3页
第3页 / 共20页
毕业设计 基于单片机的键控彩灯电路设计.docx_第4页
第4页 / 共20页
毕业设计 基于单片机的键控彩灯电路设计.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

毕业设计 基于单片机的键控彩灯电路设计.docx

《毕业设计 基于单片机的键控彩灯电路设计.docx》由会员分享,可在线阅读,更多相关《毕业设计 基于单片机的键控彩灯电路设计.docx(20页珍藏版)》请在冰豆网上搜索。

毕业设计 基于单片机的键控彩灯电路设计.docx

毕业设计基于单片机的键控彩灯电路设计

毕业设计(论文)任务书

设计题目基于单片机的键控彩灯电路设计

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

 

目录

一.摘要…………………………………………………………………………………………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,设计一个彩灯控制器,通过键控让发光二极管工作。

前言

电子技术是当今高新技术的“龙头”,各先进国家无不把它放在优先的发展的地位。

电子技术是电类专业的一门重要的技术基础课,课程的显著特点之一是它的实践性。

要想很好的掌握电子技术,除了掌握基本器件的原理,还要掌握单片机技术,本课题就是利用单片机技术设计键控彩灯电路。

 

一、设计目的

通过课程设计的教学实践,将课本所学应用于实际中,缩小理论与实际的差距,记忆不学习、掌握单片机应用系统的有关知识,加深了解单片机的工作原理。

初步掌握简单单片机应用系统的设计、制作、调试的方法。

是自己的设计水平和对所学的只是的应用能力以及分析问题解决问题的能力得到全面提高。

2、设计要求

本课题一单片机为核心,利用其中断器和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灯的亮灭。

程序如下:

ORG0000H;单片机上电后从0000H地址执行

AJMPSTART;跳转到主程序存放地址处

ORG0030H;设置主程序开始地址

START:

MOVSP,#60H;设置堆栈起始地址为60H

CLRP1.0;P1.0输出低电平,使LED1点亮

ACALLDELAY;调用延时子程序

SETBP1.0;P1.0输出高电平,使LED1熄灭

CLRP1.1;P1.1输出低电平,使LED2点亮

ACALLDELAY;调用延时子程序

SETBP1.1;P1.1输出高电平,使LED2熄灭

CLRP1.2;P1.2输出低电平,使LED3点亮

ACALLDELAY;调用延时子程序

SETBP1.2;P1.2输出高电平,使LED3熄灭

CLRP1.3;P1.3输出低电平,使LED4点亮

ACALLDELAY;调用延时子程序

SETBP1.3;P1.3输出高电平,使LED4熄灭

CLRP1.4;P1.4输出低电平,使LED5点亮

ACALLDELAY;调用延时子程序

SETBP1.4;P1.4输出高电平,使LED5熄灭

CLRP1.5;P1.5输出低电平,使LED6点亮

ACALLDELAY;调用延时子程序

SETBP1.5;P1.5输出高电平,使LED6熄灭

CLRP1.6;P1.6输出低电平,使LED7点亮

ACALLDELAY;调用延时子程序

SETBP1.6;P1.6输出高电平,使LED7熄灭

CLRP1.7;P1.7输出低电平,使LED8点亮

ACALLDELAY;调用延时子程序

SETBP1.7;P1.7输出高电平,使LED8熄灭

ACALLDELAY;调用延时子程序

AJMPSTART;8个LED流了一遍后返回到标号START处再循环

DELAY:

;延时子程序

MOVR0,#255;延时一段时间

D1:

MOVR1,#255

DJNZR1,$

DJNZR0,D1

RET;子程序返回

END;程序结束

6、循环移位法

在上个程序中我们是逐个控制P1端口的每个位来实现的,因此程序显得有点复杂,下面我们利用循环移位指令,采用循环程序结构进行编程。

我们在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P1口,这样就实现“流水”效果啦。

由于8051系列单片机的指令中只有对累加器ACC中数据左移或右移的指令,因此实际编程中我们应把需移动的数据先放到ACC中,让其移动,然后将ACC移动后的数据再转送到P1口,这样同样可以实现“流水”效果。

具体编程如下所示。

ORG0000H;单片机上电后从0000H地址执行

AJMPSTART;跳转到主程序存放地址处

ORG0030H;设置主程序开始地址

START:

MOVSP,#60H;设置堆栈起始地址为60H

MOVA,#0FEH;ACC中先装入LED1亮的数据(二进制的11111110)

MOVP1,A;将ACC的数据送P1口

MOVR0,#7;将数据再移动7次就完成一个8位流水过程

LOOP:

RLA;将ACC中的数据左移一位

MOVP1,A;把ACC移动过的数据送p1口显示

ACALLDELAY;调用延时子程序

DJNZR0,LOOP;没有移动够7次继续移动

AJMPSTART

DELAY:

;延时子程序

MOVR0,#255;延时一段时间

D1:

MOVR1,#255

DJNZR1,$

DJNZR0,D1

RET;子程序返回

END;程序结束

7、查表法

上面的两个程序都是比较简单的流水灯程序,“流水”花样只能实现单一的“从左到右”流方式。

运用查表法所编写的流水灯程序,能够实现任意方式流水,而且流水花样无限,只要更改流水花样数据表的流水数据就可以随意添加或改变流水花样,真正实现随心所欲的流水灯效果。

我们首先把要显示流水花样的数据建在一个以TAB为标号的数据表中,然后通过查表指令“MOVCA,@A+DPTR”把数据取到累加器A中,然后再送到P1口进行显示。

具体源程序如下,TAB标号处的数据表可以根据实现效果的要求任意修改。

ORG0000H;单片机上电后从0000H地址执行

AJMPSTART;跳转到主程序存放地址处

ORG0030H;设置主程序开始地址

START:

MOVSP,#60H;设置堆栈起始地址为60H

MOVDPTR,#TAB;流水花样表首地址送DPTR

LOOP:

CLRA;累加器清零

MOVCA,@A+DPTR;取数据表中的值

CJNEA,#0FFH,SHOW;检查流水结束标志

AJMPSTART;所有花样流完,则从头开始重复流SHOW:

MOVP1,A;将数据送到P1口

ACALLDELAY;调用延时子程序

INCDPTR;取数据表指针指向下一数据

AJMPLOOP;继续查表取数据

DELAY:

MOVR0,#255;延时一段时间

D1:

MOVR1,#255

DJNZR1,$

DJNZR0,D1

RET;子程序返回;

下面是流水花样数据表,用户可据要求任意编写

TAB:

DB11111110B;二进制表示的流水花样数据,从低到高左移

DB11111101B

DB11111011B

DB11110111B

DB11101111B

DB11011111B

DB10111111B

DB01111111B

DB01111111B;二进制表示的流水花样数据,从高到低右移DB10111111B

DB11011111B

DB11101111B

DB11110111B

DB11111011B

DB11111101B

DB11111110B

DB0FEH,0FDH,0FBH,0F7H;十六进制表示的流水花样数据

DB0EFH,0DFH,0BFH,7FH

DB7FH,0BFH,0DFH,0EFH

DB0F7H,0FBH,0FDH,0FEH

„„

DB0FFH;流水花样结束标志0FFH

END;程序结束

8、复位电路

复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。

除PC之外,复位操作还对其它一些专用寄存器有影响,它们的复位状态如表1所示:

单片机的RST管脚为主机提供了一个外部复位信号输入口。

复位信号是高电平有效,高电平有效的持续时间为2个机器周期以上。

单片机的复位方式可由手动复位方式完成。

复位电路如图所示

四、使用说明

1、花型选择按钮,每按一次切换一次花型,循环切换4种花型。

2、复位开关,返回第一种花型及慢速状态。

3、快慢控制按钮,用于快/慢两种节拍的切换。

五、流程图设计

 

 

#include

unsignedcharkey=1;

bitspeed=0;

voiddelay()

{

unsignedintj,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++);

}

}

voidint_init()

{

IT0=1;

IT1=1;

EX1=1;

EX0=1;

EA=1;

}

voidshow1(void)

{

unsignedchari;

while

(1)

{

if(key!

=1)break;

for(i=0;i<8;i++)

{

if(key!

=1)

break;

P1=~(1<

delay();

}voidshow2(void)

{

unsignedchari;

while

(1)

{

if(key!

=2)

break;

for(i=0;i<8;i++)

{

if(i<7)

P1=~(3<

else

P1=~(0x81);

delay();

if(key!

=2)

break;

}

}

}

voidshow3(void)

{

while

(1)

{

if(key!

=3)

break;

P1=0xaa;

delay();

P1=0x55;

delay();

}

}

voidshow4(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)

{

case1:

show1();break;

case2:

show2();break;

case3:

show3();break;

case4:

show4();break;

default:

show1();

}

}

}

voidinterrupt_int0()interrupt0

{

speed=~speed;

}

voidinterrupt_int1()interrupt2

{

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月第一版

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1