您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 89C52单片机的秒表设计
单片机/微机接口课程设计说明书单片机原理与应用课程设计说明书题目:89C52单片机的秒表设计系部:信息与控制工程学院专业:电子信息工程班级:二班学生姓名:苌金超学号:1003134022指导教师:张雪岩2012年12月5日单片机/微机接口课程设计说明书2目录1设计任务与要求2设计方案2.1整体设计思路2.274LS164(8位并行输出串行移位寄存器)2.3数码管动态显示原理2.4数码管动态显示程序设计2.5单片机中断系统结构及工作原理3硬件电路设计3.1电源电路3.2晶体振荡电路3.3复位电路4软件设计概述5主程序5.1用定时器编写一个秒计时器5.2主流程图5.3程序设计6调试过程7结论8参考文献单片机/微机接口课程设计说明书31设计任务与要求(1)理解数码管动态显示的原理(2)掌握数码管动态显示程序的设计方法(3)掌握74LS164扩展端口的方法(4)掌握单片机定时器与中断系统的使用方法(5)掌握利用单片机设计秒表的基本方法(后两个数码管模拟演示秒表0~99,当达到100s时第一个数码管显示1)(6)熟练硬件电路的焊接2设计方案2.1整体设计思路如下:通过89c52单片机控制段码,位码输出。采用定时器中断方式实现动态扫描,每隔20ms扫描一次,每位数码管点亮的时间为1ms。在单片机内部RAM设置待显示数据缓冲区,由查表程序完成显示译码。2.274LS164(8位并行输出串行移位寄存器)74LS164为8位移位寄存器,管脚定义如下图1所示:单片机/微机接口课程设计说明书4图174LS164管脚图逻辑及封装图双列直插封装CLOCK时钟输入端CLEAR同步清除输入端(低电平有效)A,B串行数据输入端QA-QH为输出端当清除端(CLEAR)为低电平,输出端(QA-QH)均为低电平;串行数据输入端(A,B)可控制数据。当A,B任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下QO为低电平;当A,B有一个为高电平。则另一个就允许输入数据,并在CLOCK上升沿作用下决定QO的状态。极限值电源电压7V输入电压5.5V工作环境温度74LS164-0~70℃储存温度-65℃~150℃123456ABCD654321DCBAA1B2QA3QB4QC5QD6CLK8CLR9QE10QF11QG12QH13U374LS164单片机/微机接口课程设计说明书52.3数码管动态显示原理几乎所有的单片机应用系统都要用到数码显示。数码显示是一个占用IO资源较多、程序设计较复杂的模块。在设计时,应从IO占用与软件复杂程度两方面考虑。这里以8位数码管动态显示电路以例说明工作原理。共阳极LED数码管的内部结构原理图:共阴极LED数码管的内部结构原理图:数码管显示器的8个笔划段a-hp同名端连在一起,而每一位数码管显示器的公共端(1,2,3,4)各自独立地受三极管控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于数码管的公共端,而这一端是由74LS164控制的,所以我们只要控制164的输出数据就可以决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的公共端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。图单片机/微机接口课程设计说明书6中100欧电阻起限流作用,保护发光二极管。电阻值越小,发光二极管越亮。2K电阻是位选端限流电阻,保护位选三极管。由上图可知,这里的数码管是共阳极型。数码管上显示一些符号,必须给数码管的笔形口接低电平信号,给要显示的位公共端送高电平,相应位的数码管就可以显示所要的符号。2.4数码管动态显示程序设计数码管动态显示程序包含显示数字、部分字母符号、小数点、数码管闪烁、数码管消隐等。其它程序输出到显示程序的数据既可以是BCD码、二进制码、ASCII码、自定义显示码等由硬件电路工作原理可知,为了显示稳定的数据,每秒必须显示数据50次以上,才能达到预期目的。首先设计一个能显示一位数的程序,然后重复执行这段程序,并改变所显示的内容。由上一实验内容可知,可把位选数据的输出用两种方法实现:位选数据每显示一位送一字节;位选数据每显示一位送一位二进制数。程序流程图如下图所示。数码管动态显示初始化显示缓冲区首地址,显示计数器取缓冲区一字节数,并转换成显示码输出位选数据,并延时1ms显示指针指向下一字节,计数器减1显示计数为0返回YN输出位选数据-1第一位显示数据?0写入74LS1641写入74LS164返回YNDIN=0,CLK=0,位选数据设定为左边第1位显示位选数据左移一位,移出的位送到DIN,CLK产生正脉冲CLK产生一个正脉冲输出数据位数减1输出完成?返回输出位选数据-2单片机/微机接口课程设计说明书72.5单片机中断系统结构及工作原理标准51单片机的中断系统有五个中断源。分别为:中断源入口地址优先级别(同级)外部中断00003H最高定时器0溢出000BH外部中断10013H定时器1溢出001BH串行口中断0023H最低使用中断之前,必须对中断允许寄存器IE进行设置,将中断允许标志EA和对应中断位置1,以将中断打开。中断控制结构如下图所示。MSC51中断结构图CPU中断的过程为:当有中断源发生中断信号时,首先对IE中对应的中断位判断;如打开,则进行EA判断;如EA=1,将根据中断优先级IP的设置情况进行优先级单片机/微机接口课程设计说明书8判别;如该中断优先级较高,在硬件控制下,先将程序计数器PC的内容压入堆栈,同时把被响应的中断服务程序的入口地址装入PC中,以执行中断服务程序。中断服务程序的最后一条指令必须是中断返回指令RETI。CPU执行完这条指令后,将从堆栈中弹出两个字节内容(断点地址)装入PC中,从而执行被中断的程序。3硬件电路设计3.1电源电路电源电路是系统最基本的部分电路,任何电路都离不开电源部分,由于三端集成稳压器件所组成的稳压电源线路简单,性能稳定,工作可靠,调整方便,已逐渐取代分立元件,在生产中被广泛采用,由于是小系统,我们采用7809电源提供+5V稳压电压。3.2晶体振荡电路MCS-52单片机内部的振荡电路是一个高增益反相器,引线XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。这里,我们选用52单片机12MHz的内部振荡方式,电路如下:电容器C1、C2起稳定振荡频率,快速起振的作用,C1和C2可在20-100PF之间取,这里取30P,接线时要晶体振荡器X1极可能接近单片机。电路图如下图所示。晶体振荡电路图单片机/微机接口课程设计说明书93.3复位电路采用上电+按键复位电路,上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使用RST持续一段时间的高电平,从而实现上电加开关复位的操作。这不仅能使单片机复位,而且还能使单片机的外围芯片也同时复位。电路图如下图所示。复位电路4软件设计概述在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可能性,使程序的结构层次一目了然。应用系统的程序由包含多个模块的主程序和各种子程序组成。各程序模块都要完成一个明确的任务,实现某个具体的功能,如:加计数延时,计数和显示等,在具体需要时调用相应的模块即可。单片机/微机接口课程设计说明书105主程序5.1用定时器编写一个秒计时器假设系统使用的晶振频率为12MHZ,即每个机器周期为1us。如使用方式1,则定时时间最长是216×1us=65536us=65.536ms,小于1s。故必须设置一个软件计数单元,即假设定时器定时中断时间为50ms,则必须定时中断20次才达到1s并对秒计时单元加1,20即为软件计数次数。最后再把秒计时单元的值转成显示数码送显示缓冲区。定时器应用程序流程图定时器中断服务程序中断返回保护现场恢复现场软件计数-1=0?秒计时器加1,转成显示数据并送显示YN单片机/微机接口课程设计说明书115.2主流程图这里采用顺序结构,通过对按键的扫描,判断要实现什么功能。主流程框图5.3程序设计KEYBITP1.3ORG0000HLJMPMAINORG000BHLJMPTI_T0ORG0030HMAIN:MOVSP,#30HMOVTMOD,#01H;定时器初始化单片机/微机接口课程设计说明书12MOVTH0,#3CH;定时50msMOVTL0,#0B0HMOVIE,#82HMOVR0,#00HMOVR1,#00HMOVR2,#00HD0:JBKEY,D00;判断键是否按下LCALLDELAYJBKEY,D00SETBTR0;第一次按键,刚启动定时器JNBKEY,$SJMPD1D00:CALLDISPLAY;没按则调用显示SJMPD0D1:CALLDISPLAYJBKEY,D1;判断是否有第二次按键CALLDELAY;没按则继续调用显示JBKEY,D1D2:CALLDELAYJBKEY,D1单片机/微机接口课程设计说明书13CLRTR0;第二次按键,则暂停计数CALLDISPLAYJNBKEY,$D3:JBKEY,D33;判断是否有第三次按键CALLDELAYJBKEY,D33MOVR1,#00H;第三次按键,则计数清零JNBKEY,$SJMPD0D33:CALLDISPLAYSJMPD3DISPLAY:MOVA,R1MOVB,#10DIVABMOVDPTR,#TAB1MOVCA,@A+DPTRCLRP0.1;高位LED亮SETBP0.0SETBP0.2LCALLDISP0单片机/微机接口课程设计说明书14MOVA,BMOVDPTR,#TABMOVCA,@A+DPTRCLRP0.2SETBP0.1SETBP0.0LCALLDISP0MOVA,R2MOVDPTR,#TABMOVCA,@A+DPTRCLRP0.0;低位LED亮SETBP0.1SETBP0.2LCALLDISP0RETDISP0:MOVR5,#8DISP1:CLRP2.5NOPNOP单片机/微机接口课程设计说明书15RRCAMOVP2.4,CSETBP2.5NOPNOPDJNZR5,DISP1LCALLDELAYLCALLDELAYRETDELAY:MOVR7,#0AHD4:MOVR6,#0FFHDJNZR6,$DJNZR7,D4RET;************************************;中断程序;************************************TI_T0:MOVTH0,#3CHMOVTL0,#0B0HINCR0单片机/微机接口课程设计说明书16CJNER0,#02H,RETURN;是否计到100msMOVR0,#00HINCR1;到100ms,则加1CJNER1,#99,RETURN;加到99时清零MOVR1,#00HINCR2CJNER2,#9,RETURNMOVR2,#00HRETURN:RETITAB:DB18H,5FH,68H,4AH,0FH,8AH,88H,5EH,08H,0AHTAB1:DB10H,57H,60H,42H,07H,82H,80H,56H,00H,02HEND6调试过程6.1首先建立工程项目文件6.2为工程选择目标器件6.3工程项目设置软硬件调试环境6.4创建源程序文件并输入程序代码6.5保存创建的源程序项目文件6.6把源程序文件通过STC-ISP-V4.80单片机驱动软件载到单片机中6.7在硬件连接中,经过检测发现数码管不能使用,换了该器件后在上电,正常显示。单片机/微机接口课程设计说明书177结论时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机实训在这
本文标题:89C52单片机的秒表设计
链接地址:https://www.777doc.com/doc-3259748 .html