




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、安阳师范学院本科学生毕业论文电子秒表电路作者 系(院) 物理与电气工程学院 专业 电气工程及其自动化 年级 学号 指导教师 日期 2015年3月06日 第12页学生诚信承诺书本人郑重承诺:所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得安阳师范学院或其他教育机构的学位或证书所使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 作者签名: 日期:导师签名: 日期:院长签名: 日期:论文使用授权说明本人完全了解安阳师范学院有关保留、使用
2、学位论文的规定,即:学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。作者签名:导师签名: 日期:电子秒表电路(安阳师范学院 物理与电气工程学院, 河南 安阳 455000)摘要:本设计的数字式电子秒表系统采用的是AT89C52单片机为中心器件,利用它的定时器/计数器定时以及记数的原理,结合显示电路、LED数码管和外部中断电路来进行设计的计时器。将软、硬件灵活地结合起来,使得整个系统能够实现6位LED显示,显示的时间为059分59秒99,计时的精度为0.01秒。关键词:单片机; LED数码管显示器;AT89C521
3、引言电子秒表在电器制造,工业自动化控制、国防、实验室以及科研单位上来说是一种较为理想的计时仪表,它普遍应用于各类继电器、电磁开关,控制器、延时器、定时器上的时间测试。这几百年中从我国水运仪像台的发明一直到现在各个国都在研发的原子钟的钟表演变过程中,我们可以发现,各个不同时期的科学家和钟表工匠通过他们的智慧和不断的实践铸成了一座时间的隧道,与此同时也为我们勾勒了一条钟表文化和科技发展的轨迹。本篇论文是运用单片机的定时装置和控制装置进行的研究与论述,以AT89C52为主控制芯片,利用LED显示器进行设计的电子秒表。2 系统硬件设计2.1 单片机的选择在微型单片机选择上,我们需要考虑存储器容量,时钟
4、频率,I/O口线等一些基本参数。对本设计来说,因为电子秒表系统在数据的处理和存储方面要求不高,所以选取片内带RAM和ROM的单片机即可,考虑到成本和操作的方便性,我本次设计采用的是AT89C52单片机。AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。AT89C52 有25
5、6 个字节的内部RAM,80H-FFH 高128 个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128字节的RAM 和特殊功能寄存器的地址是相同的,但物理上它们是分开的。AT89C52的定时器0和定时器1 的工作方式与AT89C51 相同2.2 系统功能概述 数字式电子秒表具有显示直观、读取便利、精度高等优点,在平常生活的计时中普遍使用。本次设计是用单片机构成数字式电子秒表,以构造简单、精度高为目标。 本次设当计中包含硬件电路的设计和系统程序的设计。在硬件电路中主要有主控制器,计时与显示电路和回零、启动和停表电路等。我的设计中主控制器运用的单片机是AT89C52,显示电路利用
6、的是共阳极LED数码管显示器在设计总体方案中我是以AT89C52单片机作为控制的核心,设计了一个具有计时功能的电子秒表。对于一个完整的电子秒表电路来说它就相当于一个单片机的最小系统,主要由键盘输入电路、单片机、晶振、复位电路和LED显示电路组成。我本次设计的电子秒表所涉及的内容如下: (1)开关的使用:控制电子秒表的启动、停止和复位,七段数码管的高2位显示秒表的秒值,低2位显示秒表的百分秒值。 (2)定时器的使用:通过秒表的计时过程直观的说明定时器的使用方法。 (3)键盘的使用:通过秒表的启动、停止、复位的选择,直观地体现出独立式键盘的设计方法与技术。 (4)LED的使用:介绍了L
7、ED的原理和方法,并对其编程方法做了大体上的总结。 外部指令对单片机的输入一般是通过按键、键盘等输入器件来实现的,本次毕业设计是运用键盘来实现电子秒表的启停及其复位: (1)按键K1。按键K1有两个功能,第一个是在计时状态下控制秒表的启动;第二个是在计时状态下控制秒表的停止。 (2)按键RESET。起程序复位作用2.3 系统电路设计 系统总体框图如图1:AT89C52显示电路按键电路复位电路图1 系统框图如图2所示为单片机电子秒表的电路原理图,接下来对其中一些部分做出分析。图2 电子秒表原理图2.3.1 复位电路 当AT89C52的RST
8、引脚接高电平到时,单片机被强制复位。RST端的高电平直接由上电瞬间产生则为上电复位,若通过按动按钮产生高电平复位称为手动复位。对于AT89C51单片机应用系统来说通常有两种复位方式,上电复位和手动复位,在时钟电路工作的后,只要单片机的RST引脚上面出现24个振荡脉冲(2个机器周期)以上的高电平,单片机便实现初始化状态复位,而在设计的过程中,一般使高电平保持在10ms以上。这里采用手动复位方式。当按钮按下的瞬间,电路就接通了,接通之后就会给电容充电,实现RST端的高电平,使单片机复位,当按钮释放时电容器就会放电,使高电平的产生时间较长。其示意图如3所示。 图3 复位电路设计示意图2.3.2 时钟
9、电路AT89C52内含一个高增益的反相放大器,只要通过XTAL1,XTAL2外接作为反馈元件的晶体后便成为自激振荡器,晶体会呈感性,与 C1,C2 组成并联谐振电路。一般连接如图4所示:图4 AT89C52外部时钟电路图2.3.3 数码管显示电路在本设计中,时间值使用数码管显示,电路图如图5:图5 数码管电路原理图图5为数码管显示电路和对应的驱动电路。本设计采用的是0.56英寸的三位共阳型七段数码管,结构如图6所示。共阳型数码管的结构如上图6所示,从上图可以看出,每一个LED的正极接在一起形成图6 0.56英寸4位共阳数码管结构图公共端,如果要点亮每一段LED,对应的负极要给低电平,便可使LE
10、D导通发光。由于驱动一个数码管需要电流较大,如果直接接入单片机,则会因为供电不足而导致亮度很暗,甚至无法正常显示。因此有必要增加一个驱动电路,以提供更大的电流。驱动电路有几种方案可选,比如用集成的驱动芯片,如74LS573锁存芯片,74LS245驱动芯片等。本设计采用的方法是较为简单的三极管驱动。图5原理图已经给出了具体的驱动电路方案。每一个数码管的公共端接入一个S8550三极管,控制对应S8550三极管的导通,即可让数码管获得VCC,从而被点亮。因为S8550是PNP型三极管,所以要使其导通,则其基极应该获得低电平,也就是单片机要输出“0”给基极,方可使数码管获得VCC。同理,如果不想让数码
11、管被点亮,则基极应该得到“1”,S8550截止,数码管无VCC。以上可见,通过控制三极管的导通和截止,实现了一个重要的功能:选择对应数码管工作。本设计正是基于数码管的动态扫描原理,来实现8个两位数码管的正确显示。所谓动态扫描,就是在一个时刻里,只让一个数码管工作,其余数码管不工作。紧接着下一个时刻,让另一个数码管工作,上一个数码管和其它数码管停止工作。按照这样的原理,轮流让所有的数码管一个接一个工作,并且对应工作的数码管送出对应的数据值。从宏观来看,即可看到所有数码管是同时工作一样。这里的宏观,指的是人的眼睛。人眼有一个视觉暂留功能,即看到一个影像后不会马上消失,而是会暂留在眼里一段时间,这个
12、时间一般是在3040ms左右。也就是说,如果我们在这个暂留时间内不断地更新影像,则人眼看到的将是连续的画面,而不会有停顿感。如果超过这个时间,人眼就能看出来画面不连续,有闪烁感(是切换画面时间过长造成的)。综上,本设计中有1个4位数码管,则一共有4个数码管。要在40ms时间内对所有数码管进行扫描(送数据),则每个数码管扫描时间不能超过10ms。本设计中每个数码管扫描时间设计为1ms,符合要求。2.3.4 按键模块 本设计中,采用1个按键完成计时的开始和暂停切换功能。按键模块如图7所示:图7 按键模块按键设计成低电平有效,也就是说当有按键按下后,对应的IO口状态是低电平的,单片机只要检测对应IO
13、口的电平状态即可知道是否有按键按下。另外,为了提高系统的抗干扰性,每个独立按键均接了一个上拉电阻。这样设计的好处是,当没有按键按下时,由于上拉电阻作用,对应IO口被上拉到VCC),也就是说按键的空闲状态是高电平。只有按键按下后,IO才被按键拉到地(低电平),从而提高了按键的抗干扰性能,减小外界的干扰。3 系统的程序设计 系统硬件设计好以后,接紧接着需要进行软件设计。电子秒表的软件设计主要有三个方面:一是利用定时器来完成秒表的定时周期;二是利用定时中断来实现键盘的扫描,确定单片机的工作状态;三是利用单片机控制LED的输出显示。3.1 主程序 主程序如图8所示:初始化启/停按键检测是TR0取反返回
14、图8 主程序图系统主函数流程如图8所示,主要完成对按键的检测,然后对定时计数器工作状态进行关闭或者开启,从而启动或者暂停计时。3.2 按键模块程序流程图 按键模块的流程如下图9所示:开始否检测到低电平?按键检测置标志位仍为低电平?是否20ms去抖是 图9 按键模块流程图按键模块软件设计中,主要是注意按键的去抖处理。由于通常的机械按键在按下的过程中会存在一个抖动的过程,一般为5ms10ms。在抖动过程中,会出来高低电平的变化。所以需要对抖动进行一定的处理,以避免系统误操作。通常方法有两种,第一是硬件消抖。硬件消抖主要是运用数字电路的稳态来完成此功能。本设计利用的是软件消抖,当检测到有按键按下时,
15、不会马上采取动作,而是需要延时一段时间,以跳过按键的抖动期,过了这段时间再去检测按键,如果仍然是按下状态,则说明是真正有按键按下,而非抖动或者外界的干扰。软件消抖在一定程度上减少了硬件成本。if(key=0) / 起停按键按下时delay(20);/ 延时20ms,跳过抖动时间,再判断if(key=0)/ 确实有按键按下TR0=TR0;/ 将TR0取反,实现每按一次,就开始计数或者暂停计数while(!key);/ 等待按键弹起以上为按键检测及软件去抖代码。3.3 数码管扫描流程图 数码管动态扫描采用T1定时器中断,流程图如下图10所示:T1中断退出中断sel为6?是否送对应的段码送对应的位选
16、sel自加1sel清0图10 扫描模块流程图以下为具体代码:uchar segdata6=0x00,0x00,0x00,0x00,0x00,0x00;/ 6个数码管的数据uchar code select6=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;/ 6个数码管的位选信号uchar code table10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /0-9/*定时器1中断*/void timer1_int() interrupt 3 / 扫描数码管TH1=(65536-1000)/256;TL1=(65536-1
17、000)%256;/ 注意,仿真时,由于没有用三极管驱动,位扫描要取反/SCAN=0xff; / 仿真时,要用这句代替下面这句SCAN=0xff; / 需要关了所有的数码管,避免数码管有重影if(sel=2)PDATA=tablesegdatasel-0x80;/ 当显示到第二个数码管时,显示计时的小数点else if(sel=4)PDATA=tablesegdatasel-0x80;/ 当显示到第二个数码管时,显示计时的小/ 数点elsePDATA=tablesegdatasel;/ 否则是其它的数码管,则不显示小数点 /SCAN=selectsel;/ 仿真时用这句位扫描,替代下一句SCA
18、N=selectsel;/ 送出数据后,再打开对应的数码管sel+; if(sel=6)/ 扫描完4个数码管后,又开始重新扫描(从右到左扫描) sel=0; segdata0=s1%10;/ 将计时的值放到对应的显示位置segdata1=s1/10;segdata2=s2%10;segdata3=s2/10; segdata4=s3%10; segdata5=s3/10; 本设计有6个数码管,因此sel取值为0、1、2、3、4、5,用来对应6个数码管。如上面的代码,sel=0对应的是分钟的十位,以此类推。每中断一次,送一个数码管对应的段码,同时位选也是选中该位数码管。具体选中哪个数码管,由se
19、l来决定(sel的不同值对应不同的数码管)。当数据输出后,sel自加1,以便指向下一个数码管。等待下一个中断(间隔1ms)来临,又按上面的过程完成下一个数码管的扫描。程序中要注意先关闭显示,然后送出段码,最后打开显示。这样做的目的是为了避免数码管出现重影现象,可以使显示更清晰。3.4 T0计时流程图 T0定时器中断,流程图如下图11所示:1mS时间到,进入T0中断满1000?是秒满60?分满59?是是秒+1分+1否否否退出中断计满59.59.99?暂停计时是否图11 T0中断计时代码如下:/*定时器0中断*/void timer0_int() interrupt 1/ 秒表TH0=(65536
20、-1000)/256;TL0=(65536-1000)%256;cnt+;if(cnt=10)&&(full=0)/ 当cnt=10,说明计了10ms,则将计时的数据更新一/ 下,放到数码管上显示 / 只有当cnt=10,并且时间没计到59.59.99s时,才往下执行cnt=0;s1+;if(s3=59)&&(s2=59)&&(s1=99)full=1;/ 如果计满,则置标志位else if(s1=100) s1=0;/ 小数的秒 s2+; if(s2=60) s2=0;/ 秒s3+; 因为要求计时精确到0.01s,所以选择T0的中断时间为0.0
21、01s,即1ms。因此T0每1ms即中断一次,接着让cnt加1,当其加到10,则说明计时10ms,此时让s1加1。如果s1加满100,则计时时长为10ms*100=1s,说明已经计满1s,向秒寄存器s2进位。秒寄存器s2如果计满60,则向分寄存器s2进位。以上就是一个计时的过程。如果最终计时满59.59.99,则停止计时。4 系统仿真4.1 仿真测试步骤(1).启用proteus。(2).从元器件库中调出各种系列的芯片,电容,电感,电阻以及示波器等我们所需要的各种元器件,元器件调出后,认真连接各元件,对元器件的位置进行调整以求电路原理图美观简易,并保存图,使布局比较合理。 (3).在keil中
22、编写电子秒表的C语言源程序,并且生成后缀为.hex的文件。(4).将后缀为hex的文件添加到proteus中的电子秒表的电路图中,进行仿真。(5).点击proteus的测试按钮,对电路系统进行测试,观察LED显示时间的变化。4.2 仿真图把程序添加到proteus中的电子秒表电路之后,点击按钮后,LED显示的时间如图12所示图12 电子秒表仿真图通过本次仿真,实现了电子秒表的计时、暂停、复位功能,并使显示时间达到了059分59秒99,计时精度为0.01秒,符合本次设计的要求。5 总结本次毕业设计我设计的是基于单片机的电子秒表,是设计一个电子秒表,具有启动、停止和清零的功能。经过3个多月的方案论
23、证、系统的硬件和软件的设计、系统的调试,本人查阅了大量的关于AT89C52单片机的知识和电路。经过了这么长时间的查找与探究,经历了失败与成功,感受到了成功的喜悦与成就感。第一次利用所学的专业知识探究解决难点疑点,同时也对自己的知识水平进行了一番考察,让我对自己也有了新的了解。非常感谢我的毕业设计指导老师闫老师,通过本次毕业设计,是他让我对原来所学的数字、模拟电子技术、单片机原理及接口技术等课程有了进一步的理解,成功使用了Keil uVision4和Proteus ISIS电子软件,让我对课本上的理论知识进行了更系统实用的理解,更加系统地掌握了微机应用系统的一般设计方法和理论,培养了较强的编程能力、开发能力。 我们只有把课本上学到的知识运用到实践中,才能真正意义上理解所学的知识,同时增强自己实践的能力,为设计新的作品打下完美的基础。不仅可以锻炼自己分析问题、处理问题的能力,而且还能提高自己的动手能力。这些锻炼对于我们这些将要走向社会的大学生来说,是很有必要的。参考文献1 李玉峰,倪虹霞 MCS-51系列单片机原理与接口技术.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CHEC 006-2021旋转门安装验收技术规范
- T/CHC 1007-2023硫酸软骨素钠
- T/CGTA 04-2023食用玉米糁、玉米粉加工质量安全技术规范
- T/CGCC 61-2021蛋黄酥
- T/CECS 10264-2023预拌盾构注浆料
- T/CCOA 46-2023农业规模化经营组织玉米收储技术规程
- T/CCMA 0138-2022塔式起重机爬升液压系统
- T/CCMA 0057-2018场(厂)内电动消防车
- T/CBMCA 014-2020室内空气污染治理服务规范
- T/CBMCA 005-2018负离子陶瓷砖健康等级划分及标识
- (正式版)JBT 11270-2024 立体仓库组合式钢结构货架技术规范
- 药品不良反应知识培训
- 咸阳亨通电力集团笔试题
- 歌曲大赛计划书
- 介绍福建红色文化
- 家具设计经典论文
- 公招资格复审个人委托书
- 化脓性骨髓炎临床诊疗指南
- 2023急性有机磷农药中毒诊治要求
- 全国优质课一等奖人教版高中化学必修第二册《金属矿物的开发利用》公开课课件
- 深圳中英公学小升初数学期末试卷章末练习卷(Word版-含解析)
评论
0/150
提交评论