欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    毕业论文-基于STC89C52单片机的智能定时器设计.doc

    • 资源ID:3942364       资源大小:2.86MB        全文页数:51页
    • 资源格式: DOC        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    毕业论文-基于STC89C52单片机的智能定时器设计.doc

    成都工业学院 通信工程学院毕业设计论文基于STC89C52单片机的智能定时器设计 摘要:定时器的数字化给人们生产生活带来了极大的方便,同时定时器的集成化受广大消费的喜爱, 因此得到了广泛的使用。定时器是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。定时器的精度、稳定度远远超过老式定时器。在这次设计中,我们采用LED数码管显示时、分、秒,以24 小时计时方式,根据数码管动态显示原理来进行显示,用12MHz的晶振产生振荡脉冲,定时器计数。在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。 本次设计定时器主要通过单片机系统将传输的数据显示在数码显示管和LED灯上,从而实现的闹钟、整点报时、时间显示、校对时间等一系列的的操作。关键词: 定时器; 单片机; STC89C52I目 录摘 要11 引 言11.定时器的背景11.2定时器的意义11.3定时器的应用11.4主要设计任务22 整体设计方案32.1 定时器的功能及设计要求32.2 定时器的实现形式32.3 实现定时器计时的基本方法43 定时器硬件系统的设计63.1 定时器主控电路CPU的选择63.2 定时器主控电路最小应用系统103.3 键盘及其接口113.3.1按键的去抖处理113.3.2定时器按键电路113.4 蜂鸣器电路123.5 数码管显示电路134 定时器软件系统的设计164.1 主程序流程图164.2 中断流程图174.3 定时程序设计195 定时器的系统调试仿真与测试205.1 调试205.2 仿真215.3 测试236 总 结25致 谢26参考文献27附件一:定时器电路图28附件二:元器件清单29附件三:源程序31第1章 引 言1.1数字定时器的背景 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。1.2数字定时器的意义定时器是采用数字电路实现对时、分、秒。数字显示的计时装置,广泛用于个人家庭、车站,、码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式定时器, 定时器的数字化给人们生产生活带来了极大的方便,而且大大地扩展了定时器原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以定时器数字化为基础的。因此,研究定时器及扩大其应用,有着非常现实的意义。1.3数字定时器的应用 数字定时器已成为人们日常生活中的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使定时器具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。 1.4主要设计任务本次设计需要完成的设计不仅仅是完成毕业设计而已,更主要的是通过本次本次的设计更好的来回顾三年所学的知识,老师们的辛勤奉献自己究竟学到了什么,同时也是自己对自己即将结束的大学生活画个句号,为即将来到的工作作出了是实际性的准备,不仅仅是以往那种只学习书面知识而已,更多的是锻炼自己实际操作的能力,也算是在进入工作前给自己的一个启发。然而就本次设计的定时器而言要完成的任务有:(1) 完成硬件电路的设计,包括数字钟最小系统设计、按键电路、电源电路、 蜂鸣器电路、二极管指示灯和LED数码管显示电路。(2)完成软件程序的编写和编译,使系统具备如下功能:时间显示、校对 时间、闹铃、报时等功能。(3)完成电路的模拟仿真。(4)完成实物的焊接及测试。第2章 整体设计方案2.1 定时器的功能及设计要求(1)通过单片机内定时器控制走时,准确持续走时,调时不影响走时。(2)在六个数码管上显示时、分、秒及两个小数点。(3)含有闹钟功能,可以选择闹钟开关,可以设定闹铃时间。(4)到达闹钟时刻蜂鸣器警报,可以关掉警报。(5)当时间到整点时,蜂鸣器会短响一声,可以关掉报时。2.2 定时器的实现形式 利用单片机的智能性,可方便的实现具有智能定时器的设计。而且,微处理系统具有时钟振荡系统,利用系统时钟并借助微处理器的定时/计数器功能可以实现数字定时器的功能。定时器电路主要由单片机(STC89C52)主控电路、电源电路、按键控制电路、数码管显示电路、蜂鸣器电路、以及二极管指示灯等几个部分组成,它主要实现时钟的显示,以及对时、分、秒进行调整,即实现调时的功能,其数字定时器系统整体结构如图2-1所示。图2-1 数字定时器的系统框架(1)显示方案 方案一:静态显示就是CPU将要显示的字或字段码送到输出口,显示器就可以显示出所要显示的字符,如果CPU不去改写它,它将一直保持下去;静态显示硬件开销大,电路复杂,信息刷新速度慢。 方案二:动态显示则是一位一位的轮流点亮显示器的各个位(扫描)。对于显示器的每一位而言,每隔一段时间点亮一次;动态显示耗能较小,但编写程序较复杂。动态显示硬件连接简单,信息刷新速度快。由于本次设计是对时间进行显示,所以在此选择的是方案二,采用动态显示。(2) 键盘方案方案一:独立式键盘。独立式键盘的各个按键相互独立,每个按键独立的与一根数据输入线(单片机并行接口或其他芯片的并行接口)连接。独立式键盘配置灵活,软件结构简单。但每个按键必须占用一根接口线,在按键数量不多时,接口占用多。所以,独立式按键常用于按键数量不多的场合。方案二:矩阵式键盘。矩阵式键盘采用的是行列式结构,按键设置在行列的交点上。(当数量接口为8时,可以将4根接口定义为行线,另4根定义为列线,形成4*4键盘,可以配置16个按键。)由于本设计只用了6个按键,不需要采用矩阵式键盘,所以选择第一种方案,采用独立式键盘。(3)计时方案 采用软件控制: 利用单片机内部的定时/计数器进行定时,配合软件定时实现时、分、秒的计时,该方案能够使设计者在设计过程中容易实现,且节省硬件成本,因此本系统将采用软件方法实现计时。2.3 实现定时器计时的基本方法用STC89C52单片机的定时/计数器T0产生一秒的定时时间,作为秒计数时间,当一秒产生时,秒计数加1。STC89C52单片机的内部16位定时/计数器是一个可编程定时/计数器,它既可以工作在13位定时方式,也可以工作在16位定时方式和8位定时方式。只要通过设置特殊功能寄存器TMOD,即可完成。定时/计数器何时工作也是通过TCON特殊功能寄存器来设置的。在此设计中,选择16位定时工作方式。对于T0来说,系统时钟为12MHz,最大定时也只有65536us,即65.536ms,无法达到我们所需要的1秒的定时,因此,必须通过软件来处理这个问题,假设取T0的最大定时为50ms,即要定时1秒需要经过20次的50ms的定时。对于这20次计数,就可以采用软件的方法来统计了。设定TMOD00000001B,即TMOD01H,设置定时/计数器0工作在方式1。下面我们要给T0定时/计数器的TH0,TL0装入预置初值,通过下面的公式可以计算出:TH0(21650000)/256TL0(21650000)MOD取摸256这样,当定时/计数器0计满50ms时,产生一个中断,我们可以在中断服务程序中,对中断次数加以统计,以实现数字钟的逻辑功能。第3章 定时器硬件系统的设计 3.1 定时器主控电路CPU的选择主控电路CPU是系统的核心单元,在执行程序中其关键作用,它的优劣直接关系到系统的性能。本次设计主要以STC89C52单片机为研究核心,分析其内部结构,硬件资源分配等,下面是对STC89C52单片机的介绍: STC89C52RC单片机是新一代高速、低功耗、超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。 主要特性如下: (1)增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051 (2)工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V单片机) (3)工作频率范围:040MHz,相当于普通8051的080MHz,实际工作频率可达48MHz (4)用户应用程序空间为8K字节 (5)片上集成512字节RAM (6)通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。 (7)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片 (8)具有EEPROM功能 (9)具有看门狗功能 (10)共3个16位定时器/计数器。即定时器T0、T1、T2 (11)外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒 (12)通用异步串行口(UART),还可用定时器软件实现多个UART (13)工作温度范围:-40+85(工业级)/075(商业级)(14)PDIP封装STC89C52RC单片机的工作模式:l 掉电模式:典型功耗<0.1A,可由外部中断唤醒,中断返回后,继续执行原程序l 空闲模式:典型功耗2mAl 正常工作模式:典型功耗4Ma7mAl 掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备STC89C52单片机引脚图如图3-1所示。 图3-1 STC89C52引脚图STC89C52引脚功能说明 :VCC(40引脚):电源电压VSS(20引脚):接地P0端口(P0.0P0.7,3932引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。在Flash ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。P1端口(P1.0P1.7,18引脚):P1口是一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流(In)此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体参见下表3-1所示。在对Flash ROM编程和程序校验时,P1接收低8位地址。表3-1 P1.0和P1.1引脚复用功能引脚号功能特性P1.0T2(定时器/计数器2外部计数输入),时钟输出P1.1T2EX(定时器/计数器2捕获/重装触发和方向控制)P2端口(P2.0P2.7,2128引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(In)在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVX DPTR”指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行“MOVX R1”指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。在对Flash ROM编程和程序校验期间,P2也接收高位地址和一些控制信号。P3端口(P3.0P3.7,1017引脚):P3是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流(In)在对Flash ROM编程或程序校验时,P3还接收一些控制信号。P3口除作为一般I/O口外,还有其他一些复用功能,如下表所示3-2所示。表3-2 P3口引脚复用功能引脚号复用功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)续表3-2引脚号复用功能P3.4T0(定时器0的外部输入)P3.5T1(定时器1的外部输入)P3.6WR(外部数据存储器写选通) P3.7RD(外部数据存储器读选通)RST(9引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST引脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。(30引脚):地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚()也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址位8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOV指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址位8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PESN(29引脚):外部程序存储器选通信号PESN是外部程序存储器选通信号。当AT89C51RC从外部程序存储器执行外部代码码PESN在每个机器周期被激活两次,而访问外部数据存储器时,PESN将不被激活。/VPP(31引脚):访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。注意加密方式1时,EA将内部锁定位RESET。为了执行内部程序指令,EA应该接VCC。在Flash编程期间,EA也接收12伏VPP电压。XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端。XTAL2(18引脚):振荡器反相放大器的输入端。3.2定时器主控电路最小应用系统时钟电路和复位电路是主控电路最小应用系统中必不可少的。定时器时钟电路原理图如图3-2所示:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为内部振荡器。石英振荡和陶瓷振荡均可采用。如采外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。图3-2 数字钟时钟电路 复位是使单片机或系统中的其他部件处于某种确定的初始状态。单片机的工作就是从复位开始的,当在单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。本次设计定时器主控电路最小系统原理图如图3-3所示。图3-3 主控电路最小系统原理图3.3 键盘及其接口3.3.1按键的去抖处理 按键就是一个简单的开关。当按键按下时,相当于开关闭合;当按键松开时,相当于开关断开。按键在闭合和断开时,触点会存在抖动现象。按键抖动时间一般为5ms10ms,抖动可能造成一次按键的多次处理问题。应采取措施消除抖动的影响。消除的方法很多,本设计采用软件延时的方法来消除抖动。当单片机检测到有按键按下时先定时,然后再检测按键的状态,若仍是闭合状态则认为真的有按键按下。当检测到按键释放时,亦需要做同样的处理。3.3.2 定时器按键电路 定时器单片机控制系统中,往往只需要几个功能键,此时,可采用独立式按键结构。独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用。本次设计按键电路的原理图如3-4所示。图3-4 按键电路原理图 其中,P1.0,P1.1,P1.2,P3.1,P3.2,P3.3均为单片机的I/O口。3.4 蜂鸣器电路 蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO口引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。STC89C52增强型单片机实验板通过一个三极管来放大驱动蜂鸣器,原理图如图3-5所示。 图3-5 蜂鸣器原理图 如图所示,三极管的基极B经过限流电阻R12后由单片机的P3.7引脚控制,当P3.7输出高电平时,三极管Q7截止,没有电流流过线圈,蜂鸣器不发声;当P3.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P3.7脚的电平来使蜂鸣器发出声音和关闭。 3.5 数码管显示电路数码管显示器是单片机应用系统常用的设备,包括LED、LCD等。LED显示器由若干个发光的二极管组成。七段LED通常构成字型“8”,还有一个发光二极管用来显示小数点。每段LED分别引出一个电极,电极的名为a、b、c、d、e、f、g、dp,其中dp是小数点段引出的电极。当发光二极管导通时,相应的一个笔画或一个点就发光。控制相应的二极管导通,就能显示出对应的字符。 数码管有两种接法即共阳极接法和共阴极接法(如图3-6所示)。所有发光二极管的阳极连接在一起称为共阳极;阴极连接在一起的称为共阴极。当选用共阴极的显示器时,所有发光二极管的阴极连接在一起接地,当某个发光二极管的阳极接高电平时,对应的二极管点亮(LED数码管每段需要10mA20mA的驱动电流)。当选用共阳极的显示器时,所有的发光二极管的阳极连在一起接高电平,当某个发光二极管的阴极接低电平时,对应的二极管点亮。 图 3-6 LED数码管结构原理图众所周知,LED显示数码管通常由硬件7段译码集成电路,完成从数字到显示码的译码驱动。本系统采用软件译码,以减小体积,降低成本和功耗,软件译码的另一优势还在于比硬件译码有更大的灵活性。所谓软件译码,即由单片机软件完成从数字到显示码的转换。从LED数码管结构原理可知,为了显示字符,要为LED显示数码管提供显示段码,组成一个“8”字形字符的7段,再加上1个小数点位,共计8段,因此提供给LED数码管的显示段码为1个字节。各段码位与显示段的对应关系如表3-3。 表3-3段码位D7D6D5D4D3D2D1D0显示段dpgfedcba需说明的是当用数据口连接LED数码管adp引脚时,不同的连接方法,各段码位与显示段有不同的对应关系。通常数据口的D0位与a段连接,D1位与b段连接,D7位与dp段连接,如表1所示,表3-4为用于LED数码管显示的十六进制数和空白字符与P的显示段码。本次设计采用的是一个两位共阳极数码管和一个四位共阳极数码管。表3-4字型共阳极段码字型共阳极段码0C0H990H1F9HA88H2A4HB83H3BOHCC6H499HDA1H592HE86H682HF84H7F8H空白FFH880HP8CH将STC89C52的P0.0P0.7分别与四位共阳极码管的ag及dp相连,低电平位对应的LED数码管的段暗,高电平的位对应的LED数码管的段亮,这样,当P2口输出不同的段码,就可以控制数码管显示不同的字符。 本次设计的数码管显示电路原理图如图3-7所示。图3-7 数码管显示电路原理图第4章 定时器软件系统的设计4.1 主程序流程图(1) 主程序流程图如图4-1所示。图4-1 主程序流程图4.2 中断流程图在这里,我们有必要介绍一下单片机的中断系统,以利于我们的学习。中断的概念:CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。中断技术在单片系统中有着十分重要的作用,它不仅可以提高单片机CPU的效率,也可以对突发事件处理。所谓中断就是当CPU正在执行程序A时,发生了另一个急需处理的事件B,这是CPU暂停当前执行的程序A,立即转去执行处理事件B的程序,处理完事件B后,再返回到程序A继续执行,这个过程被叫做中断。关于中断的概念有下列几个名词:(1)程序A称为主程序,(2)处理事件B的程序称为中断服务程序,(3)主程序中转向中断服务程序的地方称为断点,(4)引起中断的原因即事件B称为中断源,(5)转去执行中断服务程序称为中断响应。关于中断的概念可以打个如下的比喻。领导(CPU)在自己的房间办公(执行主程序),下属(外设)有问题打电话来请示(中断源),领导停下正在进行的工作,通过电话给下属做指示(执行中断服务程序),指示完后,领导挂断电话,继续做自己的工作(返回主程序继续执行)。中断是一个过程,当中央处理器CPU在处理某件事情时,外部又发生了另一紧急事件,请求CPU暂停当前的工作而去迅速处理该紧急事件。处理结束后,再回到原来被中断的地方,继续原来的工作。引起中断的原因或发出中断请求的来源,称为中断源。单片机一般允许有多个中断源,当几个中断源同时向CPU请求中断时,就存在CPU优先响应哪一个中断请求源的问题(优先级问题),一般根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求,于是便规定每一个中断源都有一个中断优先级别,并且CPU总是响应级别最高的中断请求。当CPU正在处理一个中断源请求的时候,又发生了另一个优先级比它高的中断源请求,如果CPU能够暂时中止对原来中断处理程序的执行,转而去处理优先级更高的中断源请求,待处理完以后,再继续执行原来的低级中断处理程序,这样的过程称为中断嵌套。定时器中断服务子程序流程图如图4-2所示。图4-2 中断服务子程序流程4.3 定时程序设计定时器的定时功能是通过单片机计数器的计数来实现的,此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲,也就是每经过1个机器周期的时间,计数器加1。本设计采用的是12MHz晶体,则计数频率为1MHz,即每过1us的时间计数器加1。这样可以根据计数值计算出定时时间,也可以根据定时时间的要求计算出计数器的初值。STC89C52单片机的定时器/计数器具有4种工作方式,其控制字均在相应的特殊功能寄存器中,通过对特殊功能寄存器的编程,可以方便的选择定时器/计数器两种工作模式和4种工作方式。定时器/计数器工作在方式0时,为13位的计数器,由TLX(X=0、1)的低5位和THX的高8位所构成。TLX低5位溢出则向THX进位,THX计数溢出则置位TCON中的溢出标志位TFX。当定时器/计数器工作于方式1,为16位的计数器。本次设计单片机多功能定时器,所以STC89C52内部的定时器/计数器被选定为定时器工作模式,计数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲使计数器增1。第五章 定时器的系统调试仿真与测试5.1 调试单片机控制系统的调试包括硬件调试和软件调试。调试工作的主要任务是排除硬件故障,包括设计错误和工艺性故障。由于条件限制,硬件调试主要是进行脱机检查:用万用表笔逐步按照逻辑图检查各器件的电源及各引脚的连接是否正确,检查数据总线、地址总线和控制总线是否短路。为保护芯片,对各底座的电位进行检查,确定无误后再插入芯片检查。软件调试是使用Keil C51进行编程,生成.HEX文件,在Proteus中进行仿真。 本系统的软件程序调试是在Keil C51的环境下编译的,Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,软件提供了丰富的库函数和功能强大的集成开发调试工具,全Windows界面。C51允许用户使用C语言编写中断服务程序,快速进、寄存器和出代码区的转换功能使C语言中断功能更加高效,可载入功能是用关键字来定义的。多任务,中断或非中断的代码要求必须具备可再入功能。C51提供了高效灵活的指针,通用指针用3个字节来存储存储器类型及目标地址,可以在8051的任意存储区内存取任何变量,在声明特殊指针的同时已指定了存储器类型,指向了某一特定的存储区域。由于地址存储只需12字节,因此,指针存取非常灵活迅速。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51软件生成的目标代码效率之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势,C语言有以下特点:1、运算符丰富。C语言的运算符包含的范围很广泛,共有34种运算符,使得C语言的表达式类型多样化,运算类型极其丰富,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。2、语言紧凑、简洁、灵活、使用方便。C语言只有9种控制语句,32个关键字,程序书写自由,主要用小写字母表示,压缩了一切不必要的成分。3、用函数作为程序的模块单位,具有结构化的控制语句,便于程序实现模块化。4、数据结构丰富,具有现代化语言的各种数据结构,能用来实现各种复杂的数据结构运算。5、C语言能处理位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此,C语言既具有高级语言的功能,又具有低级语言的许多功能,可用来写系统软件。C语言的这种双重性,使它既是系统描述语言,又是通用的程序设计语言。6、程序设计自由空间大,语法限制不太严格。7、用C语言写的程序可移植性好,基本上不用修改就能用于各种型号的计算机和各种操作系统。8、生成目标代码质量高,程序执行效率高。5.2 仿真 本系统采用的是Proteus进行仿真。Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译器。在 Proteus绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在 Proteus的原理图中看到模拟的实物运行状态和过程。 Proteus是单片机课堂教学的先进助手。Proteus不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。课程设计、毕业设计是学生走向就业的重要实践环节。由于 Proteus提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台。本次设计的仿真图如图5-1所示。 图5-1 定时器的电路仿真结果 通过电路仿真,我们可以得到预期的电路功能,即实现了时、分、秒的显示功能。5.3 测试(1) 给系统上电后,系统开始工作,默认当前时间为12.00.00,如图5-2所示。 图5-2 上电后测试图(2)按下调整时间功能键:首次按下,进入调整小时模式;二次按下,进入调整分钟模式;三次按下,退出调整时间功能,并显示正常走时。如图5-3所示。图5-3 调整时间功能测试(3)按下调整闹钟时间功能键:首次按下,进入调整闹钟时间,走时指示灯会以一秒的频率闪烁,并显示当前闹钟时间。二次按下,进入调整闹钟小时模式;三次按下,进入调整闹钟分钟模式;四次按下,退出调整闹钟时间功能,走时指示灯会熄灭,并显示正常走时。打开闹钟开关,闹钟指示灯会点亮,当下的时间到设定的闹钟时间后,蜂鸣器会发出“滴-滴-滴.”声音。若关闭闹钟,闹钟指示灯会熄灭。系统默认闹钟时间为06.00.00。如图5-4所示。图5-4 闹钟功能测试(4) 整点报时开关:按下后,打开或关闭整点报时功能。若打开该功能,整点报时指示灯会点亮。当下的时间到整点时(比如12点整,1点整,2点整.),蜂鸣器会短响一声。若关闭该功能,整点报时指示灯会熄灭。如图5-5所示。图5-5 整点报时测试第6章 总 结通过本次毕业论文的设计与制作,我较为全面地回顾了自己在大学四年时间里所学的知识,并充分对所学知识的理解和把所学的知识用到实际当中去,理论联系实际。这也为自己今后进一步深化学习,积累了一定宝贵的经验。尤其单片机原理与应用及电子技术方面的相关知识,在这次毕业设计中得到了较好地实践。在这次毕业设计当中,我遇到很多自己不理解的问题及书本上或是我以前没有看见过的知识点。在面对这些问题时,我首先采用的是上网搜寻的方法,在根据别人的提示,想想自己的问题出在哪里,该怎么解决。当我还是无法想到解决的办法时,我就带着自己的问题到图书馆查阅资料或找同学互相交流,采用这样的方法,我的很多问题都迎刃而解了!其次,我不但努力解决自己遇到的问题,还帮助同学解决他们遇到的问题。这样一来,我的知识得到了进一步的巩固,同学的问题也得到了相应的解决,我达到了一举双收的效果,我为此而感到高兴。让我觉得本次毕业设计的最大成果是:知道了将理论用到实际当中时,会遇到很多的问题。需要我们一个一个地把它解决,根据自己所学的专业基础知识分析具体原因,具体问题具体分析,再逐一把它克服掉。知道理论与实际的差距,所以以后要多加强实际动手的能力。因此,学习就应该采取理论与实践相结合的方式,理论的问题,也就是实践性的课题。这种做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强我们的动手能力和解决问题的能力。最后,我相信以后不管遇到什么困难和挫折,不要畏惧,要敢于向前探索,这样问题才能迎刃而解,这样我们才能成功。致 谢 通过这几个月来的忙碌和学习,本次毕业论文设计已接近尾声,在这里衷心感谢指导老师王飞老师的督促指导,以及一起学习的同学们的支持,让我按时完成了这次毕业设计。 在毕业论文设计过程中,我遇到了许许多多的困难。在此我要感谢我的指导老师王飞老师给我悉心的帮助和对我耐心而细致的指导,除了敬佩王飞老师的专业水平以外,他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作,我才得以解决毕业设计中遇到的种种问题。同时感谢大学四年传授我们专业知识的所有老师,谢谢你们呕心沥血的教导。还有谢谢我周围的同窗朋友,他们给了我无数的关心和鼓励,也让我的大学生活充满了温暖和欢乐。如果没有他们的帮助,此次毕业论文的完成将变得困难。他们在我设计中给了我许多宝贵的意见和建议。同时也要感谢自己遇到困难的时候没有一蹶不振,取而代之的是找到了最好的方法来解决问题。在本次毕业设计完成之际,我以诚挚的心情再次向王飞老师和帮助过我的同学表示衷心的感谢,感谢在这段时间里对我的关怀、鼓励和悉心的指导。参考文献1 钟 睿.单片机原理及应用开发技术.北京航空航天大学出版社,20012 李朝青.单片机原理及接口技术.北京:北京航天航空大学出版社,19983 贾宗,许合利.C语言程序设计.北京:人民邮电出版社,2010.94 艾永乐,付子义.电子技术基础(模拟部分,数字部分).北京:中国电力出 版社,20085 余家春.Protel 99SE电路设计使用教程.北京:中国铁通出版社,20036 徐江海.单片机实用教程.北京:机械工业出版社,2006.12 7 唐勇.基于单片机的电子钟的设计.湖南:湖南工学院,20078 邢小杰.单片机电子时钟设计.中国科技博览,2009 9 吴金戎,沈庆阳,郭庭吉.单片机实践与应用,M.北京:清华大学出版社, 200110 康华光.电子技术基础(数字部分,模拟部分).北京:高等教育出版社,200811 李建忠. 单片机原理及应用M. 西安:西安电子科技大学出版社

    注意事项

    本文(毕业论文-基于STC89C52单片机的智能定时器设计.doc)为本站会员(韩长文)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开