答辩倒计时器课程设计报告.doc_第1页
答辩倒计时器课程设计报告.doc_第2页
答辩倒计时器课程设计报告.doc_第3页
答辩倒计时器课程设计报告.doc_第4页
答辩倒计时器课程设计报告.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

答辩倒计时器课程设计报告课程名称:单片机原理课程设计报告题目: 答辩倒计时器学生姓名: 所在学院:信息科学与工程学院专业班级: 通信工程学生学号: 指导教师: 2013年6月28日单片机原理课程设计任务书一、设计题目答辩倒计时器二、题目描述设计一个答辩倒计时器,用2位数码管显示剩余分钟,2位数码管显示剩余秒,复位后显示10.00表示设定10分钟,并可通过按钮加减修改,按开始/取消按钮开始倒计时,再次按开始/取消按钮则复位,时间到则蜂鸣音提示。三、可提供的主要元器件 1、AT89S51;7407; (均为DIP封装)2、LED(4位一体共阴);按键;电阻排;三极管;蜂鸣器3、石英晶振6M;30pF;0.1uF;10uF电容;电阻若干。四、设计要求1、电路设计与组装要求根据下达的任务书和可提供的元器件设计合适的方案,绘制电路原理图,在万能电路板进行电路设计与组装,要求元器件排列合理、组装美观、电路可靠。2、程序设计要求采用合适的算法,设计程序流程图和编制程序(汇编或C51均可),实现课题的功能要求。程序设计要求模块化。3、仿真与调试过程要求程序设计完成后要先在Proteus环境下仿真,仿真无误后再将程序下载到电路板,进行硬件调试。硬件调试过程中记录出现的问题和解决的方法,直到电路板稳定可靠的运行,符合任务书的要求。4、课程设计报告要求按课程设计报告规范格式撰写课程设计报告。内容包括设计方案(含论证)、完整的电路原理图和应用程序流程图、对所设计方案进行全面分析、编程调试方法和程序清单、安装调试过程、出现的各种问题、总结经验和体会、进一步完善的设想。五、实践步骤1、收集相关资料,设计总体方案并完成电路原理图设计。2、绘制应用程序流程图,编写汇编语言(或C语言)源程序。3、根据所设计的原理图,完成电路板的制作安装(可用万能板)。4、程序调试及硬件仿真。5、硬、软件综合调试,并完善其设计功能。摘 要 AT89S51单片机内有两个可编程的定时器/计数器T1、T0,两个定时器/计数器都具有定时器和计数器两种工作模式,4种工作方式。特殊功能寄存器TMOD用于选择定时器/计数器T0、T1的工作模式和工作方式。特殊功能寄存器TCON用于控制T0、T1的启动和停止计数,同时包含了T0、T1的状态。T0、T1不论是工作在定时器模式还是计数器模式,实质都是对脉冲信号进行计数。本课题要设计的是答辩倒计时器,答辩倒计时器是一种非常有用的计时工具,在论文答辩、辩论赛和各类球赛中,倒计时器能直观地显示剩余时间,便于当事人准确地把握时间。关键词:单片机;倒计时;晶振;蜂鸣器;复位目录一、概述1二、方案设计11硬件方案设计12程序方案设计2三、硬件电路设计与分析3 1.总原理图32.按键电路33.复位电路3 4.晶振电路45.数码管显示电路46.蜂鸣器4四、程序设计与分析41.主程序代码段分析42.定时器代码段分析53.调整时间代码段分析64.开始/复位代码段分析7五、安装与测试71.电路板的安装72.电路板的测试103.硬件设计中的问题与解决方法11六、结论与心得11七、参考文献12附录131. 课程设计材料清单132. 源程序14答辩倒计时器课程设计报告一、概述 本次课程设计的课题是答辩倒计时器,通过AT89S51单片机提供计数器并对各方面进行控制,用一个四位一体的共阴极数码管显示时间,2位数码管显示剩余分钟,2位数码管显示剩余秒,复位后显示10.00表示设定10分钟,并可通过按钮加减修改,按开始/复位按钮开始倒计时,再次按开始/复位按钮则复位,时间到则蜂鸣音提示。答辩倒计时器的硬件电路主要包括晶振电路、复位电路、按键电路、数码管显示电路和蜂鸣器五个部分,软件主要通过汇编程序来实现各个部分的功能。最后,通过ISP51下载软件,将仿真后的程序下载到AT89S51芯片上进行测试。二、方案设计 1.硬件方案设计根据课程设计题目要求,硬件电路主要包括按键电路、复位电路、晶振电路、数码管显示电路和蜂鸣器五个部分。其主要结构如图一所示: 图一 答辩倒计时器硬件主要结构示意图该硬件电路的核心部分为一块AT89S51单片机,对电路进行各方面控制和计算。用一个四位一体的8段共阴极数码管显示,用7407作为缓冲器,提高输出电路驱动能力,使数码管能正常显示。用一个9013三极管驱动蜂鸣器,当电路上电和计时时间到时响提示时间到。用一个6M石英晶振和2个30pF的电容为AT89S51芯片提供时钟频率,2个30pF的电容主要是为了方便起振。K1、K2、K3三个开关分别用于加一分钟、减一分钟、暂停和复位。用若干电阻作为上拉电阻,增大电路输出电流。2.程序方案设计单片机共有32个外设IO口,五个中断源。本实验利用单片机的P0口和P2口的低四位共同控制一个4位一体共阴极8段数码管,用来显示时间,所以程序中的显示程序采用的是动态扫描方式。三个按键分别接在了INT0,INT1,T1三个引脚上,既可通过中断控制按键。也可通过扫描P3.2,P3.3,P3.5三个IO口的状态来控制。本方案最终确定为使用扫描IO口状态来控制键盘。程序流程如图二所示: (A) (B) 图二 主要流程图三硬件电路设计与分析1.总原理图图三 电路原理图2.按键电路按键电路需要三个按键,第一个用于加一分钟设置,第二个用于减一分钟设置,第三个用于暂停/复位设置。三个按键分别通过一个10K的电阻接单片机的P3.2脚、P3.3脚和P3.5脚,因为AT89S51的P3口具有第二功能,P3.2脚的第二功能为外部中断0输入,P3.3脚的第二功能为外部中断1的输入,P3.5脚的第二功能为定时器1外部计数输入。这样接的好处是在进行按钮部分的程序设计时,既可以把这三个引脚当做普通的I/O口,用扫描的方式实现,也可以把按钮当做中断源处理,这样会使程序设计更为简便。 3.复位电路复位电路产生复位信号,复位信号送入 RST 后还要送至片内的施密特触发器,由片内复位电路在每个机器周器的 S5P2 时刻对触发器输出采样信号,然后由内部复位电路产生复位操作所要的信号。一般的复位电路可分为上电自动复位和按键复位,我们在此选用的是上电复位。上电自动复位原理:RST 引脚是复位信号的输入端,只要高电平的复位信号持续两个机器周期以上的有效时间,就可以使单片机上电复位。上电自动复位是通过电容充电实现的,上电瞬间,RST 端 电位与Vcc 相同,随充电电流的减少,RST 的电位逐渐下降,直到复位信号无效。由于单片机需要接程序下载接口,因此,程序下载接口的复位端也需要与单片机的复位端相连。4.晶振电路AT89S51内部有一个用于振荡器的高增益反相放大器,它的输入端为芯片引脚XTAL1,输出端为芯片引脚XTAL2,这两个引脚跨接石英晶体和电容即可构成一个稳定的自激振荡器。由于电容的大小会影响振荡器频率的高低,振荡器的稳定性和起振的快速性,因此,在该设计中选择两个30pF的电容。同时,晶体的振荡频率对单片机的运行速度也有影响,振荡频率越高,系统的时针频率越高,单片机的运行速度越快。晶体振荡频率的范围一般是在1.212MHz之间,本设计中晶体振荡频率为6MHz。5.数码管显示电路数码管显示电路中,需要一个四位一体的显示管。用单片机的P0口和P2口作为输出口,分别与显示管相连,。P0作为通用I/O口用时需加上拉电阻,因此P0口要通过一个排阻分别与数码管的段点相连,数码管的四个公共端通过7407芯片与单片机的P2口相连。用7407作为缓冲器,提高输出电路驱动能力,使数码管能正常显示。6.蜂鸣器电路蜂鸣器是在计时结束后发出警报。蜂鸣器通过9013三极管来驱动,然后通过两个电阻与单片机的输出端口相连(本课程设计中接的是P1.0)。四程序设计与分析1.主程序代码段分析主程序主要由初始化,以及动态显示子程序、键盘扫描子程序构成的循环组成。首先,课题要求默认倒计时时间为10分钟:;显示缓冲初始化MOV 30H,#0 ;设置秒个位初值MOV 31H,#0 ;设置秒十位初值MOV 32H,#0 ;设置分个位初值MOV 33H,#1 ;设置分十位初值其次,利用定时计数器T0进行定时,设置T0工作模式为模式1,设定初值让定时计数器中断一次的时间为100ms,则中断十次为一秒(计算公式为(216-X)*2*10-6=0.1S,其中X为定时器的初值):;定时器初始化MOV R7,#0AH ;设循环次数10次MOV TMOD,#01H ;设置T0工作在方式1定时MOV TL0,#0B0H;给T0设初值MOV TH0,#3CH SETBEA ;总中断允许SETB ET0CLR P1.0LOOP:LCALL DISPLAY ;调用动态显示子程序LCALL KEYSCANLJMP LOOP 2.定时器代码段分析 ;减1s程序代码段MOV A,30HCJNE A,#00H,SECGE ;秒个位MOV 30H,#9MOV A,31HCJNE A,#00H,SECSHI ;秒十位MOV 31H,#5MOV A,32HCJNE A,#00H,MINGE ;分个位MOV 32H,#9MOV A,33HCJNE A,#00H,MINSHI ;分十位SETB P1.0 ;响铃MOV 30H,#0 ;复位MOV 31H,#0MOV 32H,#0MOV 33H,#1 CLR TR0 ;关中断LJMP BACKSECGE: DEC 30HLJMP BACKSECSHI:DEC 31HLJMP BACKMINGE: DEC 32HLJMP BACKMINSHI:DEC 33HLJMP BACK3.调整时间代码段分析调整时间分为了两个按钮,“+”和“-”,它们两个的功能流程等都极其相似,所以这里只列出了增时功能的流程(它们只能调整分位数)。KEYSCAN:JB P3.2,KEY1KEY0K:LCALL DISPLAYJNB P3.2,KEY0KJNB TR0,NEXTK0SJMP RETURNNEXTK0:MOV A,32HCJNE A,#9,AMINGEMOV 32H,#0MOV A,33HCJNE A,#9,AMINSHIMOV 33H,#1LJMP RETURNAMINGE:INC 32H LJMP RETURNAMINSHI:INC 33H LJMP RETURN4.开始/复位代码段分析KEY2: JB P3.5,RETURNKEY2K:LCALL DISPLAYJNB P3.5,KEY2K CLR P1.0 JNB TR0,NEXTK2 SJMP KEY3QXNEXTK2:SETBTR0 ;启动T0 LJMP RETURNKEY3QX: CLR TR0 MOV 30H,#0 ;设置秒个位初值MOV 31H,#0 ;设置秒十位初值 MOV 32H,#0 ;设置分个位初值 MOV 33H,#1 ;设置分十位初值RETURN: RET五安装与测试1电路板的安装1)清点电子元器件 对照元件清单,记清每个元件的名称与外形。打开时请小心,不要将塑料袋撕破,以免零件丢失。清点完后请将暂时不用元件、材料放回塑料袋备用。 2)电解电容、电阻、三极管的认识要正确认识电解电容的正负极,一般是引脚长的为正极,引脚短的为负极。若引脚长短无法识别,则用万用表测量,将万用表打到电阻档,正接时电阻大,反接是电阻小。电阻则要根据其色环判断阻值大小,若无法识别,则在连接之前用万用表测量其电阻。三极管的三个引脚要正确识别,中间为基极,将三极管的平面方向面对自己,左边为发射极,右边为集电极。3)芯片、数码管、程序下载接口的引脚的识别AT89S51从缺口的左边开始,从上至下依次为120号引脚,缺口的右边由下而上依次为2140号引脚。7407芯片也是从缺口的左边开始看,从上而下依次为17号引脚,右边由下而上依次为816号引脚。数码管的引脚分别为1e,2d,3h,4c,5g,6C4,7b,8C3,9C2,10f,11a,12C1.程序下载接口引脚的识别:将程序下载接口的缺口面正对自己,缺口面从左至右依次为1,3,5,7,9号引脚,背面依次对应2,4,6,8,10号引脚。4)电路板的布局 电路板的布局需要遵循的原则:整齐,美观,元器件之间的距离尽量小,便于焊接,使用导线较少。根据以上原则,初步布局为图四所示:图四 电路板初步布局5)电路板的焊接电路板的焊接是一项看起来简单,实际上需要很细心的工作。焊接时,应先把电烙铁靠近元器件引脚处,然后再放锡,速度要快,电烙铁不能长时间靠近线路板,会把线路板烧坏。焊接时注意不要虚焊,焊点不能太大。电烙铁在不用时一定要放在铁架上,不能直接放在实验桌上。若电烙铁上焊锡过多,可以用松香将其洗去。在焊接的过程中,可以根据实际情况改变元器件的排放位置,这样可以使焊接更加方便。晶体与电容应尽量安装得与单片机芯片靠近,以减少寄生电容,更好的保证振荡器稳定、可靠地工作。电路图中悬空的引脚最好也焊好。焊接好的图如图五所示:图五(a) 电路板正面图五(b)电路板反面2电路板的测试1)用万用表检测电路板焊接完以后,先检查一下是否每个点都焊好了,然后再用万用表检测电路是否接通。将万用表打到检测档,首先需要检测的是电源和地线,万用表的一端接地线,另一端接需要接地的点,若发出“滴”的声音,则说明是接通的。根据同样的方法检测电源以及其他需要连通的点。2)接电源检测用万用表检测没有问题之后,再接电源进行检测。将电源调到5V的位置,红线接电路板的电源,黑线接电路板的地线,如果蜂鸣器发出声音,且数码管显示正常,则表示电路板正确,且焊接没问题,接下来就可以联机检测了。3)联机检测将ISP下载线接到电路板的程序下载接口,然后接上电源,就可以在ISP51下载软件环境下进行检测。点击“开始检测”,若软件能够检测到AT89S51,则可以下载写入程序进行测试。程序写入后,数码管显示“10.00”,然后按下K3,计时开始,再按一次,则回复到“10.00”。按下K1,计时器加一分钟,按下K2,计时器减一分钟。当计时结束后,蜂鸣器发出警报,则说明测试成功。3硬件设计中的问题与解决方法1)接上电源后数码管显示不正确接上电源后,数码管显示的不是“8.8.8.8.”,那么有可能是数码管的引脚没有接对。数码管段点的引脚应该与AT89S51单片机的P0口引脚一一对应,而不是与排阻一一对应。2)接上电源后蜂鸣器响,数码管时亮时不亮出现这种状况,应该要检查晶振是否焊好,程序下载接口的引脚是否接对,复位电路有没有问题。如果都没有检查出问题,则应该检查焊接,有些焊接的地方目测是没有问题,但实际上有可能出现虚焊或者短路。六、结论与心得这次课程设计的课题是答辩倒计时器,这是一个很实用的计时工具,在论文答辩、辩论赛和各类球赛中能够直观地显示时间,让当事人能够准确地把握时间。因此,这次的课程设计是很有意义的。本次课程设计中,我主要负责的是硬件部分,包括电路的设计,电路板的布局与焊接。这个过程中让我收获颇多,在电路设计的过程中,我了解到了每一部分电路组成的原理。在电路板的布局与焊接中,我体会到了做事要认真仔细。因为在刚开始焊接时,我把数码管的段位点误以为是与排阻的引脚一一对应,事实上是与单片机的P0口一一对应,因此,在这一块的焊接我花了比较长的时间。在后面的焊接中,我都仔细推敲了每一个点需要连接的点,尽可能让焊接更美观,更简洁。但是,最后,我还是犯错误了。当我焊接完后,测试的时候,居然发现我的电路板的蜂鸣器与数码管时而有效时而无效,我以为是电路有问题,经过检查没有发现错误,突然觉得有点小失望。然后再同学的帮助下有检查了焊接点有没有虚焊与短路的问题,结果还是没有发现。没办法,只好向老师求助,通过老师的提示,我们着重检查了晶振电路与复位电路和蜂鸣器,结果发现是接蜂鸣器的一个电阻的焊点没有焊接,因为电阻的引脚比较长,我直接把电阻的引脚接地,而忘记了焊电阻的引脚。就这样,问题解决了。突然觉得很开心,接上下载线将程序下载进去,也通过了测试。通过这次课程设计,我学到了很多,不仅巩固了书本上的知识,也提高了我分析问题,解决问题的能力。同时,这次课程设计能取得成功,还得感谢老师的指导与同学的帮助。更重要的是和队友的合作很成功,一开始我们就分工明确,这样使我们的设计工作进行的很顺利。由此可见,在这次设计过程中团队精神也是很重要的。七、参考文献1 张毅刚.单片机原理及应用M.北京:高等教育出版社,2010.2 陈粤初.单片机应用系统设计与实践M.北京:北京航空航天大学出版社,1991.3 林志琦.基于Proteus的单片机可视化软硬件仿真M.北京:北京航空航天大学出版社,2006.附录:1. 课程设计材料清单 根据硬件设计方案列出材料清单如下列表格所示:工具名称单组数量镊 子1把电铬铁1支铬铁架1个吸锡枪1把斜口钳1把表1-1 工具清单元器件名称规格/型号单组数量金属膜电阻1K、1/4W1金属膜电阻10K、1/4W5电阻排200*8(SIP9)1瓷片电容30pF2独石电容0.1F/63V3电解电容10F/16V2蜂鸣器10,直流5V1三极管9013 1石英晶振6MHz(矮封装)1集成电路AT89S51 DIP4017407 DIP141IC插座40PIN DIP114PIN DIP1数码管4位一体、红光、共阴极0.5”1接插件IDC10(与ISP下载线接口) DC3-10P1套按键国产欧姆龙轻触按键3万能电路板17cm*22cm1块导线0.3mm2单股导线4m焊锡丝1.0mm2m表1-2 元器件清单2.源程序代码ORG 0000HLJMP MAIN ;跳到主程序ORG 000BHLJMP IT0P ;定时器中断子程ORG 0030HMAIN: ;显示缓冲初始化MOV 30H,#0 ;设置秒个位初值MOV 31H,#0 ;设置秒十位初值MOV 32H,#0 ;设置分个位初值MOV 33H,#1 ;设置分十位初值;定时器初始化MOVR7,#0AH;设循环次数10次MOVTMOD,#01H;设置T0工作在方式1定时MOV TL0,#0B0H;给T0设初值MOV TH0,#3CH SETBEA ;总中断允许SETB ET0CLR P1.0LOOP:LCALL DISPLAY ;调用动态显示子程序LCALL KEYSCANLJMP LOOP ;中断服务子程序IT0P: PUSH ACC ;保护现场DJNZ R7,BACK;一秒没到直接返回MOV R7,#10MOV A,30HCJNE A,#00H,SECGE ;秒个位是否到0MOV 30H,#9MOV A,31HCJNE A,#00H,SECSHI ;判断是否到0MOV 31H,#5MOV A,32HCJNE A,#00H,MINGE ;判断是否到0 MOV 32H,#9MOV A,33HCJNE A,#00H,MINSHI ;判断是否到0SETB P1.0 ;响铃MOV 30H,#0 ;复位MOV 31H,#0 MOV 32H,#0 MOV 33H,#1 CPL TR0 ;关中断LJMP BACKSECGE: DEC 30H LJMP BACKSECSHI: DEC 31H LJMP BACKMINGE: DEC 32H LJMP BACKMINSHI: DEC 33H LJMP BACKBACK:MOV TH0,#3CH ;重装初值MOV TL0,#0B0HPOP ACCRETIDISPLAY:MOV R0,#33H;显示缓冲器指针初值?MOV R2,#0FEH ;位码取初值C1,C2,C3,C4L1:MOV DPTR,#TAB1 ;查表MOV A,R2CJNE A,#11111101B,L2MOV DPTR,#TAB2L2:MOV A,R0MOVC A,A+DPTRMOV P0,A ;显示输出MOV A,R2MOV P2,ALCALL DELAYMOV P0,#00HDEC R0MOV A,R2JNB ACC.3,L3RL A ;位码左移MOV R2,ASJMP L1L3:RETTAB1:DB 3FH,06H,5BH,4FH;09的字形码表

温馨提示

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

评论

0/150

提交评论