彩灯变换控制器电路设计.docx
《彩灯变换控制器电路设计.docx》由会员分享,可在线阅读,更多相关《彩灯变换控制器电路设计.docx(18页珍藏版)》请在冰豆网上搜索。
彩灯变换控制器电路设计
目录
1、课程设计目的…………………………………………………………………….2
2、课程设计内容和要求…………………………………………………………….2
2.1、设计内容……………………………………………………………………………………….2
2.2、设计要求……………………………………………………………………………………….2
3、 设计方案………………………………………………………………………………….……2
3.1、设计思路及方案比较…………………………………………………………………………2
3.2、工作原理及硬件软件介绍…………………………………………………………………….4
3.3、硬件电路原理图………………………………………………………………….…………9
3.4、PCB版图设计……………………………………………………………………..…………12
4、课程设计总结……………………………………………………………………………….13
5、参考文献………………………………………………………………………………………13
1、课程设计目的
(1)掌握电子电路的一般设计方法和设计流程;
(2)了解彩灯变换控制电路的基本实现原理;
(3)掌握计数器、显示等中规模数字集成器件的逻辑功能和使用方法。
(4)掌握利用protel绘制电路原理图与制作PCB图的方法。
(5)学习掌握硬件电路设计的全过程。
2.课程设计内容和要求
彩灯变换控制器电路具体设计要求如下:
(1)查阅所用器件技术资料,详细说明设计的彩灯变换控制器电路工作流程;
(2)彩灯变换控制器采用LED数码管的每一段代表一组彩灯,具有显示、清零功能,数码显示快慢可以调节;
(3)按顺序循环显示自然数列,奇数列,偶数列,音乐符号数列。
(4)Protues仿真。
3设计方案
3.1、设计思路及方案比较
3.1.1方案一利用计数器实现
图1 方案一总体设计方框图
这个方案思路很简单,易于想到,而且易于实现。
本方案所用的元件为74LS90、555芯片、74LS139、74HC42以及一些门电路。
该方案主要有三部分构成,第一部分是信号发生器,由555构成1Hz脉冲信号源。
555定时器可以通过选定一定参数的电容和电阻来产生一定频率的脉冲来实现实验所需的一定频率的信号。
555定时器具有原理简单,设计方便等优点。
用来作为脉冲信号源,能够稳定地产生连续的脉冲信号。
第二部分是三个数列的循环电路,这一部分主要是由74LS139及由74LS90构成的30进制计数器组成的选通电路。
选通电路的功能是在第一个10秒将信号送给自然数列,在第二个10秒将信号送给奇偶数列,在第三个10秒将信号送给音乐数列。
而这三个分开的部分是分别由十进制和译码器构成的数列,在选通电路的控制下就可以很轻松地实现设计要求的电路。
三个独立的部分各自在不同的时间段独立地完成相应数列的显示。
第三部分是显示电路,由七段数码管组成。
前面一级的输出信号作为显像管的输入信号,实现了信号的显示。
3.1.2方案二利用单片机实现
主控制器
图2 方案二总体设计方框图
这个方案由单片机来实现,从方案图可以看出,方案二原理简单,电路基本由四部分组成,硬件电路较为简单。
第一部分是单片机复位电路,此部分是满足数码管清零功能要求;
第二部分是时钟振荡电路,能使单片机正常工作;
第三部分是主控制器单片机,完成电路的控制功能;
第四部分是LED数码管显示部分,能动态显示自然数列,奇数列,偶数列,音乐符号数列。
再通过往单片机中下载相应的程序,就可以实现彩灯控制电路。
从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。
3.2工作原理及硬件软件介绍
首先介绍总体的工作原理。
采用方案二,就必须对单片机的基本功能有一定了解,本次选用的是Atmel公司的AT89C52单片机,共有40个引脚。
利用其RES引脚组成的复位电路可以实现对单片机的复位以及对显示数码管的清零,通过时钟振荡电路使单片机正常工作,在单片机的端口接上数码管以及附加的LED8×8阵列,硬件电路就搭建完毕,然后通过KeilC软件进行相应的程序设计,将编译好的程序下载到单片机的片内Flash程序存储器中,即可实现彩灯变换控制器电路功能。
下面分别介绍各个部分的工作原理:
3.2.1单片机复位电路
单片机复位完全通过RST引脚来完成,其基本原理是在单片机的时钟振荡电路启动后,如果RST引脚外加两个机器周期以上的高电平,单片机便实现了复位。
当单片机的RST引脚从高电平跳变到低电平后,单片机退出复位状态,程序便从0000H地址单元开始执行。
因此设计时就采用手动加上电复位电路,在上电复位的基础上增加一个按键开关和电阻用于手动复位。
3.2.2时钟振荡电路
当单片机工作于片内时钟模式时,在XTAL1引脚和XTAL2引脚外接石英晶体和振荡电容,单片机内部包含一个高增益的单级反相放大器,XTAL1引脚和XTAL2引脚分别为片内反相放大器的输入端和输出端口,其工作频率为0—33MHz,振荡电容的值一般取10—30pf。
在实际的使用时应尽量保证外接的晶体振荡器和振荡电容尽可能靠近单片机的XTAL1引脚和XTAL2引脚,这样可以减少寄生电容的影响,使振荡器能够稳定可靠的为单片机CPU提供时钟信号。
3.2.3主控制器
单片机AT89C52具有低电压供电和体积小等特点,四个端口只需要三个口就能满足电路系统的设计需要,
3.2.4显示电路
图3 LED数码管图
显示电路采用一位共阴LED数码管,接受从P0端口输出段码。
下表是具体段码
表1 7段LED显示字符及段码
显示字符
7段共阳极LED段码
7段共阴极LED段码
0
C0H
3FH
1
F9H
06H
2
A4H
5BH
3
B0H
4FH
4
99H
66H
5
92H
6DH
6
82H
7DH
7
F8H
07H
8
80H
7FH
9
90H
6FH
3.2.5附加功能电路原理
在做课程设计的时候听取老师和学长的意见,使课程设计更贴近实际,特加了一个附加功能,就是用LED8×8阵列来动态显示行。
具体为,当LED数码管显示任何一个数字时,LED8×8阵列就同步显示该数字对应的行,例如:
当LED数码管显示0时,LED8×8阵列的第0行就被点亮,其余行是灭的,并且两者是同步的。
原理是,选用共阳极LED8×8阵列,把LED8×8阵列的控制列的8只引脚一起接到单片机的P2端口的第一个引脚上,然后把控制行的8只引脚分别接到P3端口的八只引脚上,从而硬件电路搭建完毕,随后根据要求进行编写相应的程序,即可实现同步动态显示行。
图4 LED8×8阵列图
3.2.6软件程序设计原理
对于采用单片机进行的设计,程序及其重要,只有程序才能使单片机进行相应的控制,才能完成相应的电路,编程时一定要结合硬件电路来进行,下面介绍一下程序的思路
1.定义所需要的单片机的引脚;
2.定义显示数字的数组;
3.定义延时函数;
4.定义显示函数,其中包括LED数码管的显示函数以及LED8×8阵列显示函数;由于选用的是共阴LED数码管,共阳LED8×8阵列,因此要使他们保持同步就必须使两者的共阴与共阳同时变化。
5.最后在主函数中调用显示函数,即可显示。
其中如果要调节显示快慢则只需要改变延时函数即可,而不需要动硬件电路,十分方便。
所编的程序如下所示:
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
sbita=P2^1;
sbitc=P2^0;
sbitb0=P3^0;
sbitb1=P3^1;
sbitb2=P3^2;
sbitb3=P3^3;
sbitb4=P3^4;
sbitb5=P3^5;
sbitb6=P3^6;
sbitb7=P3^7;
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07};
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
voiddislir(uintm)
{
if(m==0)
{
b0=0;
b1=1;
b2=1;
b3=1;
b4=1;
b5=1;
b6=1;
b7=1;
}
elseif(m==1)
{
b1=0;
b0=1;
b2=1;
b3=1;
b4=1;
b5=1;
b6=1;
b7=1;
}
elseif(m==2)
{
b2=0;
b0=1;
b1=1;
b3=1;
b4=1;
b5=1;
b6=1;
b7=1;
}
elseif(m==3)
{
b3=0;
b0=1;
b1=1;
b2=1;
b4=1;
b5=1;
b6=1;
b7=1;
}
elseif(m==4)
{
b4=0;
b0=1;
b1=1;
b2=1;
b3=1;
b5=1;
b6=1;
b7=1;
}
elseif(m==5)
{
b5=0;
b0=1;
b1=1;
b2=1;
b3=1;
b4=1;
b6=1;
b7=1;
}
elseif(m==6)
{
b6=0;
b0=1;
b1=1;
b2=1;
b3=1;
b4=1;
b5=1;
b7=1;
}
elseif(m==7)
{
b7=0;
b0=1;
b1=1;
b2=1;
b3=1;
b4=1;
b5=1;
b6=1;
}
}
voiddisplay(n)
{voiddislir(uintm);
a=1;
c=0;
P0=table[n];
dislir(n);
delay(500);
a=0;
c=1;
delay(500);
}
main()
{
while
(1)
{
display(0);
display
(1);
display
(2);
display(3);
display(4);
display(5);
display(6);
display(7);
display
(1);
display(3);
display(5);
display(7);
display(0);
display
(2);
display(4);
display(6);
display(0);
display
(1);
display
(2);
display(3);
display(4);
display(5);
display(6);
display(7);
}
}
3.3硬件电路原理图
3.3.1单片机复位电路
利用按键开关进行手动上电复位,所需原件10K电阻一个,10uf电容一个,电源VCC,以及接地GND,当需要复位时,只需按动开关就可以复位。
图5 单片机复位电路图
3.3.2时钟振荡电路
对于单片机,时钟非常重要,因此时钟振荡电路要保持稳定,因此采用石英晶体和电容组成时钟振荡电路,石英晶体一般采用的频率为12.5MHz,两个电容一般取10到40nf。
图6 时钟振荡电路图
3.3.3主控制器部分
主控制部分采用AT89C52单片机,需要用到的端口有P0、P2、P3。
图6 主控制器部分图
3.3.4显示电路
显示电路采用的是共阴LED数码管,通过单片机对其控制,使其显示出自然数列,奇数列,偶数列,音乐符号数列。
图7 显示电路图
3.3.5附加功能电路
图7 附加8×8阵列显示电路图
3.3.6总体电路图
图8 总的系统电路原理图
3.4PCB版图设计
图9 PCB电路图
4、课程设计总结
在本次课程设计的过程中,我发现很多的问题,由于以前没接触过单片机,所以我想借助这次课程设计的机会来学习一下单片机的基本知识并利用单片机来完成本次课程设计。
因此主要任务就是学习单片机,并学会用相关的软件来进行仿真。
我觉得如果要利用单片机来完成重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前学过C语言,但是单片机的C程序还得要结合具体的电路来进行设计,我觉的写好一个程序并不是一件简单的事,需要深刻理解单片机的引脚作用,并理解外搭电路的工作原理。
最终当结果仿真出来时感觉效果比较好。
而且在PCB版图的制作过程中,要细心,更要努力集中精力。
经过本次的课程设计,我收获很多,不仅尝试了使用单片机来进行电路设计而且明白了有好多的东西,只有我们去试着做了,才能真正的掌握。
在学习中学习理论和动手实践要结合起来,这样才能更深的去理解所学的知识。
从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,这就是我在这次课程设计中的最大收获。
5、参考文献
(1)童诗白.模拟电子技术基础.北京:
高等教育出版社,2002
(2)张建华.数字电子技术.北京:
机械工业出版社,2004
(3)陈汝全.电子技术常用器件应用手册.北京:
机械工业出版社,2005
(4)毕满清.电子技术实验与课程设计.北京:
机械工业出版社,2005
(5)潘永雄.电子线路CAD实用教程.西安:
西安电子科技大学出版社,2002
(6)张亚华.电子电路计算机辅助分析和辅助设计.北京:
航空工业出版社,2004