基于单片机的电子秒表.docx
《基于单片机的电子秒表.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子秒表.docx(27页珍藏版)》请在冰豆网上搜索。
基于单片机的电子秒表
基于单片机的电子秒表
课程设计(论文)说明书
题目:
基于单片机的电子秒表
院(系):
信息与通信学院
专业:
电子信息工程
学生姓名:
学号:
指导教师:
武小年
职称:
副教授
2012年12月9日
摘要
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入。
本设计采用AT89S52单片机、3-8线译码器74LS138芯片、74hc573锁存器以及max232芯片设计了一个数字电子秒表系统,利用定时器/计数定时和计数的原理,结合显示电路、LED数码管以及外部中断电路来设计的计时器;系统使用6位数码管显示;还设置了复位和暂停等按键,方便使用者控制。
软件系统采用C语言编程输入程序。
本文将软、硬件有机地结合起来,使得系统能够实现6位LED显示,显示时间从秒到小时,计时范围比较广。
关键字:
单片机;数字电子秒表;LED数码管
Abstract
Inrecentyearsalongwiththerapiddevelopmentofscienceandtechnology,SCMapplicationsareconstantlydeepening.Inthispaperbasedonsinglechipdigitalelectronicstopwatchdesign.Thisdesignismainlycharacterizedbytheuseof6digitaltubedisplay,inseconds,whiletheprecisionisnotveryhigh,butsolvesthestopwatchiscumbersome,andthedesignisalsoprovidedwitharesetandpausebutton,convenientforuserstocontrol.
ThedesignofthedigitalelectronicstopwatchsystemusingAT89S52microcontrollerasthecenterdevice,usingthetimer/countertimingandcountingprinciples,combinedwiththedisplaycircuit,theLEDdigitaltubeaswellastheexternalinterruptcircuittodesignthetimer.Thesoftwareandhardwarecombination,sothatthesystemcanachieve6LEDdisplay,displaythetimefromsecondstohours,arelativelywiderangeoftiming.ThesoftwaresystemadoptsClanguageprogramminginputprogram.Thehardwarealsoused3-8linedecoder74LS138chip,74hc573latchandanMAX232chip.
Keyword:
SCM;Digitalelectronicstopwatch;LEDDigitaltube
引言.................................................1
1电子秒表的工作原理.....................................1
1.1电子秒表简介.............................................1
1.2电子秒表的工作原理.......................................1
2硬件设计................................................2
2.1键盘模块.................................................2
2.2控制模块.................................................3
2.3显示模块.................................................8
3软件设计...............................................11
3.1秒表设计流程............................................11
3.2延时模块................................................12
3.3中断模块....................................................13
4电子秒表的制作与调试分析.................................14
4.1使用protel99se软件设计电路图...............................14
4.2电路板的制作...............................................15
4.3电路板的调试与分析.................................15
5结束语......................................................16
谢辞...........................................................17
参考文献.......................................................18
附录............................................................19
引言
随着时代的发展与进步,人们对时间的要求越来越高,需要计时的也越来越多;现在的很多体育赛事都需要用到秒表。
在实际生活中秒表分为指针式和数字式两种,而后者具有更高地精确度和更好地直观性,在生活中被广泛应用。
电子秒表是一种较先进的电子计时器,目前国产的电子秒表一般都是利用石英振荡器的振荡频率作为时间基准,采用6位液晶数字显示时间。
电子秒表的使用功能比机械秒表要多得多。
现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子计时器采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
使用起来也比较方便。
电子秒表是一种较先进的电子计时器,它能精确的记录所用的时间,广泛应用于各类需要计时的比赛中;特别是最近这几年,随着科技的发展,各种运动对时间的要求不断地提高,秒表也越来越广泛地应用在各类比赛中。
1电子秒表
1.1电子秒表简介
电子秒表是一种较先进的电子计时器,目前国产的电子秒表一般都是利用石英振荡器的振荡频率作为时间基准,采用6位液晶数字显示时间。
电子秒表的使用功能比机械秒表要多得多。
它不仅能显示分、秒,还能显示时、日、月及星期,并且有1/l00s的功能。
一般的电子秒表连续累计时间为59min59.99s,可读到1/l00s,平均日差±0.5s。
电子秒表是一种较先进的电子计时器,它能精确的记录所用的时间,广泛应用于各类需要计时的比赛中;特别是最近这几年,随着科技的发展,各种运动对时间的要求不断地提高,秒表也越来越广泛地应用在各类比赛中。
1.2电子秒表的工作原理
(1)电子秒表的系统设计是利用单片机的定时器功能,在周期的时间内产生中断来执行既定的程序,单片机AT89S52共有3个定时器,本系统采用了定时器1的工作模式1:
此工作模式中,计数寄存器由16位组成,此时TH1、TL1都作为8位计数器使用,工作原理为:
TL1计数溢出向TH1进位,TH1计数溢出时置位TF1=1,并向CPU申请中断,最大的计数值为216=65536
(2)系统采用的晶振频率为fosc=12MHz,机器周期为Tcy=1us,定时范围为1~65536us。
定时器的定时时间T为:
T=NTcy=(216-X)Tcy
计数器的计数值为:
N=216-X=65536-X,X为预置初值,计数范围为1~65536.
(3)系统采用了两个分频信号,以完成定时,采用预置初值为:
TH1=0xd8,TL1=0xf0;
定时时间为0.01us;因此累积10次计时达到0.1us,累积100次计时达到1s,刚好达到系统要求。
(4)系统采用键盘扫描的方式,来判断键盘是否被按下。
系统共采用两个按键,start启动与暂停键、ret复位清零键,当键被按下,便执行相应的程序。
2硬件设计
硬件框图如图2-1所示:
图2-1
2.1键盘模块
在键盘模块上设有3个开关按键,分别为1个开始控制开关,一个暂停控制开关,1个复位控制开关。
利用这3个控制开关来实现秒表的计时,暂停和清零的功能。
当按下开始开关时,秒表开始工作;当按下暂停开关时,秒表暂停工作,当再次按下开始控制开关时,秒表又接着原来的数据继续计时;当按下复位键控制开关时,秒表恢复到原始状态,又可以进行新一轮的计时。
键盘模块原理图如图2-2所示。
图2-2
2.2控制模块
单片机全称为单片机微型计算机(SingleChipMicrosoftcomputer)。
从应用领域来看,单片机主要用来控制,所以又称为微控制器(MicrocontrollerUnit)或嵌入式控制器。
单片机是将计算机的基本部件微型化并集成在一块芯片上的微型计算机。
我国开始使用单片机是在1982年,短短五年时间里发展极为迅速。
1986年在上海召开了全国首届单片机开发与应用交流会,有的地区还成立了单片微型计算机应用协会,那是全国形成的第一次高潮。
截止今日,单片机应用技术飞速发展,我们上因特网输入一个“单片机”的搜索,将会看到上万个介绍单片机的网站,这还不包括国外的。
与它相应的专业杂志现在也有很多,比如由单片机界的权威何立民主编的《单片机与嵌入式系统应用》杂志现以风靡电子界,在2003年7月,(91猎头网)在上海、广州、北京等大城市所做的一次专业人才需求报告中,单片机人才的需求量位居第一。
一块小小的片子,为何有这样的魔力?
我们首先从它的构成说起:
单片机,亦称单片微电脑或单片微型计算机。
它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。
计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。
微计算机(单片机)在这种情况下诞生了,它为我们改变了什么?
纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。
以前没有单片机时,这些东西也能做,但是只能使用复杂的模拟电路,然而这样做出来的产品不仅体积大,而且成本高,并且由于长期使用,元器件不断老化,控制的精度自然也会达不到标准。
在单片机产生后,我们就将控制这些东西变为智能化了,我们只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。
这样产品的体积变小了,成本也降低了,长期使用也不会担心精度达不到了。
所以,它的魔力不仅是在现在,在将来将会有更多的人来接受它、使用它。
它通过内部总线把计算机的各主要部件接为一体,其内部总线包括地址总线、数据总线和控制总线。
其中,地址总线的作用是在进行数据交换时提供地址,CPU通过它们将地址输出到存储器或I/O接口;/数据总线的作用是在CPU与存储器或I/O接口之间,或存储器与外设之间交换数据;控制总线包括CPU发出的控制信号线和外部送入CPU的应答信号线等。
AT89S52为ATMEL所生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flsah存储器。
(一)、AT89S52主要功能列举如下:
1、拥有灵巧的8位CPU和在系统可编程Flash
2、晶片内部具时钟振荡器(传统最高工作频率可至12MHz)
3、内部程序存储器(ROM)为8KB
4、内部数据存储器(RAM)为256字节
5、32个可编程I/O口线
6、8个中断向量源
7、三个16位定时器/计数器
8、三级加密程序存储器
9、全双工UART串行通道
(二)、AT89S52各引脚功能介绍:
VCC:
AT89S52电源正端输入,接+5V。
VSS:
电源地端。
XTAL1:
单芯片系统时钟的反相放大器输入端。
XTAL2:
系统时钟的反相放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。
RESET:
AT89S52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。
EA/Vpp:
"EA"为英文"ExternalAccess"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。
因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。
如果是使用8751内部程序空间时,此引脚要接成高电平。
此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。
ALE/PROG:
ALE是英文"AddressLatchEnable"的缩写,表示地址锁存器启用信号。
AT89S52可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0~A7)锁进锁存器中,因为AT89S52是以多工的方式送出地址及数据。
平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。
此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。
PSEN:
此为"ProgramStoreEnable"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。
AT89S52可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。
PORT0(P0.0~P0.7):
端口0是一个8位宽的开路汲极(OpenDrain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。
其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。
如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0~A7)及数据总线(D0~D7)。
设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0~A7,再配合端口2所送出的A8~A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。
PORT2(P2.0~P2.7):
端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。
P2除了当做一般I/O端口使用外,若是在AT89S52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当做I/O来使用了。
PORT1(P1.0~P1.7):
端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LSTTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。
如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。
PORT3(P3.0~P3.7):
端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。
其引脚分配如下:
P3.0:
RXD,串行通信输入。
P3.1:
TXD,串行通信输出。
P3.2:
INT0,外部中断0输入。
P3.3:
INT1,外部中断1输入。
P3.4:
T0,计时计数器0输入。
P3.5:
T1,计时计数器1输入。
P3.6:
WR:
外部数据存储器的写入信号。
P3.7:
RD,外部数据存储器的读取信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
单片机控制模块原理图如图2-3所示
图2-3
2.3显示模块
显示模块主要由74LS138以及74HC573和数码管构成。
译码是编码的逆过程,它的功能是将具有特定含义的二进制码转换成对应的输出信号,具有译码功能的逻辑电路称为译码器。
74LS138是3线-8线译码器,其功能表如表1.3所示。
该译码器有3位二进制输入A、A、A,它们共有八种状态组合,即可译出8个输出信号Y–Y,输出为低电平有效。
此外,还设置了E,E和E三个使能端输入,为电路功能的扩展提供了方便。
用与非门组成的3线-8线译码器74LS138
3线-8线译码器74LS138的功能表
如果单片机的总线接口只作一种用途,不需要接锁存器;如果单片机的总线接口要作两种用途,就要用两个锁存器。
例如:
一个口要控制两个LED,对第一个LED送数据时,“打开”第一个锁存器而“锁住”第二个锁存器,使第二个LED上的数据不变。
对第二个LED送数据时,“打开”第二个锁存器而“锁住”第一个锁存器,使第一个LED上的数据不变。
如果单片机的一个口要做三种用途,则可用三个锁存器,操作过程相似。
然而在实际应用中,我们并不这样做,只用一个锁存器就可以了,并用一根I/O口线作为对锁存器的控制之用(接74373的LE,而OE可恒接地)。
所以,就这一种用法而言,可以把锁存器视为单片机的I/O口的扩展器。
引脚图如图2-4所示。
图2-4
1脚是输出使能
11脚是锁存使能
D是输入
Q是输出
H是高电平,L是低
/OE是1脚LE是11脚
/OE接低电平,使芯片内部数据保持器输出端与芯片8位输出端之间连通。
LE端的作用是通过高低电平控制8位输入与内部数据保持器输入端的连通与断开。
当LE=0时,P0端口的8位数据线与74HC573内部数据保持器的输入端断开。
当LE=1时,P0端口的8位数据线与74HC573内部数据保持器的输入端连通
显示电路既可以选用液晶显示器,也可以选用数码管显示。
我们采用的是数码管显示电路。
用2个四位一体的共阴极LED显示。
如图2-5
图2-5
3软件设计
3.1秒表设计流程
软件设计框图如图3-1所示
图3-1
3.2延时模块
延时就是仅仅执行一些,没有实质性影响的所谓“无意义指令”,下面就是一段简单的延时程序。
voiddelayms(ucharxms)//延时函数
{
uchari,j;
for(i=0;ifor(j=1;j<110;j++);
}
3.3中断模块
中断是为使单片机具有对外部或内部随机发生的事件处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力。
它也是单片机最重要的功能之一,是我们学习单片机必须掌握的。
中断处理过程分为4个阶段:
中断请求、中断响应、中断服务和中断返回。
CPU执行程序时,在每一个指令周期的最后一个T周期都要检查是否有中断请求,如果有中断请求,寄存器TCON的相应位置“1”,CPU查到“1”标志后如果允许,进入中断响应阶段,如果中断被禁止或没有中断请求,继续执行下一条指令。
在中断响应阶段,如果有多个中断源,CPU判断哪个的优先级高,优先响应优先级高的中断请求。
阻断同级或低级的中断,硬件产生子程序调用指令,将断点PC压入堆栈,将所响应的中断源的矢量地址送PC寄存器,转到中断服务程序执行。
中断服务是完成中断要处理的事务,用户根据需要编写中断服务程序,程序中要注意将主程序中需要保护的寄存器内容进行保护,中断服务完毕要注意恢复这些寄存器的内容,这称为保护现场和恢复现场,可以通过堆栈来完成。
中断返回是通过执行一条RETI中断返回指令完成的,该指令使堆栈中被压入的断点地址弹到PC,从而返回主程序的断点继续执行主程序。
另外,RETI还有恢复优先级状态触发器的作用,因此不能以“RET”指令代替“RETI”指令。
中断请求、中断响应过程都是由硬件来完成。
中断处理流程图如图3-2所示。
图3-2
4电子秒表的制作与调试分析
4.1使用protel99se软件设计电路图
想完成电子秒表的制作,首先必须要有原理图,在protel99se软件的环境中画出所要设计的电子秒表原理图,然后根据原理图画出PCB。
原理图和PCB图如附录一所示。
4.2电路板的制作