89C52单片机的秒表设计.doc_第1页
89C52单片机的秒表设计.doc_第2页
89C52单片机的秒表设计.doc_第3页
89C52单片机的秒表设计.doc_第4页
89C52单片机的秒表设计.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

单片机/微机接口课程设计说明书 单片机原理与应用课程设计说明书 题 目:89C52单片机的秒表设计 系 部:信息与控制工程学院 专 业:电子信息工程 班 级:二 班 学生姓名: 苌金超 学 号: 1003134022 指导教师: 张雪岩 2012年 12 月 5 日18 单片机/微机接口课程设计说明书目 录1 设计任务与要求2 设计方案2.1 整体设计思路2.2 74LS164(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 参考文献1 设计任务与要求 (1)理解数码管动态显示的原理 (2)掌握数码管动态显示程序的设计方法 (3)掌握74LS164 扩展端口的方法 (4)掌握单片机定时器与中断系统的使用方法 (5)掌握利用单片机设计秒表的基本方法(后两个数码管模拟演示秒 表099,当达到100s时第一个数码管显示1) (6)熟练硬件电路的焊接2 设计方案2.1 整体设计思路如下:通过89c52单片机控制段码,位码输出。采用定时器中断方式实现动态扫描,每隔20ms扫描一次,每位数码管点亮的时间为1ms。在单片机内部RAM设置待显示数据缓冲区,由查表程序完成显示译码。 2.2 74LS164(8位并行输出串行移位寄存器)74LS164为8位移位寄存器,管脚定义如下图1所示:图1 74LS164管脚图逻辑及封装图 双列直插封装CLOCK 时钟输入端CLEAR 同步清除输入端(低电平有效)A,B串行数据输入端QA-QH为输出端当清除端(CLEAR)为低电平,输出端(QA-QH)均为低电平;串行数据输入端(A,B)可控制数据。当A,B任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下QO为低电平;当A,B有一个为高电平。则另一个就允许输入数据,并在CLOCK上升沿作用下决定QO的状态。极限值 电源电压 7V 输入电压 5.5V 工作环境温度 74LS164 -070 储存温度 -65150 2.3 数码管动态显示原理几乎所有的单片机应用系统都要用到数码显示。数码显示是一个占用IO资源较多、程序设计较复杂的模块。在设计时,应从IO占用与软件复杂程度两方面考虑。这里以8位数码管动态显示电路以例说明工作原理。共阳极LED数码管的内部结构原理图: 共阴极LED数码管的内部结构原理图:数码管显示器的8个笔划段a-hp同名端连在一起,而每一位数码管显示器的公共端(1,2,3,4)各自独立地受三极管控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于数码管的公共端,而这一端是由74LS164控制的,所以我们只要控制164的输出数据就可以决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的公共端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。图中100欧电阻起限流作用,保护发光二极管。电阻值越小,发光二极管越亮。2K电阻是位选端限流电阻,保护位选三极管。由上图可知,这里的数码管是共阳极型。数码管上显示一些符号,必须给数码管的笔形口接低电平信号,给要显示的位公共端送高电平,相应位的数码管就可以显示所要的符号。2.4 数码管动态显示程序设计数码管动态显示程序包含显示数字、部分字母符号、小数点、数码管闪烁、数码管消隐等。其它程序输出到显示程序的数据既可以是BCD码、二进制码、ASCII码、自定义显示码等由硬件电路工作原理可知,为了显示稳定的数据,每秒必须显示数据50次以上,才能达到预期目的。输出位选数据-1第一位显示数据?0写入74LS1641写入74LS164返回YN首先设计一个能显示一位数的程序,然后重复执行这段程序,并改变所显示的内容。由上一实验内容可知,可把位选数据的输出用两种方法实现:位选数据每显示一位送一字节;位选数据每显示一位送一位二进制数。程序流程图如下图所示。数码管动态显示初始化显示缓冲区首地址,显示计数器取缓冲区一字节数,并转换成显示码输出位选数据,并延时1ms显示指针指向下一字节,计数器减1显示计数为0返回YNDIN=0,CLK=0,位选数据设定为左边第1位显示位选数据左移一位,移出的位送到DIN,CLK产生正脉冲CLK产生一个正脉冲输出数据位数减1输出完成?返回输出位选数据-22.5 单片机中断系统结构及工作原理标准51单片机的中断系统有五个中断源。分别为:中断源 入口地址 优先级别(同级)外部中断0 0003H 最高定时器0 溢出 000BH外部中断1 0013H定时器1 溢出 001BH串行口中断 0023H 最低使用中断之前,必须对中断允许寄存器IE 进行设置,将中断允许标志EA 和对应中断位置1,以将中断打开。中断控制结构如下图所示。 MSC51中断结构图CPU中断的过程为:当有中断源发生中断信号时,首先对IE中对应的中断位判断;如打开,则进行EA判断;如EA=1,将根据中断优先级IP的设置情况进行优先级判别;如该中断优先级较高,在硬件控制下,先将程序计数器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极可能接近单片机。电路图如下图所示。晶体振荡电路图3.3 复位电路采用上电+按键复位电路,上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使用RST持续一段时间的高电平,从而实现上电加开关复位的操作。这不仅能使单片机复位,而且还能使单片机的外围芯片也同时复位。电路图如下图所示。复位电路4 软件设计概述在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可能性,使程序的结构层次一目了然。应用系统的程序由包含多个模块的主程序和各种子程序组成。各程序模块都要完成一个明确的任务,实现某个具体的功能,如:加计数延时,计数和显示等,在具体需要时调用相应的模块即可。5 主程序5.1 用定时器编写一个秒计时器假设系统使用的晶振频率为12MHZ,即每个机器周期为1us。如使用方式1,则定时时间最长是2161us=65536us=65.536ms,小于1s。故必须设置一个软件计数单元,即假设定时器定时中断时间为50ms,则必须定时中断20次才达到1s并对秒计时单元加1,20即为软件计数次数。最后再把秒计时单元的值转成显示数码送显示缓冲区。定时器中断服务程序中断返回保护现场恢复现场软件计数-1=0?秒计时器加1,转成显示数据并送显示YN定时器应用程序流程图5.2 主流程图这里采用顺序结构,通过对按键的扫描,判断要实现什么功能。主流程框图5.3 程序设计 KEY BIT P1.3 ORG 0000H LJMP MAIN ORG 000BH LJMP TI_T0 ORG 0030HMAIN: MOV SP,#30H MOV TMOD,#01H ;定时器初始化 MOV TH0,#3CH ;定时50ms MOV TL0,#0B0H MOV IE,#82H MOV R0,#00H MOV R1,#00HMOV R2,#00HD0: JB KEY,D00 ;判断键是否按下 LCALL DELAY JB KEY,D00 SETB TR0 ;第一次按键,刚启动定时器 JNB KEY,$ SJMP D1D00: CALL DISPLAY ;没按则调用显示 SJMP D0D1: CALL DISPLAY JB KEY,D1 ;判断是否有第二次按键 CALL DELAY ;没按则继续调用显示 JB KEY ,D1D2: CALL DELAY JB KEY,D1 CLR TR0 ;第二次按键,则暂停计数 CALL DISPLAY JNB KEY,$D3: JB KEY,D33 ;判断是否有第三次按键 CALL DELAY JB KEY,D33 MOV R1,#00H ;第三次按键,则计数清零 JNB KEY,$ SJMP D0D33: CALL DISPLAY SJMP D3DISPLAY: MOV A,R1 MOV B,#10 DIV AB MOV DPTR,#TAB1 MOVC A,A+DPTR CLR P0.1 ; 高位LED亮 SETB P0.0 SETB P0.2 LCALL DISP0 MOV A,B MOV DPTR,#TAB MOVC A,A+DPTR CLR P0.2 SETB P0.1 SETB P0.0 LCALL DISP0 MOV A,R2 MOV DPTR,#TAB MOVC A,A+DPTR CLR P0.0 ; 低位LED亮 SETB P0.1 SETB P0.2 LCALL DISP0 RETDISP0:MOV R5,#8DISP1: CLR P2.5 NOP NOP RRC A MOV P2.4,C SETB P2.5 NOP NOP DJNZ R5,DISP1 LCALLDELAY LCALLDELAY RET DELAY: MOV R7,#0AH D4: MOV R6,#0FFH DJNZ R6,$ DJNZ R7,D4 RET;*;中断程序;*TI_T0:MOV TH0,#3CH MOV TL0,#0B0H INC R0 CJNE R0,#02H,RETURN ;是否计到100ms MOV R0,#00H INC R1 ;到100ms,则加1 CJNE R1,#99,RETURN ;加到99时清零 MOV R1,#00H INC R2 CJNE R2,#9,RETURN MOV R2,#00H RETURN:RETI TAB: DB 18H,5FH,68H ,4AH,0FH,8AH,88H,5EH, 08H,0AHTAB1: DB 10H,57H,60H,42H,07H,82H,80H,56H,00H,02H END 6 调试过程6.1 首先建立工程项目文件6.2 为工程选择目标器件6.3 工程项目设置软硬件调试环境6.4 创建源程序文件并输入程序代码6.5 保存创建的源程序项目文件6.6 把源程序文件通过STC-ISP-V4.80单片机驱动软件载到单片机中6.7 在硬件连接中,经过检测发现数码管不能使用,换了该器件后在上电,正常显示。7 结论时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机实训在这一周内完成了。俗话说“好的开始是成功的一半”。说这次实习,我认为最重要的就是做好程序调试,认真的研究老师给的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起产品就会事半功倍,如果没弄明白,就迷迷糊糊的去做,到头来一点收获也没有。最后,要注重程序的调试,掌握其方法。 虽然这次的实习算起来在实训室的时间只有一周,不过我们都有自己的实验板。 硬件的焊接和程序的编程均由自己完成。再实验过程中也有很多问题,如不够细心粗心焊错线,或因为对理论知识的学习理解不够深刻而出现编程出现错误等等。 通过这次单片机实习,我加深了对单片机理论的理解,将理论很好地应用到实际当中去,使之成为自己的东西。这个设计过程中,我们花费了大量的时间和精力,更重要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。作为一名电子信息工程专业的快大三学生,我觉得做单片机实训是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想实训

温馨提示

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

最新文档

评论

0/150

提交评论