倒计时提醒器设计方案课程设计方案_第1页
倒计时提醒器设计方案课程设计方案_第2页
倒计时提醒器设计方案课程设计方案_第3页
倒计时提醒器设计方案课程设计方案_第4页
倒计时提醒器设计方案课程设计方案_第5页
已阅读5页,还剩5页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE第7页共10页中北大学单片机课程设计说明书第1页共10页1引言HYPERLINK”http://baike.baidu.com/view/1012.htm"\t"_blank"单片机是一种集成HYPERLINK”http://baike。baidu.com/view/134362.htm"\t"_blank"电路HYPERLINK"http://baike.baidu.com/view/26651。htm”\t”_blank"芯片,是采用HYPERLINK”http://baike。baidu.com/view/1081357.htm"\t"_blank"超大规模集成电路技术把具有数据处理能力的HYPERLINK"http://baike.baidu.com/view/14045.htm"\t"_blank”中央处理器CPUHYPERLINK"http://baik/view/151093.htm"\t"_blank"随机存储器RAM、HYPERLINK”http://baike.baidu.com/view/188818.htm”\t"_blank"只读存储器ROM、多种I/O口和HYPERLINK”http://baike.baidu。com/view/597855.htm"\t”_blank"中断系统、定时器/HYPERLINK"http://baike。baidu.com/view/928508.htm”\t"_blank"计时器等功能(可能还包括显示驱动电路、HYPERLINK”http://baike。baidu。com/view/849406.htm"\t"_blank"脉宽调制电路、模拟多路HYPERLINK"http://baike。baidu.com/view/110440.htm"\t”_blank"转换器、HYPERLINK"http://baike.baidu。com/view/990260.htm"\t”_blank”A/D转换器等电路)集成到一块硅片上构成的一个小而完善的HYPERLINK"http://baike.baidu.com/view/932916.htm”\t"_blank”微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位HYPERLINK"http://baike.baidu。com/view/1012.htm"\t"_blank"单片机,发展到现在的32位300M的高速单片机.89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS—51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案.单片机也被称作“单片微型计算机”、“微控制器”、“嵌入式微控制器”。单片机一词最初是源于“SingleChipMicrocomputer简称SCM。随着SCM在技术上、体系结构上不断扩展其控制功能,单片机已不能用“单片微型计算机”来表达其内涵。国际上逐渐采用“MCU”(MicroControllerUnit)来代替,形成了单片机界公认的、最终统一的名词.为了与国际接轨,以后应将中文“单片机”一词和“MCU"唯一对应解释.在国内因为“单片机”一词已约定俗成,故而可继续沿用.我们所做的是单片机板子,它在工作原理和结构上基本类似于单片机,是单片机的压缩型,便于我们需诶和研究。2方案设计与论证近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。现在,在许多领域中,定时器得到了广泛的应用,比如在体育比赛中的计时器;安全措施中的定时报警器;游戏中的倒计时;维持秩序的交通信号灯;红路灯,交通控制器,闹钟等等。可见倒计时器在社会中的重要性.当然,设计倒计时器的方法很多,以下是设计方案。设计方案如下:基于AT89C51单片机的数码管显示模块显示的倒计时器.主要是以单片机来控制,用按键来设定倒计时初始时刻的值,数码管作为显示模块来显示剩余的时间。此电路对于倒计时器中的LED数码管示器来说,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。3硬件单元电路设计与参数计算LED数码管倒计时器以AT89C51单片机为核心,起着控制作用.系统包括九位数码管显示电路,按键电路,复位电路,时钟电路以及蜂鸣器电路。倒计时的总体框图如下图1所示:AT89C51按键电路模块晶振电路模块复位电路数码管显示电路模块报警电路模块图1倒计时的总体框图4软件设计与流程图本系统中,是利用软件和硬件相互结合,以实现电路功能.软件在系统中起着举足轻重的作用,利用程序对硬件达到控制作用。因此下面说明软件的实现.4.1倒计时器主程序流程图程序的的开始时初始化数码管的段选和位选,数码管不显示。程序中用到了两个定时器,接下来先设定定时器0和定时器1的工作方式,并且给两个定时器装初值,定时器0的定时时间是1ms,用作扫描数码管显示,定时器1的定时时间是10ms,用作定时器时间的递减。然后给定时器设定初值,开启定时器0。最后进入死循环函数,在循环函数中,对按键进行扫描,如果有键按下,执行按键函数,并检查是否需要报警。如果没有按键按下,则直接检查是否需要报警。流程图如下图2所示:开始开始初始化P2口和P3口,全置为高电平设定定时器0工作方式给定时器0设初值有按键按下?有按键按下?否是是是执行按键功能执行报警程序执行报警程序设定倒计时的初值开启定时器0图2倒计时器主程序流程图4.2定时器0的中断程序流程图定时器0的定时时间是1ms,用作扫描数码管显示,在定时器0开启时,定时器0开始定时,此时主程序正常运行,当定时器0的定时时间到时,主程序不在执行,开始进入中断程序,在中断程序中,对9位数码管进行动态扫描.中断程序执行完后返回主程序。如图3所示。执行主程序执行一条指令执行主程序执行一条指令定时器0有中断请求?否是是是取下一条指令保护现场和断点定时器0中断服务程序(完成数码管各位的扫描)恢复现场返回图3定时器0的中断程序流程图5。总电路5.1倒计时器总原理图倒计时原理图由一块AT89SC51单片机器控制作用,单片机的P1^0到P1^3分别接的按键电路,即3个微动开关。P3口与显示电路的数码管的段选相连,起到控制数码管的段选的的作用。P2^0口和P2^1口分别对应数码管的2个位选,起到对2个数码管的扫描作用,其中的2个三极管起着开关作用,对应数码管的选通。P1^0口接蜂鸣器报警电路。如图5所示.图4倒计时器总原理图5。2整体电路仿真图以及仿真结果分析系统仿真用的是Proteus软件,可通过仿真显示出所设计系统的功能,对于程序的调试等有很大的帮助。系统仿真时首先在使用KeilC译码器,把所写的程序进行编译,同时在仿真器里设置生成HEX文件,编译无错误进行Proteus仿真。等所有的原件都连接完成后可以把KeilC编译生成的无错误文件加载到AT89C51中,方法是,右键点中器件然后再用左键点击,出来一个对话框在programfile后选择要添加的文件,文件要求必须是HEX文件.然后可以点击运行观察现象,看与自己设置的是否符合,如果不相符再查找错误进行修改,一般的错误都是程序中的,所以要认真的读取程序的每一个部分.系统的仿真图如下图6所示。图5倒计时器仿真图启动Proteus软件的play按钮,出现如上图5所示,以上三个开关分别设定倒计时的加分钟个位数,十位数,开启定时器。当分,秒的值全为0时,发出报警声。从仿真图可知,本系统的程序已达到要求。在此电路系统的仿真中,应该注意的问题有数码管的MinimumTriggerTime项设定的值要合适,此电路中设定为0.5us.还有就是在程序中数码管的扫描时间要合适。以保证数码管显示稳定,不闪烁。5.3软件调试用到了KeilC软件,集成调试环境,集成了编辑器、译码器、调试器,支持软件模拟,支持项目管理功能强大的观察窗口,支持所有的数据类型。树状结构显示,一目了然,支持ASM(汇编)、C语言多模块源程序混合调试,在直接修改、编译、调试源程序,错误指令定位。功能很强大,用于对程序的调试和编辑.本系统的程序的编写就是在KeilC软件中完成的,在程序中用到了两个定时器,为了使倒计时的时间准确,必须计算对定时器的初值,当程序完成之后,生成HEX文件。再利用Proteus软件进行仿真。经过仿真,程序符合题目的要求。6C语言源程序#include〈REGX51。H>#include"intrins.h"#defineucharunsignedchar#defineuintunsignedintsbits1=P1^1;sbits2=P1^2;sbits3=P1^3;sbitFLAG=P1^0;unsignedintj,k,n,c,b,m,flag;//定义变量unsignedinttable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管显示voiddelay(uchari)//延时时间为8i+10{for(;i〉0;i——);}voidbaojing()//报警函数{ﻩfor(n=20;n>0;n--)ﻩ{ ﻩFLAG=0; ﻩdelay(100);ﻩﻩFLAG=1;ﻩﻩdelay(100);ﻩ}}voidmain()//主程序{ﻩFLAG=0; flag=0;ﻩTMOD=0x01;//定时器0工作在模式1ﻩTH0=55536/256; TL0=55536%256;//给定时器0赋初值 EA=1;ﻩET0=1;ﻩc=0;ﻩn=0;ﻩm=0; while(1)ﻩ{ﻩﻩif(s1==0)ﻩ {ﻩﻩﻩn++;ﻩ ﻩif(n==10)n=0;ﻩ }ﻩﻩwhile(!s1);ﻩ if(s2==0) ﻩ{ﻩﻩ m++;ﻩ ﻩif(m==10)m=0; ﻩ}ﻩﻩwhile(!s2);ﻩﻩif(s3==0)TR0=1;ﻩﻩwhile(!s3);ﻩﻩP3=table[n];P2_0=0;delay(255);P2=0XFF;//个位ﻩﻩP3=table[m];P2_1=0;delay(255);P2=0XFF;ﻩ//十位ﻩﻩif(flag==1)baojing();ﻩﻩif(m==0&&n==0)TR0=0;ﻩ}}voidtimer_0()interrupt1//定时器0在模式1下的中断函数{ﻩTH0=55536/256; TL0=55536%256;ﻩc++;ﻩif(c==100)ﻩ{ﻩ c=0;ﻩ b++;ﻩ}ﻩif(b==60)ﻩ{ﻩﻩb=0; ﻩm--;ﻩ} if(m==0) { m=9; ﻩn--;ﻩ}ﻩif(m==0&&n==0) {ﻩﻩm=0;ﻩ n=0;ﻩﻩflag=1;ﻩ}}7结论与心得在设计制作倒计时提醒器的过程中,我深切体会到,实践是理论运用的最好检验。本次设计是对我三年所学知识的一次综合性检测和考验,无论是动手能力还是理论知识运用能力都得到了提高,同时加深了我对网络资源认识,大大提高了查阅资料的能力和效率,使我有充足的时间投入到电路制作当中。本系统的制作主要应用到了模拟电子技术、数字电子技术、单片机控制技术、电子工艺等多方面的知识。在硬件调试过程中,我也学会不少的东西,掌握一些调试方法.在设计仿真图和编些程序中,对Proteus和Keil等软件掌握的更加牢固,而且所设计的基于单片机的倒计时提醒器,精确度高,达到了应用要求。参考文献[1]余永权.AT89系列单片机应用技术.北京:北京航空航天大学出版社,2002[2]沈红卫.单片机应用系统设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论