电子秒表电路
更新时间:2024-06-05 21:03:01 阅读量: 综合文库 文档下载
安阳师范学院本科学生毕业论文
作 者系(院)专 业年 级学 号指导教师日 期电子秒表电路
物理与电气工程学院 电气工程及其自动化 年3月06日
2015
学生诚信承诺书
本人郑重承诺:所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得安阳师范学院或其他教育机构的学位或证书所使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
作者签名: 日期: 导师签名: 日期: 院长签名: 日期:
论文使用授权说明
本人完全了解安阳师范学院有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。
作者签名: 导师签名: 日期:
电子秒表电路
(安阳师范学院 物理与电气工程学院, 河南 安阳 455000)
摘要:本设计的数字式电子秒表系统采用的是AT89C52单片机为中心器件,利用它的定时器/计数器定时以及记数的原理,结合显示电路、LED数码管和外部中断电路来进行设计的计时器。将软、硬件灵活地结合起来,使得整个系统能够实现6位LED显示,显示的时间为0~59分59秒99,计时的精度为0.01秒。
关键词:单片机; LED数码管显示器;AT89C52
1 引言
电子秒表在电器制造,工业自动化控制、国防、实验室以及科研单位上来说是一种较为理想的计时仪表,它普遍应用于各类继电器、电磁开关,控制器、延时器、定时器上的时间测试。这几百年中从我国水运仪像台的发明一直到现在各个国都在研发的原子钟的钟表演变过程中,我们可以发现,各个不同时期的科学家和钟表工匠通过他们的智慧和不断的实践铸成了一座时间的隧道,与此同时也为我们勾勒了一条钟表文化和科技发展的轨迹。
本篇论文是运用单片机的定时装置和控制装置进行的研究与论述,以AT89C52为主控制芯片,利用LED显示器进行设计的电子秒表。
2 系统硬件设计 2.1 单片机的选择
在微型单片机选择上,我们需要考虑存储器容量,时钟频率,I/O口线等一些基本参数。对本设计来说,因为电子秒表系统在数据的处理和存储方面要求不高,所以选取片内带RAM和ROM的单片机即可,考虑到成本和操作的方便性,我本次设计采用的是AT89C52单片机。
AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
AT89C52 有256 个字节的内部RAM,80H-FFH 高128 个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128字节的RAM 和特殊功能寄存器的地址是相同的,但物理上它们是分开的。
AT89C52的定时器0和定时器1 的工作方式与AT89C51 相同 2.2 系统功能概述
数字式电子秒表具有显示直观、读取便利、精度高等优点,在平常生活的计时中普遍使用。本次设计是用单片机构成数字式电子秒表,以构造简单、精度高为目标。
本次设当计中包含硬件电路的设计和系统程序的设计。在硬件电路中主要有主控制器,计时与显示电路和回零、启动和停表电路等。我的设计中主控制器运用的单片机是AT89C52,显示电路利用的是共阳极LED数码管显示器
在设计总体方案中我是以AT89C52单片机作为控制的核心,设计了一个具有计时功能
第1页
的电子秒表。对于一个完整的电子秒表电路来说它就相当于一个单片机的最小系统,主要由键盘输入电路、单片机、晶振、复位电路和LED显示电路组成。我本次设计的电子秒表所涉及的内容如下:
(1)开关的使用:控制电子秒表的启动、停止和复位,七段数码管的高2位显示秒表的秒值,低2位显示秒表的百分秒值。
(2)定时器的使用:通过秒表的计时过程直观的说明定时器的使用方法。
(3)键盘的使用:通过秒表的启动、停止、复位的选择,直观地体现出独立式键盘的设计方法与技术。
(4)LED的使用:介绍了LED的原理和方法,并对其编程方法做了大体上的总结。
外部指令对单片机的输入一般是通过按键、键盘等输入器件来实现的,本次毕业设计是运用键盘来实现电子秒表的启停及其复位:
(1)按键K1。按键K1有两个功能,第一个是在计时状态下控制秒表的启动;第二个是在计时状态下控制秒表的停止。 (2)按键RESET。起程序复位作用 2.3 系统电路设计
系统总体框图如图1:
AT89C52 按键电路 复位电路 显示电路
图1 系统框图
如图2所示为单片机电子秒表的电路原理图,接下来对其中一些部分做出分析。
图2 电子秒表原理图
2.3.1 复位电路
第2页
当AT89C52的RST引脚接高电平到时,单片机被强制复位。
RST端的高电平直接由上电瞬间产生则为上电复位,若通过按动按钮产生高电平复位称为手动复位。
对于AT89C51单片机应用系统来说通常有两种复位方式,上电复位和手动复位,在时钟电路工作的后,只要单片机的RST引脚上面出现24个振荡脉冲(2个机器周期)以上的高电平,单片机便实现初始化状态复位,而在设计的过程中,一般使高电平保持在10ms以上。这里采用手动复位方式。当按钮按下的瞬间,电路就接通了,接通之后就会给电容充电,实现RST端的高电平,使单片机复位,当按钮释放时电容器就会放电,使高电平的产生时间较长。
其示意图如3所示。
VCCC3RST10uR610kSW-PBS1复位电路图3 复位电路设计示意图
2.3.2 时钟电路
AT89C52内含一个高增益的反相放大器,只要通过XTAL1,XTAL2外接作为反馈元件的晶体后便成为自激振荡器,晶体会呈感性,与 C1,C2 组成并联谐振电路。一般连接如图4所示: C1
30PF Y1X1X2
12MhzC2
30PF
图4 AT89C52外部时钟电路图
2.3.3 数码管显示电路
在本设计中,时间值使用数码管显示,电路图如图5:
第3页
+
SEG1SEG7-311SEG2SEG7-311S2S1S0NC742110127421101235398653ABCDEFGH3333ABCDEFGH986S2S1S0NCABCDEFGDPABCDEFGDPQ1CCQ2CQ3CQ4CQ51E3Q61ECBE1EB1EB1R142EBseg2BB1seg5R112S85502S85502S8550S85502S85502S85501Kseg4R121Kseg3R131K1Kseg1R151Kseg0VCCR161KVCC
图5 数码管电路原理图
图5为数码管显示电路和对应的驱动电路。本设计采用的是0.56英寸的三位共阳型
七段数码管,结构如图6所示。
共阳型数码管的结构如上图6所示,从上图可以看出,每一个LED的正极接在一起形
成
图6 0.56英寸4位共阳数码管结构图
公共端,如果要点亮每一段LED,对应的负极要给低电平,便可使LED导通发光。由于驱动一个数码管需要电流较大,如果直接接入单片机,则会因为供电不足而导致亮度很暗,甚至无法正常显示。因此有必要增加一个驱动电路,以提供更大的电流。
驱动电路有几种方案可选,比如用集成的驱动芯片,如74LS573锁存芯片,74LS245驱动芯片等。本设计采用的方法是较为简单的三极管驱动。
图5原理图已经给出了具体的驱动电路方案。每一个数码管的公共端接入一个S8550三极管,控制对应S8550三极管的导通,即可让数码管获得VCC,从而被点亮。因为S8550是PNP型三极管,所以要使其导通,则其基极应该获得低电平,也就是单片机要输出“0”给基极,方可使数码管获得VCC。同理,如果不想让数码管被点亮,则基极应该得到“1”,S8550截止,数码管无VCC。
第4页
以上可见,通过控制三极管的导通和截止,实现了一个重要的功能:选择对应数码管工作。本设计正是基于数码管的动态扫描原理,来实现8个两位数码管的正确显示。
所谓动态扫描,就是在一个时刻里,只让一个数码管工作,其余数码管不工作。紧接着下一个时刻,让另一个数码管工作,上一个数码管和其它数码管停止工作。按照这样的原理,轮流让所有的数码管一个接一个工作,并且对应工作的数码管送出对应的数据值。从宏观来看,即可看到所有数码管是同时工作一样。
这里的宏观,指的是人的眼睛。人眼有一个视觉暂留功能,即看到一个影像后不会马上消失,而是会暂留在眼里一段时间,这个时间一般是在30~40ms左右。也就是说,如果我们在这个暂留时间内不断地更新影像,则人眼看到的将是连续的画面,而不会有停顿感。如果超过这个时间,人眼就能看出来画面不连续,有闪烁感(是切换画面时间过长造成的)。 综上,本设计中有1个4位数码管,则一共有4个数码管。要在40ms时间内对所有数码管进行扫描(送数据),则每个数码管扫描时间不能超过10ms。本设计中每个数码管扫描时间设计为1ms,符合要求。 2.3.4 按键模块
本设计中,采用1个按键完成计时的开始和暂停切换功能。按键模块如图7所示:
按键模块KEYR110KS1SW-PB图7 按键模块
VCC按键设计成低电平有效,也就是说当有按键按下后,对应的IO口状态是低电平的,
单片机只要检测对应IO口的电平状态即可知道是否有按键按下。
另外,为了提高系统的抗干扰性,每个独立按键均接了一个上拉电阻。这样设计的好处是,当没有按键按下时,由于上拉电阻作用,对应IO口被上拉到VCC),也就是说按键的空闲状态是高电平。只有按键按下后,IO才被按键拉到地(低电平),从而提高了按键的抗干扰性能,减小外界的干扰。 3 系统的程序设计
系统硬件设计好以后,接紧接着需要进行软件设计。电子秒表的软件设计主要有三个方面:一是利用定时器来完成秒表的定时周期;二是利用定时中断来实现键盘的扫描,确定单片机的工作状态;三是利用单片机控制LED的输出显示。 3.1 主程序
主程序如图8所示:
第5页
初始按键检是 启/停 TR0取返回 图8 主程序图
系统主函数流程如图8所示,主要完成对按键的检测,然后对定时计数器工作状态进行关闭或者开启,从而启动或者暂停计时。 3.2 按键模块程序流程图
按键模块的流程如下图9所示:
开始 按键检否 检测到低电是 20ms去否 仍为低电是 置标志
图9 按键模块流程图
按键模块软件设计中,主要是注意按键的去抖处理。由于通常的机械按键在按下的过程中会存在一个抖动的过程,一般为5ms~10ms。在抖动过程中,会出来高低电平的变化。所以需要对抖动进行一定的处理,以避免系统误操作。通常方法有两种,第一是硬件消抖。
第6页
硬件消抖主要是运用数字电路的稳态来完成此功能。本设计利用的是软件消抖,当检测到有按键按下时,不会马上采取动作,而是需要延时一段时间,以跳过按键的抖动期,过了这段时间再去检测按键,如果仍然是按下状态,则说明是真正有按键按下,而非抖动或者外界的干扰。软件消抖在一定程度上减少了硬件成本。 if(key==0) // 起停按键按下时 {
delay(20); // 延时20ms,跳过抖动时间,再判断 if(key==0) // 确实有按键按下
TR0=~TR0; // 将TR0取反,实现每按一次,就开始计数或者暂停计数 while(!key); // 等待按键弹起 }
以上为按键检测及软件去抖代码。 3.3 数码管扫描流程图
数码管动态扫描采用T1定时器中断,流程图如下图10所示:
T1中断 送对应的段送对应的位sel自加1 是 sel为6? 否 退出中图10 扫描模块流程图
sel清0
以下为具体代码:
uchar segdata[6]={0x00,0x00,0x00,0x00,0x00,0x00};// 6个数码管的数据
uchar code select[6]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};// 6个数码管的位选信号 uchar code table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0-9
/*************定时器1中断****************/
void timer1_int() interrupt 3 // 扫描数码管 {
TH1=(65536-1000)/256; TL1=(65536-1000)%6;
第7页
// 注意,仿真时,由于没有用三极管驱动,位扫描要取反
//SCAN=~0xff; // 仿真时,要用这句代替下面这句 SCAN=0xff; // 需要关了所有的数码管,避免数码管有重影 if(sel==2)
PDATA=table[segdata[sel]]-0x80;// 当显示到第二个数码管时,显示计时的小数点 else if(sel==4)
PDATA=table[segdata[sel]]-0x80; // 当显示到第二个数码管时,显示计时的小 // 数点 else
PDATA=table[segdata[sel]]; // 否则是其它的数码管,则不显示小数点 //SCAN=~select[sel]; // 仿真时用这句位扫描,替代下一句 SCAN=select[sel]; // 送出数据后,再打开对应的数码管 sel++;
if(sel==6) // 扫描完4个数码管后,又开始重新扫描(从右到左扫描) sel=0;
segdata[0]=s1; // 将计时的值放到对应的显示位置 segdata[1]=s1/10; segdata[2]=s2;
segdata[3]=s2/10; segdata[4]=s3; segdata[5]=s3/10; }
本设计有6个数码管,因此sel取值为0、1、2、3、4、5,用来对应6个数码管。如上面的代码,sel=0对应的是分钟的十位,以此类推。每中断一次,送一个数码管对应的段码,同时位选也是选中该位数码管。具体选中哪个数码管,由sel来决定(sel的不同值对应不同的数码管)。当数据输出后,sel自加1,以便指向下一个数码管。等待下一个中断(间隔1ms)来临,又按上面的过程完成下一个数码管的扫描。
程序中要注意先关闭显示,然后送出段码,最后打开显示。这样做的目的是为了避免数码管出现重影现象,可以使显示更清晰。 3.4 T0计时流程图
T0定时器中断,流程图如下图11所示:
第8页
1mS时间到, 否 满1000? 是 秒满60? 是 否 分满59? 是 计满否 退出中断 图11 T0中断计时
否 秒+1 分+1 是 暂停计
代码如下:
/*****************定时器0中断*************/ void timer0_int() interrupt 1 // 秒表 {
TH0=(65536-1000)/256; TL0=(65536-1000)%6; 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) {
第9页
s2=0; // 秒
s3++; } } } }
因为要求计时精确到0.01s,所以选择T0的中断时间为0.001s,即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中编写电子秒表的C语言源程序,并且生成后缀为.hex的文件。 (4).将后缀为hex的文件添加到proteus中的电子秒表的电路图中,进行仿真。 (5).点击proteus的测试按钮,对电路系统进行测试,观察LED显示时间的变化。 4.2 仿真图
把程序添加到proteus中的电子秒表电路之后,点击图12所示
按钮后,LED显示的时间如
图12 电子秒表仿真图
通过本次仿真,实现了电子秒表的计时、暂停、复位功能,并使显示时间达到了0~59分59秒99,计时精度为0.01秒,符合本次设计的要求。
第10页
5 总结
本次毕业设计我设计的是基于单片机的电子秒表,是设计一个电子秒表,具有启动、停止和清零的功能。经过3个多月的方案论证、系统的硬件和软件的设计、系统的调试,本人查阅了大量的关于AT89C52单片机的知识和电路。经过了这么长时间的查找与探究,经历了失败与成功,感受到了成功的喜悦与成就感。第一次利用所学的专业知识探究解决难点疑点,同时也对自己的知识水平进行了一番考察,让我对自己也有了新的了解。
非常感谢我的毕业设计指导老师闫老师,通过本次毕业设计,是他让我对原来所学的数字、模拟电子技术、单片机原理及接口技术等课程有了进一步的理解,成功使用了Keil uVision4和Proteus ISIS电子软件,让我对课本上的理论知识进行了更系统实用的理解,更加系统地掌握了微机应用系统的一般设计方法和理论,培养了较强的编程能力、开发能力。
我们只有把课本上学到的知识运用到实践中,才能真正意义上理解所学的知识,同时增强自己实践的能力,为设计新的作品打下完美的基础。不仅可以锻炼自己分析问题、处理问题的能力,而且还能提高自己的动手能力。这些锻炼对于我们这些将要走向社会的大学生来说,是很有必要的。
参考文献
[1] 李玉峰,倪虹霞 MCS-51系列单片机原理与接口技术. [M]. 北京:人民邮电出版社,2004,187~216.
[2] 林伸茂. 8051单片机彻底研究经验篇. [M]. 北京:人民邮电出版社,2004,7~14. [3] 沙占友. 单片机外围电路设计. [J]. 北京:电子工业出版社,2003,37~48.
electronic stopwatch
Ren Peng
((Institute of Physics and Electrical Engineering, Anyang Normal University, Anyang, Henan 455000)
Abstract:It is a digital electronic stopwatch system in this design that adopts the AT89C52 microcontroller as the central component, using its timer/counter to time and the principle of counting. It also combines the display circuit,the LED digital tube, and the external interrupt circuit for designing. It mixes software and hardware flexibly to make the six digit LED display come true , and the display time is from 0 to 59min 59s 99. The timing accuracy is 0.001s.
Key words: Microcontrollers;LED digital tube indicator; AT89C52
第11页
附录: 原理图:
PCB图:
第12页
正在阅读:
电子秒表电路06-05
字符编码12-26
学校安全工作领导小组及职责06-20
我有一个幸福的家活动方案07-09
合唱教学《茉莉花》03-12
建设项目融资相关题目及答案05-24
办公软件EXCEL常用函数使用介绍09-03
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 秒表
- 电路
- 电子
- 鼓励外商投资产业-轨道交通运输设备项目可行性研究报告
- 【考试必备】2018-2019年最新郑州外国语新枫杨学校初升高自主招
- 2015江苏省融合教育竞赛复习要点
- 环境学院(77名) - 南京林业大学
- 在高一新生入学教育大会上的讲话
- 常见英语短语汇总
- 不拘形式地说写见闻
- 道路勘察设计复习题
- 电气考工试题单元岗位应会高级工
- 最新北师版数学小学四年级下册第3课时街心广场优质课教案
- 黑龙江大庆实验中学2011届高三上学期期中考试(物理)
- 2014年安徽事业单位招聘考试题目丨免费资料丨考试资料259
- 二级建造师继续教育-BIM技术应用
- 年产300吨氮化硅原料项目可行性研究报告
- 《逃家小兔》绘本教案
- 计算机及相关设备维护合同
- 2018年5月县委巡查村居工作报告(1)
- 计算机二级数据库access操作题答案
- 浙江省杭州市2014届中考命题大赛模拟考试(2)数学试题
- 博物馆安防设计方案