基于51单片机的数字秒表设计Word文档下载推荐.docx
《基于51单片机的数字秒表设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于51单片机的数字秒表设计Word文档下载推荐.docx(28页珍藏版)》请在冰点文库上搜索。
![基于51单片机的数字秒表设计Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/6ea28edd-317f-4423-88b5-6508e4694ae3/6ea28edd-317f-4423-88b5-6508e4694ae31.gif)
学号
题目
数字秒表设计
课题性质
工程设计
课题来源
自拟
指导教师
王黎
主要内容
(参数)
设计一个基于单片机的数字秒表,具体要求如下。
1、最大计数值为:
99分59.99秒。
2、系统采用2个按键控制输入,其中一个按键用作系统清0,另一个按键用作秒表的启动/停止。
3、系统采用6个共阴LED数码管实现计时显示。
任务要求
(进度)
第1-2天:
熟悉课程设计任务及要求,查阅技术资料,确定设计方案。
第3-4天:
按照确定的方案设计单元电路。
要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。
第5-6天:
软件设计,编写程序。
第7-8天:
实验室调试。
第9-10天:
撰写课程设计报告。
要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。
主要参考
资料
[1]张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:
国防工业出版社,2004
[2]伟福LAB6000系列单片机仿真实验系统使用说明书
[3]阎石.数字电路技术基础(第五版).北京:
高等教育出版社,2006
审查意见
系(教研室)主任签字:
年月日
1绪论
21世纪,单片机的发展非常的迅速。
单片机是把主要计算机功能部件都集成在一块芯片上的微型计算机。
它是一种集计数和多种接口于一体的微控制器,被广泛应用在智能产品和工业自动化上,而51单片机是个单片机中最为典型和最有代表性的一种。
51单片机是对所有兼容Intel8031指令系统的单片机的统称。
该系列单片机的始祖是Intel的8031单片机,后来随着Flashrom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是Atmel的AT89系列,它广泛应用于工业测控系统之中。
很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。
本次的设计任务是一个数字秒表,而秒表与普通的钟表不同,它的目的是对从某一时刻到另一时刻的时间间隔进行计时。
秒表的数字化常给人们的生活带来极大的方便,它广泛应用于社会的各个领域。
通过对数字式秒表的设计,我们可以清楚的了解到它的工作原理,进而也了解了数字钟表的工作原理。
在翻阅相关资料后,我们把秒表的设计分成了三大部分:
基准脉冲产生部分;
控制部分和计数、译码、显示部分。
本设计的数字电子秒表系统采用STC89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及独立键盘来设计秒表,将软、硬件有机地结合起来。
基准脉冲产生部分由石英振荡器和由计数器组成的分频器构成。
在石英振荡器中,石英晶体的固有频率是1MHz,即振荡器的输出为1MHz的矩形脉冲。
而分频器将1MHz分频为100Hz的基准脉冲。
控制部分可由基本RS触发器和相应的开关组成。
计数、译码、显示部分中,将使用同步四位二进制加法计数器74LS161来计数。
74LS48是BCD-7段译码器/驱动器,专用于驱动LED七段共阴极显示数码管。
关键字:
基准脉冲计数译码数字显示
2系统概述
2.1数字式秒表的设计意义
在秒表的设计中,我们对《数字电子技术基础》中所学到的知识有了更深刻的认识》。
比如:
555多谐振荡器的应用、计数器、译码及显示器的应用。
总之,数字秒表的设计让我们体会了学以致用的乐趣。
2.2设计要求与分析
设计要求如下:
秒表的最大计时值为99分59.99秒;
6位数码管显示,分辨率为0.01秒
具有清零、启动计时、暂停及继续计数等控制功能;
控制操作键不超过二个。
首先,秒表的分辨率为0.01秒,故要获得频率为100Hz的基准毫秒脉冲;
其次,分、毫秒计数器为100进制计数器,秒计数器为60进制计数器;
最后,用一个控制键实现秒表的启动/暂停/继续计数功能,用另一个控制健实现秒表的清零功能。
分别实现以上模块功能,即可设计出符合要求的数字秒表。
设计方案论证:
即为数字式秒表,那么必须有数字显示。
按设计要求,须用数码管来做显示器。
题目要求最大记数值为99分59.99秒,那则需要六个数码管。
要求计数分辨率为0.01秒,那么我们需要相应频率的信号发生器。
选择信号发生器时,有两种方案:
一种是用晶体震荡器,另一种方案是采用集成电路555定时器与电阻和电容组成的多谐振荡器。
秒表核心部分使用六个74161计数器采用串联方式构成,这种连接方式简单,使用元器件数量少。
因为对秒表的精度要求高,故CP脉冲是由石英振荡器产生的,而没有用555构成的多谐振荡器。
总体设计方案框图及分析:
通过以上的分析,查阅相关资料后,得数字式秒表的原理方框图如图1所示。
图1数字秒表的原理方框图
本电路由启动、清零复位电路、多谐振荡电路、分频计数电路、译码显示电路等组成,整体上是按照基准脉冲产生部分,控制部分和计数、译码、显示部分这三大部分来设计的。
3硬件电路设计
硬件电路由启动、清零复位电路、多谐振荡电路、分频计数电路、译码显示电路等组成,整体上是按照基准脉冲产生控制部分和计数、译码、显示部分这三大部分来设计的
3.1基准脉冲的获取
1.方案一:
由555构成多谐振荡器
⑴555定时器是一种模拟和数字功能相结合的中规模集成器件,它的电源电压范围宽,可在4.5V~16V工作,输出驱动电流大约为200mA,因而它的输出可与TTL、CMOS或者模拟电路电平兼容。
555定时器成本低,性能可靠,只需要外接几个电阻、电容,就可以实现多谐振荡器、单稳态触发器及施密特触发器等脉冲产生与变换电路。
它也常作为定时器广泛应用于仪器仪表、家用电器、电子测量及自动控制等方面。
555定时器的内部电路框图和外引脚排列R如图1.2所示。
它内部包括两个电压比较器,三个等值串联电阻,一个RS触发器,一个放电管T及功率输出级。
它提供两个基准电压VCC/3和2VCC/3。
555定时器的功能主要由两个比较器决定。
两个比较器的输出电压控制RS触发器和放电管的状态。
在电源与地之间加上电压,当5脚悬空时,则电压比较器C1的同相输入端的电压为2VCC/3,C2的反相输入端的电压为VCC/3。
若触发输入端TR的电压小于VCC/3,则比较器C2的输出为0,可使RS触发器置1,使输出端OUT=1。
如果阈值输入端TH的电压大于2VCC/3,同时TR端的电压大于VCC/3,则C1的输出为0,C2的输出为1,可将RS触发器置0,使输出为0电平。
⑵由555定时器构成的多谐振荡器如图1.3(a)所示,图1.3(b)为其工作波形。
图2555构成的多谐振荡器
其工作原理如下:
接通电源后,VCC经R1、R2给电容C充电。
由于电容上电压不能突变,电源刚接通时υC<
VCC/3,所以555内部比较器A1输出高电平,A2输出低电平,即RD=1,SD=0,基本RS触发器置1,输出端Q为高电平。
此时Q=O,使内部放电管截止。
当υC上升到大于Vcc/3时,RD=1,SD=1,基本RS触发器状态不变,即输出端Q仍为高电平,当VC上升到略大于2VCC/3时,RD=0,SD=1,基本RS触发器置0,输出端Q为低电平。
这时Q=1,使内部放电管饱合导通。
于是电容C经R2和内部放电管放电,υc按指数规律减小。
当υC下降略小于Vcc/3时,内部比较器A1输出高电平,A2输出低电平,基本RS触发器置1,输出高电平。
这时,Q=0,内部放电管截止。
于是C结束放电并重新开始充电。
如此循环不止,输出端就得到一系列矩形脉冲,如图1.3(b)所示。
由图可见,υC将在Vcc/3和2VCC/3之间变化,因而可求得电容C上的充电时间
和放电时间
充电时间
放电时间
矩形波的振荡周期
………①
因此改变
、
和电容C的值,便可改变矩形波的周期和频率。
当矩形波的频率f=100Hz时,振荡周期T=0.01s。
当取C=0.1µ
F,R1=40千欧,若使T=0.01s,那么,R2≈51千欧。
取一固定电阻47千欧与一5千欧的电位器相串联代替电阻R2。
在调试电路时,调节电位器RP,使输出脉冲周期为0.01s,即可获得所需的基准脉冲。
2.方案二:
由石英晶体构成的多谐振荡器
在对频率的稳定性要求较高的电路中,应采用频率稳定性很高的石英晶体振荡器,图3给出了两种常见的石英晶体振荡电路。
图3石英晶体振荡电路
石英晶体振荡电路的谐振频率由石英晶体的固有频率决定,故图1.4中的两电路输出的波形的振荡频率均为1MKz,电路中其它元器件对输出波形频率的影响极为有限。
只是石英晶体振荡器产生的频率很高,要得到基准毫秒脉冲,还需要用分频电路。
振荡器输出1MKz信号,为了得到100Hz的振荡脉冲,可以进行10000分之一的分频。
3.两种方案的比较与选择
首先,555多谐振荡器的振荡频率不可能是某一精确值,即它的振荡频率不可能达到100Hz;
其次,因为555多谐振荡器的振荡
,故频率还受电阻R1、R2和电容C的影响,当它们中的任一值变动时,振荡频率就受到影响;
最后,上述555振荡电路中的振荡频率是由门电路输入电压上升到转换电平所需要时间来决定的,由于受电源电压、温度变化以及某些干扰因素的影响,门电路的转换时间不可能十分精确和稳定,可见,上述振荡电路的振荡频率极不稳定。
而石英晶体振荡器则可以克服以上缺点。
石英晶体多谐振荡器是一种产生高稳定度的脉冲振荡器,它有极高的频率稳定性,而且品质因数又高,因此它有极好的选频特性。
当外加电压频率等于石英晶体的固有频率f0时,它的阻抗最小,频率为f0的电压信号最容易通过,并在电路中形成正反馈而使电路振荡。
石英晶体多谐振荡器的振荡频率只取决于石英晶体的固有频率f0,而与外接的R、C元件无关。
此外,石英晶体振荡器的电路结构简单、频率易调整。
但是,石英晶体振荡器产生的振荡脉冲的频率过高,为了的到基准脉冲,还需要外加分频电路,555多谐振荡器则不需如此。
在电子秒表的设计中,选择了方案二。
尽管方案二需要使用分频电路,增加了电路中使用的元件数,但秒表的计时一定要可靠、精准,与555多谐振荡器相比,石英晶体振荡器在振荡频率的稳定性上刚好符合设计需要。
4.分频电路的设计
由于要求得到的基准脉冲的频率是100Hz,而石英晶体振荡器产生的频率过大,需要进行分频。
分频电路有多种选择方案,可以使用专用的分频器,也可通过触发器进行分频,还可以用计数器分频,本次设计中用10进制计数器74HC160对1MKz进行分频,因为是取10000分之一,所以使用了4个计数器,尽管用74HC160较多,有点浪费,但其在电路中的连接方式较为简单。
74HC160是同步十进制加法计数器,它有异步清零、同步置数等功能。
图4为它的逻辑符号图。
图474HC160的逻辑方框图
74HC160的状态转换表和时序波形图分别如表1.1和图5所示
表174HC160的状态转换表
图574HC160的时序波形图
通过对表1和图5的分析,可以看出,从CP端输入十个矩形脉冲,而从74HC160的进位输出端知输出一个矩形脉冲,可见,当把前一个74160的进位输出端作为下一个74160的脉冲输入端,即可达到十分频的目的。
由于晶体振荡器的输出为1MKz的脉冲信号,为了得到100Hz的振荡脉冲,要进行10000分之一的分频,故需要四个74160来对振荡输出脉冲进行分频。
基准脉冲的产生电路如图6所示。
图6基准脉冲的产生电路
3.2键盘及控制电路
1.启动和暂停控制开关
启动和暂停控制开关是由基本RS触发器构成的。
基本RS触发器是由两个与非门交叉耦合而成的,是TTL触发器的最基本组成部分,其逻辑图如图7所示,它能够存储1位二进制信息,但存在R+S=1的约束条件。
图7RS触发器逻辑电路和逻辑符号
基本RS触发器的用途之一是作无抖动开关。
例如触发器是具有记忆功能的二进制信息存储器件,是时序逻辑电路的基本器件之一。
在图1.9(a)所示的电路中通过希望在开关S闭合时,A点电压的变化是从+5V到0V的清楚跃迁,但是由于机械开关的接触抖动,往往在几十毫秒内电压会出现多次抖动,相当于连续出现了几个脉冲信号。
显然,用这样的开关产生的信号直接作为电路的驱动信号可能导致电路产生错误动作,这在有些情况下是不允许的。
为了消除开关的接触抖动,可在机械开关与驱动电路间接入一个基本RS触发器,把带RS触发器的无抖动的开关称为逻辑开关。
在秒表的设计电路图中,启动和暂停控制开关电路如下图8所示。
图8控制电路
由图知,当开关J1和开关J2都打开时,基本RS触发器的两输入端都是1,触发器输出保持原状态不变。
当开关J1闭合是,Q输出1,基准脉冲可以输入到计数单元,秒表起动计时;
当开关J2闭合是,Q输出0,基准脉冲无法输入到计数单元,秒表暂停计时。
若要继续计时,合上开关J1即可。
2.清零开关的设计
清零功能的实现相对而言比较简单。
把计数单元的所有74LS161的清零控制端Rd连接在一起,通过一个开关接地,需要清零时,闭合开关就行。
图9复位电路
3.3计数、译码及显示电路
1.计数器的设计
秒表中的计数器是由74LS161构成的。
74LS161是集成同步二进制计数器,该计数器具有同步预置、异步清零、计数和保持四种功能,且有进位信号输出端,可串接计数使用。
它的引脚图见图9。
图974LS161引脚图
60进制计数器也是用乘数法构成的,它是由一个十进制计数器和一个六进制计数器级联而成。
如图10
图1060进制计数器
2.译码显示电路
本设计中选用的74LS48是BCD码七段译码器兼驱动器,输出端(Ya-Yg)为高电平有效,可驱动共阴极LED显示器,其外引线排列图如图11所示。
图1174LS48外引线排列图
显示器采用七段发光二极管显示器,它可直接显示出译码器输出的十进制数。
七段发光显示器有共阳和共阴两种接法。
与74LS48译码器配套的显示器为共阴型。
七段显示器的7段数码管结构如图11所示
图117段数码管结构图
4数字秒表系统软件设计
本系统系统软件设计主要包括数码显示和复位键,开始键,停止键。
本章节系统的介绍了数字秒表的主程序和中断程序的设计流程。
4.1主程序软件设计
4.2中断服务程序设计
中断是指计算机在执行程序的过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回现行程序的间断处,继续执行原程序。
中断是单片机实时地处理内部或外部事件的一种内部机制。
当某种内部或外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继续执行下去。
中断源
中断标志
中断服务程序入口
优先级顺序
外部中断0
IE0
0003H
0
定时/计数器
TF0
000BH
1
外部中断1
IE1
0013H
2
定时/计数器1
TF1
001BH
3
串行口
EI或TI
0023H
4
PDJW
现场保护
计数器重加载
循环次数减1
是否满8次
毫秒值加1
是否满60
毫秒缓冲清零
秒值加1
是否60S
秒显缓冲清零
分显示加1
分显示清零
现场恢复
Y
N
5调试与仿真
5.1软件调试与烧写
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
C51工具包的整体结构,uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及C51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
图12为在编辑程序时所用的软件KILE.通过此程序对软件进行编辑,编译,调试。
图12烧写过程
5.2硬件仿真
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
Proteus软件具有其它EDA工具软件(例:
multisim)的功能。
原理布图;
PCB自动或人工布线;
SPICE电路仿真;
互动的电路仿真;
用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。
6.结论
单片机可以应用于各个领域,而单片机本身也是融合了各个领域的知识。
我们可以通过单片机去实现很多的电子产品,因为它的应用领域非常的广泛,所以发展很迅速。
本次设计,先通过KEIL软件对软件进行编辑、调试、编译,通过此次长达数天的编辑,对单片机C语言编写应用的更加熟练;
然后通过STC-ISP软件学习如果在单片机种下载程序代码;
通过proteus软件,对数字秒表的硬件进行仿真。
本次设计时以单片机为中心进行设计,但是仅仅有单片机的知识还不够,同时还需要具有硬件的知识和软件的知识,并将它们有机的结合起来。
首先要通过硬件知识去设计整个电路,然后通过C语言去写数字秒表的C语言设计。
同时,由于STC89C52单片机的ROM只有8KB,所以还要注意内存的应用;
还要注意如何设计硬件和软件,去增加运行速度和计数精度。
本次设计的数字秒表结构简单,但是对以后来说却是很好的经历。
参考文献:
[1]阎石.数字电子技术基础[M].北京:
高等教育出版社,2006年5月第5版
[2]胡健,刘玉宾,朱焕立等.单片机原理及接口技术[M].北京:
机械工业出版社,2009年7月第一版
[3]郭天祥.51单片机C语言教程[M].北京:
电子工业出版社,2009年12月第一版
[4]谭浩强.C程序设计[M].北京:
清华大学出版社,2005年7月第三版.
附录
附录一系统原理图
附录二源程序代码
ORG0000H
START:
LJMPMAIN
ORG000BH
LJMPPDJW
;
****************************************************************;
系统监控程序区
ORG0030H
MAIN:
MOVPSW,#00H
MOVSP,#7FH;
确立堆栈区
MOVR0,#20H;
RAM区首地址
MOVR7,#96;
RAM区单元个数
MOVTMOD,#01H
SETBEA
SETBET0
ML:
MOV@R0,#00H
INCR0
DJNZR7,ML
TSF:
MOVDPTR,#DISBH;
系统初始化后提示符“P.”字符代码表首地址
MOVR5,#08H
MOVR0,#78H
DISPTSF:
CLRA
MOVCA,@A+DPTR
MOV@R0,A
INCR0
INCDPTR
DJNZR5,DISPTSF
KEY0:
LCALLDISP
LCALLKEY
JB20H.0,K1
JB20H.1,K2
JB20H.2,K3
LJMPKEY0
KEY00:
LJMPKEY00
K1:
JB22H.1,KEY0;
如果此时为暂停状态,本次按键K1无效
CPL22H.0
JB22H.0,K01;
高电平则计时
CLRTR0;
低电平则停止
LJMPKEY00
K01:
MOV7AH,#12H;
从零开始计时
MOV7DH,#12H
MOV7FH,#10H
MOV78H,#00H
MOV79H,#00H
MOV7BH,#00H
MOV7CH,#00