




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计(论文)题 目 名 称 基于单片机的电子计时器设计 课 程 名 称 单片机原理及其在电气测控学科中的应用 学 生 姓 名 学 号 0942130147 系 、专 业 机电工程系 09-3电气自动化 指 导 教 师 2012i摘 要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、应用,以at89c51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5v直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。关键词:单片机;at89c51;电子时钟;数码管28目 录摘 要01 绪论12 系统概述及总体设计22.1系统概述22.2总体设计23 硬件设计33.1系统工作原理33.2 单片机的复位电路33.3单片机的晶振电路43.4按键电路43.5 时钟显示电路54 软件设计65 系统仿真调试说明116 仿真结果与分析12参考文献13致 谢14附录(电路原理图)15附录(程序清单)161 绪论电子计时器,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子计时器,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用led显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。电子计时器电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:ds1302,ds12887,x1203等都可以满足高精度的要求。本文主要介绍用单片机内部的定时/计数器来实现电子计时器的方法,本设计由单片机at89c51芯片和led数码管为核心,辅以必要的电路,构成了一个单片机电子计时器。2 系统概述及总体设计2.1系统概述 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机具有体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。电子计时器是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境的不断改善和美化,在许多场合可以看到电子钟。在城市的主要营业场所、车站、码头等公共场所使用的电子计时器已经成为一种时尚。但目前市场上各式各样的电子钟大多数用全硬件电路实现,电路结构复杂,功率损耗大等缺点。因此有必要对数字电子钟进行改进。2.2总体设计 微处理器的设计选择89c51;显示电路的设计选用数码显示,将数码显示与驱动集成在一块芯片上;校时电路的设计,通过两个按钮来控制,一个使时钟加一,另一个使分钟加一;闹铃的设计,软件方面需通过不断比较当前时间与闹铃设定的时间来实现闹铃;硬件方面,同样需要用到一个按钮来设置闹铃时间以及停闹铃;秒表的设计,硬件通过一个按钮控制秒表的开、停,软件利用外部中断0来实现停秒表。还有一些其他控制电路如复位电路、时钟电路等。通过这些控制电路的连接构成了完整的电路。本系统是一个多功能电子计时器,数码管显示时间,具有通过多个按钮对对应的时、分进行加一调节,设闹钟,开、停秒表以及复位。3 硬件设计3.1系统工作原理 at89c518 位led显 示 器led显示器段码驱动5个独立式按钮按 钮led显示器位码驱动按键复位蜂鸣器图3.1 系统结构图对定时器t0设置一个50ms的脉冲,设定一计数功能的单元地址20h,其内容是20。通过当20h中值减为0时秒加一。当秒、分值为60时,该位清零,且高位加一。该系统是通过p2口控制时、分、秒的位的选择,通过p0口由74ls245锁存器实现时、分、秒具体的09的显示。分、时的调节是通过p1.1、p1.2口两个按钮,每一个按钮按下,对应端口由高电平变为低电平,程序进入一个相对应的加一程序。进入闹铃设置是通过 p3.3口按钮来控制的,闹铃的调整要调用闹铃的时间调整程序,闹铃响起后要停止闹铃,只要按下p3.3口的按钮则外部中断1来申请中断来实现停闹铃。按下p3.2口的按钮则开启秒表,再按一下按钮则由外部中断0申请中断来停止秒表。p1.0口接按钮实现清零功能。按下后,时钟从零时零分零秒显示。复位电路我们采用了上电复位和手动复位相结合的形式,设置了一个复位按钮。3.2 单片机的复位电路我们采用上电复位和手动复位相结合的方式。图3.2 复位电路3.3单片机的晶振电路在晶振两侧各接一个30pf的瓷片电容接地,用来削减偕波对电路的稳定性的影响。图3.3 单片机的晶振电路3.4按键电路按下键后对应的端口被拉成低电平以实相应的功能。其中的秒表按键以及闹钟按键功能比较强大,他们须分别实现秒表的开、停和设置闹钟时间的进入以及停止闹铃。图3.4 电子时钟的按键电路3.5 时钟显示电路我们选用了8个共阴极的数码管来显示时钟。因为段选端需要接一个锁存器以稳定显示,而p0口的驱动能力最大,所以我们选p0口为段选段。p2口为位选。不选p3口是因为我们要用外部中断0、1来实现停秒表和停闹铃的功能。图3.5 时钟显示电路4 软件设计程序流程yyn响闹铃ny闹铃比较,(18h)=1y设置各中断程序入口地址设置初始时钟,(19h)=1t0初始化开中断,启动t0显示时钟按键扫描有键按下否外部中断1是否响应停闹铃功能程序n开始 图4.1 主程序流程图程序开始后,设置各中断路口的首地址,然后开启中断,启动后将其与闹钟设定数值相比较,若没有达到闹钟设定数值则显示时钟然后再按键扫描,并执行相应的功能程序。若达到了闹钟设定数值,则向闹钟。当外部中断相应时,闹钟停止。开始显示时钟p1.1是否按下(调分)显示p1.2否按下(调时)显示闹铃比较处调时钟 y n 回到闹铃比较处图4.2 调时钟流程图当按下p1.1或p1.2时,分别对分和时加一,然后再显示,当所调时与闹钟时间比较没有达到时,则回到闹钟比较处。开始 设置闹钟时间 显示原闹钟时间显示,(19h)=0p1.1是否按下(调分)p1.2是否按下(调时)显示,(19h)=0是否退出? 回 回到闹铃比较处闹铃比较处图4. 设闹钟流程图开始对闹钟时间进行调节,按p1.1和p1.2分别对分钟和时钟加一,查看显示值,查看(19h)中的值是否为零,再判断是否退出回到闹铃比较处。重置初值,启动下一个50ms(20h)=0?秒单元加1,(20h)=14h秒单元=60?分单元加1,秒单元清零分单元=60?时单元加1,分单元清零时单元=24?时、分、秒单元清零中断返回进入主时钟中断 开始n y n n y n y y 图4. 主时钟计时流程图本程序是主时钟中断程序,首先对其设定初值,查看(20h)中的值是否为零,为零时秒单位加一,当秒为60时,分加一。当分为60时,时加一。当时为24时,对秒分时都清零。然后返回中断。5 系统仿真调试说明在wave中编好一个功能程序,编译无误后,添加到proteus仿真软件中的at89c51芯片中,保存,运行,观察是否得到想要的结果,如果不是则回到wave中改进程序,再编译、仿真,直至所有功能均可实现。 显示时钟功能,要能显示时、分、秒,并能显示之间的分隔符。秒表功能,按下相应按钮开秒表,再次按下则停秒表。清零功能,按下清零键当前时间从零时零分零秒走起。设置闹铃时间功能,按下相应的键要进入调闹铃,此时只显示时、分以及其间的分隔符,按下调分键进行调分,按下调时则调时。闹铃功能,到了设定的时间后蜂鸣器发出有规则的断、续的声音,按下设置闹铃的键则停止鸣叫。 6 仿真结果与分析图6.1仿真结果图刚开始仿真是遇到了困难,数码管不显示,原来是程序出错,不能达到指定的功能经过反复修改程序,终于实现了其基本功能,按各个开关都能实现指定的功能,调时,调秒表,调闹钟等。仿真的成功,让我收获到成功的喜悦。让我懂得了硬件和软件的功能,使我受益匪浅。参考文献1李朝青.单片机原理及接口技术.(第三版),北京航空航天大学出版社,1999:18-47页2朱清慧 张凤蕊 翟天嵩 王志奎.proteus 教程电子线路设计制版与仿真.m,清华大学出版社,2008:1-116页3李维祥.单片机原理与应用m.天津大学出版社,2001:1-96页4钱逸秋.单片机原理与应用m.电子工业出版社,2002:1-102页5华成英,童诗白.模拟电子技术基础(第四版).高等教育出版社,2006:39-222页致 谢首先要感谢辅导老师的细心教导,教会了我们如何写论文,后面我们终于搞出了像样的论文,对所学知识也有了更深入的了解,并且能够将所学知识融会贯通,这些都归功于指导老师孜孜不倦的教导。在整个设计过程中,我们充分发挥了人的主观能动性,自主学习,学到了许多课本上没法学到的知识,较好的完成了作品,达到了预期的目的,完成了最初的设想。通过这次设计,认识到对电路的设计、布局要先有一个好的构思,才显得电路板美观、大方。程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考,查阅了很多资料,理清了思路,渐渐开始得心应手。在此次设计中,知道了无论做什么事要有一颗平常的心,不要想着走捷径,一步一个脚印才是硬道理。通过这次设计,会让我以后的学习和办事变得更加严谨、更加有耐心、更加有条理。最后,再次要感谢我们的老师,是他教给了我们全面的基础知识,如果没有精湛的基础知识作为后盾,一切都是不可能的附录(电路原理图) 电路原理图 电路原理图 附录(程序清单) org 0000h ljmp main org 0003h ljmp runhold ;停秒表中断 org 000bh ljmp run ;秒表计时中断 org 0013h ljmp stop ;停闹铃鸣叫 org 001bh ljmp timer ;主时钟计时中断 org 0100hmain:mov sp,#60h ;设置堆栈 setb rs0 ;设置当前工作组 clr rs1 clr it0 ;设置外部0中断方式 clr it1 ;设置外部1中断方式 mov tmod,#11h ;t0主时钟计时,t1秒表计时 mov 20h,#14h ;主时钟计时循环次数 clr a mov 30h,a ;主时钟计时数据存放单元,秒十六进制存储单元 mov 31h,a ;分十六进制存储单元 mov 32h,a ;时十六进制存储单元 mov 72h,#10h ;分秒分隔符 mov 75h,#10h ;时主时钟计时循环次数 mov 76h,a mov 77h,a mov 51h,a ;设置闹铃时间 mov 52h,a setb et1 ;开放t0中断 setb ea mov th1,#3ch mov tl1,#0b0h setb tr1 ;开t0 clr 19h ;设置调闹钟标志 * 闹钟比较 *alarmc:jb 19h,keyscan setb ex1 setb 18h ;设置停闹铃鸣叫标志 mov a,32h cjne a,52h,keyscan mov a,31h cjne a,51h,keyscan set3:jnb 18h,keyscan setb 19h clr p1.7 ;闹铃鸣叫 lcall led_bcd setb p1.7 lcall led_bcd ajmp set3 * 按钮扫描 * keyscan:clr ex1 lcall led_bcd jb p1.1,set5 madd1:lcall del05s ;调分 jnb p1.1,set4 clr et1 clr tr1 mov a,#1h add a,31h da a mov 31h,a cjne a,#60h,set5 mov 31h,#00h mov a,#1h add a,32h da a mov 32h,a ajmp set5 set4:jnb p1.1,$ set5:lcall led_bcd setb et1 setb tr1 jb p1.2,set9 hadd1:lcall del05s ;调时 jnb p1.2,set8 mov a,#1h add a,32h da a mov 32h,a cjne a,#24h,set9 mov 32h,#00h ajmp set9 set8:jnb p1.2,$ set9:lcall led_bcd setb et1 setb tr1 jb p3.2,clear lcall del05s jnb p3.2,set10 setb et0 ;进入秒表 set16:mov th0,#3ch mov tl0,#0b0h mov 21h,#02h mov 40h,#00h mov 41h,#00h mov 42h,#00h mov 43h,#00h mov 01h,#01h setb tr0 set11:lcall disprun setb ex0 jb 01h,set11 mov 75h,#10h lcall led_bcd lcall led_bcd lcall led_bcd ajmp clear set10:jnb p3.2,$ clear::lcall led_bcd jb p1.0,ajustalarm ;清零 lcall del05s jnb p1.0,set15 ljmp set19 set15:jnb p1.0,$ ajmp ajustalarm set19:clr tr1 clr a mov 30h,a mov 31h,a mov 32h,a setb tr1 lcall led_bcd lcall alarmcajustalarm:jb p3.3,set31 ;调闹铃 lcall del05s jnb p3.3,set32 set33:lcall dispalarm jnb p1.1,set36 jb p1.2,set33 ljmp set37 set36:ljmp set34 set37:ljmp set35 set31:ljmp alarmc set32:jnb p3.3,$ ljmp alarmc stop:push psw ;停闹铃中断 push a setb p3.3 clr 18h clr ex1 clr p1.4 pop a pop psw reti runhold:push psw ;停秒表 push a clr et0 clr tr0 mov 00h,#150 set13:lcall disprun djnz 00h,set13 clr 01h clr ex0 pop a pop psw reti run:push psw ;秒表计时中断 push a mov th0,#3ch mov tl0,#0b0h djnz 21h,return mov 21h,#02h mov a,#1h add a,40h da a mov 40h,a cjne a,#10h,return mov 40h,#00h mov a,#1h add a,41h da a mov 41h,a cjne a,#10h,return mov 41h,#00h mov a,#01h add a,42h da a mov 42h,a cjne a,#10h,return mov 42h,#00h mov a,#01h add a,43h da a mov 43h,a cjne a,#10h,return mov 43h,#00h return:lcall disprun pop a pop psw reti disprun:push 08h ;秒表计时中断 push a mov r0,#42h mov 22h,#2h mov p2,#0feh mov a,40h mov dptr,#tab movc a,a+dptr mov p0,a lcall del10ms mov a,p2 rl a mov p2,a mov a,41h mov dptr,#tab1 movc a,a+dptr mov p0,a lcall del10ms mov a,p2 rl a mov p2,a next:mov a,r0 mov dptr,#tab movc a,a+dptr mov p0,a lcall del10ms mov a,p2 rl a mov p2,a inc r0 djnz 22h,next pop a pop 08h ret set34:lcall del05s ;开始调闹钟,调分 jnb p1.6,set25 mov a,#01h add a,51h da a mov 51h,a cjne a,#60h,set23 mov 51h,#00h ajmp set23 set25:lcall display jnb p1.1,$ ajmp set33 set35:lcall del05s ;调时 jnb p1.2,set27 mov a,#01h add a,52h da a mov 52h,a cjne a,#24h,set23 mov 52h,#00h ajmp set23 set27:lcall display jnb p1.2,$ ajmp set33 set23:mov 04h,#150 set24:lcall dispalarm jnb p1.1,set34 jnb p1.2,set35 djnz 04h,set24 clr 19h ljmp alarmcset28:lcall dispalarm ajmp set35 set29:mov 04h,#150 set30:lcall dispalarm jnb p1.1,set34 jnb p1.2,set35 djnz 04h,set30 clr 19h ljmp alarmcdispalarm:mov 70h,#00h ;闹铃显示 mov 71h,#00h mov a,51h anl a,#0fh mov 73h,a mov a,51h anl a,#0f0h swap a mov 74h,a mov a,52h anl a,#0fh mov 76h,a mov a,52h anl a,#0f0h swap a mov 77h,a lcall display1 rettimer:push psw ;主时钟计时中断 push a clr tr1 mov th1,#3ch mov tl1,#0b0h djnz 20h,retuntt mov 20h,#14h mov a,#01h add a,30h da a mov 30h,a cjne a,#60h,retuntt mov 30h,#00h mov a,#01h add a,31h da a mov 31h,a cjne a,#60h,retuntt mov 31h,#00h mov a,#01h add a,32h da a mov 32h,a cjne a,#24h,retuntt mov 32h,#00hretuntt:pop a pop psw setb tr1 reti led_bcd: mov 72h,#10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 发布信息审计试题及答案
- 医患沟通心理学理解患者需求的核心能力
- 医保支付方式改革与2025年医保知识考试题库及答案解析
- 医疗AI伦理应用探索边界与决策的人性关怀
- 照明知识培训教程
- 医疗行业中的跨学科沟通培训
- 医疗行业使用区块链技术的道德和隐私问题研究
- 护师考试自信心培育试题及答案
- 热工学基础知识试题及答案
- 无人机行业职业前景与考试指导试题及答案
- 建筑设计防火要求规范2024修订版
- 2021年武汉中考数学试题(附答案)
- 规范会议记录培训课件
- GIS(地理信息系统)空间分析
- 《舞蹈艺术赏析》课件
- 露营基地项目实施方案
- 面肌痉挛的健康宣教
- 工程招标代理服务投标方案(技术方案)
- 超滤反渗透调试方案
- 钢结构施工进度计划表模版
- 七承包人实施计划
评论
0/150
提交评论