智能脉冲宽度测量仪Word文件下载.docx
- 文档编号:20799457
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:36
- 大小:538.28KB
智能脉冲宽度测量仪Word文件下载.docx
《智能脉冲宽度测量仪Word文件下载.docx》由会员分享,可在线阅读,更多相关《智能脉冲宽度测量仪Word文件下载.docx(36页珍藏版)》请在冰豆网上搜索。
3.1.3确定方案总框架图6
3.1.4各部分框图简介6
3.1.5原理图8
3.1.6PCB板图10
4硬件部分原理及设计11
4.1单片机部分11
4.1.1功能特性描述11
4.1.2引脚功能11
4.1.3AT89C52的存储器结构13
4.1.4定时器14
4.1.5单片机内部的中断15
4.2脉冲产生电路16
4.3数码管显示电路20
5软件部分设计21
5.1KeilC软件的使用介绍21
5.2KeilC软件的基本操作步骤21
5.3主程序设计23
5.3.1主程序流程图23
5.3.2程序源代码24
5.3.3Kiel51源程序调试30
6系统调试及误差分析33
6.1系统调试测验33
6.2实验结果33
6.3误差分析33
6.3.1算法误差:
33
6.3.2硬件误差:
7总结与展望35
致谢37
参考文献39
一前言
课题研究背景
近年来单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此越来越广泛地应用于智能化仪器,仪表,数据采集等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。
一个不是很复杂的功能要是用一些纯硬件来搞定的话,电路一定是一块大PCB板!
但是如果要是用一些系列单片机,结果就会有天壤之别!
只因为单片机可以通过你编写的程序实现高智能,高效率,以及高可靠性!
随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。
单片机的应用已经越来越贴近生活,用单片机来实现一些电子设计也变得容易起来。
计算机在人们的日常中是比较的常见的电子产品之一。
目前对各种物理量的检测和控制都可得以实现。
微机检测控制系统不仅运用到航天航空、机器人技术、纺织机械、食品加工等工业过程控制,而且已经成为日常各种家用电器当中的主要组成部分。
而其中单片机技术以其实现简单、使用灵活及数据传输可靠等有优点被广泛的应用于中小型实时控制系统中,其实时数据处理和控制功能可使测控系统始终保持在最佳的工作状态,提高系统的工作效率。
单片机技术的发展状况
单片机自20世纪70年代问世以来得到了广泛的应用,主要应用于测试和控制领域。
由于单片机在使用时,通常是处于测控系统的核心地位并嵌入其中,所以国际上通常把单片机称为嵌入式控制器(EmbeddedMicroControllerUnit,EMCU)或微控制器(MicroControllerUnit,MCU)。
而在我国,大部分工程技术人员则比较习惯使用“单片机”这一名称。
,
单片机的出现是微型计算机技术高速发展的产物。
单片机体积小、价格低、应用方便、稳定可靠,因此,单片机的发展和普及给工业自动化等领域带来了一场重大革命和技术进步。
仅从体积小方面来说,单片机几乎可以在任何设施或任意装置上做成非常小的、功能比较完善的单片机嵌入系统置于其中,以实现各种方式的检测、计算或控制,在这一点上,一般的微型计算机根本做不到。
由于单片机本身就事一个计算机系统,因此只要在单片机外部适当增加一些必要的外围扩展接口电路,就可以灵活的构成各种应用系统,如工业自动检测监视系统、数据采集系统、自动控制系统、智能仪器仪表等。
本设计是采用Intel公司生产的MCS-52系列的单片机,这类单片机的性能价格比高,所以被广泛应用,是目前应用数量较多的单片机。
本文的研究内容
本设计的题目是智能脉冲宽度测量仪,脉冲宽度的测量,实质是时间的测量,在生产和科学研究中,经常要测量时间,例如,完成第一生产工序所需要的时间、周期性信号的周期、激光测距和雷达测量目标距离、运动体行程的时间等等都说明时间测量的重要性。
本论文主要是采用单片机AT89C51为中心器件来设计脉冲宽度测量仪,在现有的单片机仿真机系统上掌握相关软硬件设计与调试知识,根据所设计好的电路,焊接好硬件电路,正确进行元器件的测试与调试,并在计算机上编写程序调试运行,并实现脉冲宽度的测量。
具体包括以下几方面的内容:
第一章,对单片机的应用背景进行了说明,并介绍了本次设计的实际意义。
第二章,简单概述了本次设计的内容和具体要求。
第三章,简单介绍两种不同的设计方案,通过对比先择较合理的程控式测量方案。
第四章,介绍了硬件部分的原理及设计。
第五章,介绍了软件部分的程序。
第六章,进行系统测试检验,并做了误差分析。
第七章,对全文进行了总结。
二设计内容及具体要求
设计的主要任务
(1)通过查阅相关资料,深入了解脉冲宽度测量仪的原理;
(2)复习“MCS-51单片机原理及C语言程序设计”;
(3)掌握其接口扩展包括:
显示、键盘等;
(4)设计基于单片机的程控脉冲宽度测量仪的原理图,构建硬件平台;
(5)采用C语言编写应用程序并调试通过;
(6)制作出样机并测试达到功能和技术指标要求;
(7)写出毕业设计论文。
设计的具体要求
(1)原始数据
1.被测信号为数字信号;
2.测量范围:
100微秒-100毫秒;
3.数码管显示动态显示。
(2)技术要求:
1.用4位数码管显示测量值。
用发光二极管分别指示所测元件的类别和单位。
2.测量精度±
5%。
3.电感测量试用瞬态响应法测量。
(3)工作要求:
1.组建智能脉冲宽度测量仪的总体结构框图;
2.根据设计详细的原理图,选取只要元器件,通过理论分析和计算选择电路参数;
3.根据操作功能要求,确定操作按键的功能;
4.按设计要求确定显示方式及信息量;
5.采用C语言编写应用程序并调试通过;
6.对系统进行测试和结果分析;
三设计方案及总框架
设计不同方案对比
程控脉冲测量
1.实验脉冲由555定时器产生,只要改变外接电阻电容就能获得不同宽度的脉冲,供测量使用。
2.采用MCS-52单片机和外设电路测量脉冲宽度。
MCS-51子系列单片机有3个定时器(计数器),当他们工作于定时器方式时,计数的输入为内部的时钟信号,频率为固定的11.0592Hz。
只要令GATE=1,TR0=1,TR1=1,将输入脉冲接到“INT1(非)”口,即可测量输入脉冲宽度。
3.采用动态数码管显示测量结果,两片74LS573和位码驱动锁存器作为驱动电路。
4.为了使测量范围更大,在程序中进行单位转换,使用发光二极管指示单位。
等精度脉冲测量
对于脉冲宽度的测量,我们可以运用计数法的思想,即在一个脉冲的高电平期间填入给定的基准脉冲,通过填充的数量来计算需测量的脉冲宽度。
为了提高其精度,减小误差,可以采用频率较高的基准脉冲。
根据题目要求,可将设计分为四部分:
一为硬件方面的设计,由于同一类型的原理图已给出,我们只需按照电路图根据实际需要焊接好即可,并根据电路图绘制相应的PCB板图。
二为主程序的设计,通过C52的有关功能包括计数/定时、中断等编写计数法的主程序。
三为MFC-G12864点阵液晶屏输出的设计,通过编程对其五个控制位进行操作,而有关数字文字以及符号的字模可通过字模生成软件得到。
四为五个功能按键的设计,其主要是通过与单片机的五个端口进行操作,其中每个按键可看做是对相应的子函数的调用。
根据总体设计要求,系统总框图如图3—1所示
图3—1等精度设计的系统总框图
确定方案总框架图
由以上两种方案都可以测量脉冲宽度,等精度测量方法要比程控式的精度更高,但程控式是用数码管来显示的,受自然环境的影响小,而等精度是用的液晶显示屏受环境影响大,比如光线,由于实验要求我选择了程控脉冲测量法,下面具体论述这种方法的可行性。
图3—2为设计硬件的总体连接图。
图3—2程控式测量总体框图
各部分框图简介
(1).按键控制:
这个设计共有五个发光二极管和三个按键,作用如下:
发光二极管1:
:
显示脉冲宽度时间的单位。
(灯亮为ms,灯灭为µ
s)
发光二极管2:
显示555定时器外围电阻的单位。
(灯亮为kΩ,灯灭为MΩ)
发光二极管3:
显示555定时器外围电容的单位。
(灯亮为pf,灯灭为uf)
发光二极管4:
显示555定时器外围有无电容。
(灯亮为无,灯灭为有)
发光二极管5:
显示555定时器外围有无电阻。
按键1:
控制脉冲宽度时间刷新。
按键2:
控制555定时器外围电阻刷新。
按键3:
控制555定时器外围电容刷新。
图3—3555信号发生器
(2).信号源发生电路:
信号源由555定时器构成脉冲发生器(如图3-3)。
在测量的时候,会在R2和C1的两端并联电阻或者电容,本实验将会测量脉冲的高电平的宽度,R2并联的电阻值,以及C1并联的电容值。
由555脉冲发生器的基本原理可得以下结论:
设:
高电平的脉宽时间为TH,低电平的脉宽时间为TL.
则
R2=Tl*R1/(Th-Tl)(3—1)
C1=(Th-Tl)/(ln2*R1)(3—2)
根据这个公式,通过单片机测出高电平,低电平的宽度,我们就可以计算出R2,C1的值。
并且可以得到外围点电路的R,C的值。
(3).晶振电路:
晶振是为电路提供频率基准的元器件,通常分成有源晶振和无源晶振两个大类,有源晶振不需要芯片的内部振荡器,可以提供高精度的频率基准,信号质量也较无源晶振要好。
本实验用f=11.0592MHz的晶振电路。
晶振和C4、C5组成振荡器,使单片机内部产生周期为1us的脉冲信号。
图3—4晶振电路
(4).驱动及LED显示电路
本实验用了两片74LS573,一片用于输出段码,一片用于输出位码。
一片2803,用于LED数码管驱动。
四个LED数码管。
采用共阴极接法,用扫描的方式显示,每一个时刻只选通一个数码管。
用动态显示的方式来显示555定时器外围总电阻值,总电容值以及脉冲高电平时间值。
(5).单片机采用89C52单片机,共用到了三个定时器中断。
1.LED显示:
定时器中断0,每2500us刷新一次,动态显示形式。
2.脉宽高电平测量:
定时器中断1,由信号的上升沿触发,开始计数,记录的是信号的高电平的脉宽时间。
3.周期测量:
定时器中断2,下降沿触发,采用捕捉模式,手动清零。
定时器自动将周期时间存入固定的寄存器中。
从而得到低电平的脉宽时间。
这里简单介绍一下这部分硬件,在下一章详细的分析。
原理图
通过Protel99绘图及PCB制版,使电路系统完整。
根据我们以前所掌握的电路设计所用的软件来讲,能进行电路图的设计以及针对我们设计要求,需做成PCB板,最终要根据PCB板进行实物的焊接和调试,因此,选取用protel99软件进行电路的设计,进而对电路各个元件进行封装,完成对PCB电路的生成,最终制成PCB板。
图3—5、图3—6分别为整体电路原理图和PCB电路图。
图3—5电路原理图
PCB板图
图3—6PCB板图
PCB板是两层板,用protel99软件生成的。
四硬件部分原理及设计
单片机部分
功能特性描述
AT89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89c52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89c52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,两个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作[17]。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
引脚功能
89C52单片机有44个引脚PLCC和TQFP方形封装形式,40个引脚的双列直插式封装形式,最常用的40个引脚封装形式及其配置如图4.1所示,各个引脚功能说明如图4—1:
图4—189C52单片机的引脚
VCC:
电源,接+5V
GND:
接地
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;
在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)[17],具体如表4—1所示。
在flash编程和校验时,P1口接收低8位地址字节。
表4—189S52单片机P1口第二功能
引脚号
第二功能
P1.0
T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
P3口亦作为AT89S52特殊功能(第二功能)使用,如表4—2所示。
在flash编程和校验时,P3口也接收一些控制信号。
表4—289S52单片机P3口第二功能
P3.0
RXD(串行输入线)
P3.1
TXD(串行输出线)
P3.2
(外部中断0输入线)
P3.3
(外部中断0输入线)
P3.4
T0(定时器0外部计数脉冲输入)
P3.5
T1(定时器1外部计数脉冲输入)
P3.6
(外部数据存储器写选通信号输出)
P3.7
RST:
复位输入。
晶振工作时,RST脚将持续2个机器周期高电平将使单片机复位。
看门狗计时完成后,RST脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/
:
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在flash编程时,此引脚(
)也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可以用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
外部程序存储器选通信号(
)是外部程序存储器选通信号。
当AT89S52从外部程序存储器执行外部代码时,
在每个机器周期被激活两次,而在访问外部数据存储器时,
将不被激活。
/VPP:
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,
必须接GND。
为了执行内部程序指令,
应该接VCC。
在flash编程期间,
也接收12伏VPP电压。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
AT89C52的存储器结构
AT89S52器件有单独的程序存储器和数据存储器。
外部程序存储器和数据存储器都可以64KB寻址。
程序存储器:
如果
引脚接地,程序读取只从外部存储器开始。
对于89S52,如果
接VCC,读写程序先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:
2000H~FFFFH。
数据存储器:
AT89S52有256字节片内数据存储器。
高128字节与特殊功能寄存器重叠。
也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。
当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高128字节RAM还是特殊功能寄存器空间。
直接寻址方式访问特殊功能寄存器(SFR)。
例如,下面的直接寻址指令访问0A0H(P2口)存储单元
MOV0A0H,#data
使用间接寻址方式访问高128字节RAM。
例如,下面的间接寻址方式中,R0内容为0A0H,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。
MOV@R0,#data
堆栈操作也是间接寻址方式。
因此,高128字节数据RAM也可用于堆栈空间。
定时器
1.MCS-51系列中51子系列有两个16位的可编程定时/计数器:
定时/计数器T0和定时/计数器T1,52子系列有三个,还有一个定时/计数器T2。
2.每个定时/计数器既可以对系统时钟计数实现定时,也可以对外部信号计数实现计数功能,通过编程设定来实现。
3.每个定时/计数器都有多种工作方式,其中T0有四种工作方式;
T1有三种工作方式,T2有三种工作方式。
通过编程设置其方式寄存器TMOD可设定定时器工作于某种方式,方式寄存器TMOD格式见表4—3。
表4—3定时/计数器的方式寄存器TMOD
GATE
C/
M1
M2
门控
开/关
计数/定时
方式选择
计数/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 脉冲宽度 测量仪