您好,欢迎访问三七文档
硬件的设计姓名:学号:专业:班级:指导老师:2015年1月15日目录1.系统设计方案............................................1.1设计思路1.2方案的设计与选择2.电路的硬件设计..........................................2.1硬件原理框图2.2单片机AT89S52系统的设计2.3时钟电路2.4复位电路2.5数码管2.6红黄绿LED灯2.7蜂鸣器2.8光电开关2.9ISP下载端口3.0硬件设计3.系统软件设计............................................3.1软件程序4.系统调试................................................4.1功能一4.2功能二4.3功能三5结论与总结..............................................5.1结论5.2总结一.系统设计方案1.设计思路利用AT89S52、数码管、LED灯、光电开关和蜂鸣器实现一个按键控制三个功能的转换,按照实验要求将程序编写,再将程序拷入单片机中,程序要实现通过一个外部中断按键来实现三种功能的切换,即数码管0~9的变换、数码管与LED小灯配合按照规定时间进行交替闪烁、通过光电开关的通断实现蜂鸣器的响应。2.方案的设计用AT89S52单片机编程的方法,通过一个按键作为外部中断源。当按键被按第一下时,实现数码管重复0-9的倒计时;当按键被按第二下时,数码管由1到3时,LED红灯亮,再由1-3时LED黄灯亮,最后1-3时LED绿灯亮,并重复循环;当按键被按第三下时,用小纸片遮住光电开关时,蜂鸣器发出叫声,拿走则蜂鸣器不叫的功能。并三个功能能重复循环。二.电路的硬件设计硬件电路的设计决定一个系统的的功能,是设计的基础所在,而一般设计的目标:可靠,简洁,高效,优化,好的硬件电路可以给程序的编写带来极大的优势,同时使可以很好的提高该信号设计的精度和灵敏度,使整个系统工作协调有序。1.硬件原理框图采用以AT89S52单片机芯片作为核心处理器,编程实现各种不同功,。结构简单,思路仅仅有条,而根据设计的基本要求,我们又把其细分为不同的功能模块,各个功能模块相互联系,相互协调,通过单片机程序构成一个统一的整体,其整体电路原理框图如图所示:AT89S52单片机时钟复位按键数码管红黄绿LED灯蜂鸣器光电开关2.单片机AT89S52系统的设计AT89S52单片机是该信号发生器的核心,具有2个定时器,32个并行I/O口,1个串行I/O口,5个中断源。由于本设计功能复杂,数据处理精确,数据存储空间也足够,在单片机最小最小系统中,单片机从P0.0-P0.7口给数码管不同电压显示0-9的数字;P2.4、P2.5、P2.6连接三个LED灯,P2.7连接蜂鸣器,P3.3连接光电开关用来控制蜂鸣器.3.硬件设计4.时钟电路时钟电路用于产生单片机工作时所必须的时钟控制信号。单片机内各功能部件的运行都以时钟控制信号为基准,严格按时序一步一步地工作。时钟频率直接影响单片机的速度,时钟电路的稳定性也直接影响单片机系统的稳定性。单片机的时钟电路有两种方式:内部时钟方式和外部时钟方式。本次设计采用内部时钟方式,在这种方式下,单片机内部的高增益反相放大器通过XTAL1、XTAL2外接作为反馈元件的外部晶体振荡器与电容组成的并联谐振回路构成一个自激振荡器,向内部时钟电路提供振荡时钟。振荡器的频率主要取决于晶体的振荡频率。单片机的晶体振荡可以在1-152MHZ范围内选择,电容C1、C2选择范围15-45PF(通常选择30PF),电容的大小会影响振荡器的稳定性和起振的速度。时钟电路如图所示:5.复位电路由于阻容串连电路中电容C1两端电压不能突变,因此在上电时,RST端会维持一段时间的低电平起到低电平复位信号的作用,随着Vcc电源通过电阻R2向电容C1充电,C1两端的电压差逐渐增大,经过一段时间后变为高电平,上电复位信号结束。在工作过程中,当按键被按下时,电容C1两端被短路放电,按键松开后RST端仍会维持一段时间的低电平起到低电平复位信号的作用,随着Vcc电源通过电阻R2向电容C1充电,C1两端的电压差逐渐增大,经过一段时间后变为高电平,手动复位信号结束。复位电路如图所示:6.数码管数码管显示器是单片机应用中常用的输出设备。它有若干发光二极管组成,当发光二极管导通时,相应的一个点或一个笔画发光,控制不同组合的二极管导通,就能显示出各种字符。LED数码管有共阴极和共阳极两种连接方法。共阴数码管的发光二极管阴极必须接低电平,当某发光二极管的阳极为高电平时次二极管点亮;共阳极数码管的发光二极管时阳极并接到高电平,对于需要点亮的发光二极管,使其阴极接低电平即可。电路如下图。7.红黄绿LED灯LED灯其实就是发光二极管,正极接+5V的电源,阴极分别接AT89S52的P2.4、P2.5、P2.6端口上,当有低电平时,所对应的发光二极管就被点亮。8.光电开关光电开关用PNP三极管和发光二极管,通过一个导线把PNP的发射极和AT89S52中P3.3口相连,当发光二极管工作时,使PNP的基极产生电压,从而PNP导通,P3.3口的电压变成高电平。如图所示:9.蜂鸣器蜂鸣器分两种,即交流和直流。在设计中采用了直流控制蜂鸣器的鸣叫,并把NPN的基极与AT89S52中P2.7口相连。当P2.7有低电平时,蜂鸣器工作。10.ISP下载端口ISP:通常是指通过232接口给CPU下载代码,只有2、3、5三个引脚。而这几个接口,从名字的角度来看“RST,SCK,MIOS,MOSI。分别对应AT89S52中RST接口、P1.7、P1.6、P1.5。三.系统软件设计本次设计制作一个多功能单片机,可以计时,计数,发光二极管亮、蜂鸣器响等功能。设计原理图,其中单片机通过软件对各个功能进行转换,使功能一实现9-0的倒计时;功能二实现数码管控制LED灯的亮灭;功能三实现由光电开关控制蜂鸣器工作。其中按键使用外部中断对功能实行控制。1.软件程序#includereg51.h#defineucharunsignedcharunsignedchartime,k=0,i,a=1;voidtimer1();voiddisplay();voiddisplay1();voidgongnengsan();tab2[]={0xef,0xdf,0xbf};tab1[]={0xf9,0xa4,0xb0,0xf9,0xa4,0xb0,0xf9,0xa4,0xb0};tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};sbitbeef=P2^7;sbitguangdian=P3^3;sbitled=P1^0;main(){while(1){EA=1;EX0=1;IT0=1;if(k==1)display();if(k==2)display1();if(k==3)gongnengsan();}}voidISR0()interrupt0{k++;if(k==4)k=0;}voiddisplay(){timer1();while(a){if(time==20){time=0;P0=tab[i];i++;if(i9)i=0;}if(k!=0){a=0;ET0=0;TR0=0;}}}voiddisplay1(){timer1();while(a){if(time==20){time=0;P0=tab1[i];P2=tab2[i/3];i++;if(i=9)i=0;}if(k!=1){a=0;ET0=0;TR0=0;P0=0xff;P2=0xff;}}}voidgongnengsan(){a=1;while(a){P0=0xff;if(guangdian==0)P2=0x7f;if(guangdian==0)P2=0xff;if(k!=2)a=0;}}voidtimer1(){TMOD=0x01;TH0=0x30;TL0=0xb0;EA=1;ET0=1;TR0=1;time=0;i=0;a=1;}timer()interrupt1{TH0=0x30;TL0=0xb0;time++;}四.系统调试1.功能一调试按键按下实现数码管倒计时实物图如下在进行功能一调试时发现定时器中断与外部中断有相互干扰,于是在每个功能之后将定时器给关闭可以避免两个中断的冲突if(k!=0){a=0;ET0=0;TR0=0;2.功能二调试功能二是实现数码管1~3的周期性变换伴随着LED小灯由红黄绿之间的变化在调试功能二时发现当按键再次被按下时数码管与LED仍然亮着,这影响了实验效果于是在程序之后加上if(k!=1){a=0;ET0=0;TR0=0;P0=0xff;P2=0xff;}在调试时发现绿灯格外亮经过排查是LED引脚虚焊导致。3.功能三调试功能三是实现当光电开关被挡住蜂鸣器就响,移开就无响应功能三在调试过程中没有问题。五.结论与总结5.1结论本次课程设计是通过AT89S52、数码管、LED灯、光电开关和蜂鸣器实现一个按键控制三个功能的转换,程序要实现通过一个外部中断按键来实现三种功能的切换,即数码管0~9的变换、数码管与LED小灯配合按照规定时间进行交替闪烁、通过光电开关的通断实现蜂鸣器的响应。在测试过程中发生故障次数最多的原因是电路板的虚焊所导致。其次就是编程时中断的使用还不是很熟练,经过指导老师的帮助以及多次的软件与硬件的修改于调试,现在基本已经符合实验要求。5.2总结通过这次的课程设计丰富了我们的动手实践能力,使我们不在拘泥于书本,由理论向现实迈进,同时温顾了我们已经学过的知识例如中断、定时器、I\O口的控制、以及相关的硬件知识如限流电阻的选择、晶振中电容到底选取等等。在实验过程中通过与同学之间相互交流完善了实验成果,锻炼了我们的语言交流能力,在试验中非常感谢指导老师的帮助,解决了硬件上的问题才使课程设计得以进行下去。通过这次单片机的实验,使我学到了不少实用的知识,更重要的是,做实验的过程,思考问题的方法,这与做其他的实验是通用的,真正使我们受益匪浅。
本文标题:xianwala
链接地址:https://www.777doc.com/doc-2868104 .html