资源预览内容
第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
第9页 / 共12页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
单片机原理及其应用课程设计课 题: 基于 AT89C51 单片机的 LED 数字倒计时器设计专 业: 电工程及其自动化班 级: 2013 级 4 班学 号: 姓 名: 设计日期: 2015 年 6 月 6 日2015 年 6 月 19 日成 绩: AT89C51 单片机 LED 数字倒计时器设计报告一、设计目的作用1、掌握 51 单片机最小系统的设计;2、掌握按键电路设计、LED 数码管的使用;3、掌握 C51 的编程方式。4、培养我们的团结合作能力。5、锻炼我们的动手实践能力。二、设计要求基于 AT89C51 单片机的 LED 数字倒计时器主要具有如下功能,具体要求如下:(1)LED 数码管显示倒计时时间。(2)倒计时过程中能设置多个闹钟,当倒计时值倒计到设定值时会发出 2s 的报警声音。 (K1 设置小时,K2 设置分钟,K3 设置秒钟,K4 完成退出)(3)通过按键可以对倒计时设定处置。倒计时初值范围在 24:00:0000:00:60之间,用户可根据需要对其进行设置,设置成功后复位初始值为成功设定值。三、设计的具体实现1、设计原理(1)LED 数字倒计时器主要由 AT89C51 单片机、晶振电路、复位电路、按键电路、数码管电路、蜂鸣电路组成(如图 1.1) 。图 1.1 LED 数字倒计时器系统设计框图数码管电路晶振电路复位电路按键电路蜂鸣电路AT89C51(2)手绘草图2、系统设计(1)晶振电路的分析a.晶振电路原理:晶振是通过电激励来产生固定频率的机械振动,而振动又会产生电流反馈给电路,电路接到反馈 后进行信号放大,再次用放大的电信号来激励晶振机械振动,晶振再将振动产生的电流反馈给电路,如此这般。当电路中的激励电信号和晶振的标称频率相同时,电 路就能输出信号强大,频率稳定的正弦波。整形电路再将正弦波变成方波送到数字电路中供其使用。b.晶振电路的特点:晶振是石英振荡器的简称,英文名为 Crystal,晶振分为有源晶振和无源晶振两种,其作用是在电路产生震荡电流,发出时钟信号。它是时钟电路中最重要的部件,它的作用是向 IC 等部件提供基准频率,它就像个标尺,工作频率不稳定会造成相关设备工作频率不稳定,自然容易出现问题。由于制造工艺不断提高,现在晶振的频率偏差、温度稳定性、老化率、密封性等重要技术指标都很好,已不容易出现故障,但在选用时仍可留意一下晶振的质量。图 1.2 晶振电路原理图(2)复位电路的分析a.复位电路原理系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。RC 复位电路可以实现上述基本功能,但解决不了电源毛刺和电源缓慢下降(电池电压不足)等问题,而且调整 RC 常数改变延时会令驱动能力变差。左边的电路为高电平复位有效,右边为低电平有效, 复位按键为手动复位开关,电容可避免高频谐波对电路的干扰。b.复位电路的作用:复位电路是为确保微机系统中电路稳定可靠工作必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为 5V5%,即 4.755.25V。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当 VCC 超过 4.75V 低于 5.25V 以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。图 1.3 复位电路原理图(3)按键电路的分析 a.按键电路的原理: 按键 B1/B2/B3/B4 断开时,P1.0/P1.1/P1.2/P1.3 输入为高电平;按键B1/B2/B3/B4 闭合后,P1.0/P1.1/P1.2/P1.3 输入为低电平。每按一次按键,就会有一次低电平,单片机就会对低电平计数,从而来调节定时时间。由于按钮是机械触点,当机械触点断开、闭合时,会有抖动动,这种抖动对于计算机来说,是完全能感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级。你只按了一次按钮,可是计算机却已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行的次数是偶数次,那就不对了,所以必须运用延时程序消除按键的抖动。b.按键电路的作用: 每次复位之后,三个两位数码管全部都会显示为 0,而与 P1.0 相接的按钮 B1,每次按下一次,就会产生一次低电平,单片机就会计数一次,从而调节倒计时的小时时间,B2 则调节分钟,B3 则调节秒钟,与这三个按键分别控制数码管的显示倒计时的小时、分钟、秒。与这三个按键不同的是,按键 B3 的作用是开始倒计时。这些按键的功能都是通过编程来控制的。图 1.4 按键电路原理图(4)数码管电路的分析a.数码管电路的组成:1六位数码管:分别显示小时,分钟和秒钟。2含有八个电阻带电源的排阻:分别与三个数字显示的数码管并联,电源给数码管提供电压,电阻的作用是保护数码管不被烧坏。3将 PO 口的八位与数码管和排阻连载一起的导线,将 P2 口的六位分别与六位数码管的六个位选引脚接在一起。b.数码管电路的原理:7 段数码管一般由 8 个发光二极管组成,其中由 7 个细长的发光二极管组成数字显示,另外一个圆形的发光二极管显示小数点。当发光二极管导通时,相应的一个点或一个笔画发光。控制相应的二极管导通,就能显示出各种字符,尽管显示的字符形状有些失真,能显示的数符数量也有限,但其控制简单,使有也方便。发光二极管的阳极连在一起的称为共阳极数码管,阴极连在一起的称为共阴极数码管。(5)蜂鸣电路的分析a.蜂鸣电路的组成:两个阻值为一千欧姆的电阻,一个阻值为 100 欧姆的电阻,一个蜂鸣器,一个三极管,一个接地,以及导线。b.蜂鸣电路的原理:蜂鸣电路是利用 I/O 定时翻转电平产生驱动波形对蜂鸣器进行驱动。在程序上,可以使用 TIMER0 来定时,将 TIMER0 的预分频设置为/1,选择 TIMER0 的始终为系统时钟(主振荡器时钟/4),通过按键可以在 TIMER0 的载入/计数寄存器内调节设置时间,就能将 TIMER0 的中断设置设置为倒计时时间,当需要I/O 口驱动的蜂鸣器鸣叫时,只需要在进入 TIMER0 中断的时候对该 I/O 口的电平进行翻转一次,直到蜂鸣器不需要鸣叫的时候,将 I/O 口的电平设置为低电平即可。不鸣叫时将 I/O 口的输出电平设置为低电平是为了防止漏电。图 1.5 蜂鸣电路原理图3、系统实现(1)LED 数字倒计时器的程序流程图(2)LED 数字倒计时器的 C 语言程序编码#include sbit kh=P10;sbit km=P11;sbit ks=P12; sbit st=P13; sbit b=P37;unsigned char table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e; unsigned char i=0,hour=0,minute=0,second=0; void delayms(unsigned int x) unsigned char a=160; while(x-) while(a-); a=160; main() TH0=(65536-50000)/256; TL0=(65536-50000)%256; TMOD=1; TR0=0; ET0=1; EA=1; while(1) P0=tablehour/10; P2=0x20; delayms(1); P2=0xff; P0=tablehour%10; P2=0x10; delayms(1); P2=0xff; P0=tableminute/10; P2=0x08; delayms(1); P2=0xff; P0=tableminute%10; P2=0x04; delayms(1); P2=0xff; P0=tablesecond/10; P2=0x02; delayms(1); P2=0xff; P0=tablesecond%10; P2=0x01; delayms(1); P2=0xff; if(!kh) delayms(200); hour+; if(hour23)hour=23; else if(!km) delayms(200); minute+; if(minute59) minute=59; else if(!ks) delayms(200); second+; if(second59) second=59; if(!st) delayms(200); TR0=1; if(TR0=1&hour=0&minute=0&second=20) i=0; second-; if(second59) second=59;minute-; if(minute59) minute=59; hour-; if(hour23) hour=0; minute=0; second=0; TR0=0; (4)LED 数字倒计时器仿真图(5)焊接好的实物图四、总结关于这次课程设计,我们花费了比较多的心思,既是对课程理论内容的一次复习和巩固,还让我们丰富了更多与该专业相关的其他知识,比如软件应用等。在这次实验中遇到的具体的问题:在 proteus 中设计好原理图,并运行后发现,数字倒计时器的复位功能无效,经过与组员之间的反复讨论和检验,终于发现问题的症结所在:复位电路的线路连接错误,其中两条线路交叉,中间少一个节点。除了对此次设计的准备工作之外,我们还学到了很多平时难得的东西,首先是团队协作,在这次设计当中,难免和同学产生观点和意见的分歧,以及分工明细、时间安排等不合理,通过这次设计,我们体会到了团结合作的重要性及力量之强大,还有让我们处理事情更加有条理,思路更加清晰明了了,发现、提出、分析、解决问题和实践能力的提高都将受益于我在以后的学习、工作和生活中。从这课程设计中,我学会了怎样用你 c 语言编程来控制单片机,这是以前没学到的东西,此外,还要查阅许多的资料来填补知识的空缺,比如说软件的使用等。最后老师的提问让我们对单片机有了更为深入、更加清晰的了解。五、附录元件清单;元件名称 型号 数量单片机最小开发板 STC89C52 1电阻 10K 1按键 5数码管 2 位一体 共阳 3集成块 74LS245 3三极管 9015 1蜂鸣器 1电阻 1K 2电阻 100 1电阻 2.7K 4电阻 330 8集成块 74LS07 1AC/DC(5V/1A)电源1单排插针 40 2双排插针 40 29X15cm 万用板(3连孔)1杜邦线 15六、参考文献9787115256652张毅刚
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号