脉冲宽度的测量

脉冲宽度的测量

ID:32392586

大小:709.85 KB

页数:9页

时间:2019-02-04

脉冲宽度的测量_第1页
脉冲宽度的测量_第2页
脉冲宽度的测量_第3页
脉冲宽度的测量_第4页
脉冲宽度的测量_第5页
资源描述:

《脉冲宽度的测量》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、电子科技大学综合课程设计报告基于单片机门控位的脉冲宽度测量与显示think2011/5/4一、可行性分析及其原理:该项目是要实现脉冲宽度的测量,再把测量值用数码管显示。为了实现这一功能我们大致把整个系统分为以下几个模块:1.振荡器模块:产生某一特定振荡频率的时钟,一般要求这一频率较高,本题要求精度为10us,所以采用100kHZ的振荡频率即可。2.计数器模块:对振荡脉冲进行计数,用待测脉冲信号作为使能输入(或开关),这样就可以记录下脉冲有效的时间,计数值乘以10us即为待测脉冲宽度。3.译码显示模块:题目中要求用数码管显示6位测量值,分别完成译码和

2、数码管的静态显示或是动态扫描输出即可。振荡电路计数器译码输出模块框图如下:输入待测信号二、方案介绍及硬件电路设计:本次设计构思了两个方案:方案一:运用CD4518(BCD码全加器)的级联来实现计数,CD4511七段译码,555多谐振荡器提供100kHZ频率,待测信号输入到计数器使能。电路连接图如下:上述方案为数码管静态显示。优点为方案简单无需编程,只需要组合逻辑与时序逻辑即可完成。缺点为硬件电路的连线过于复杂上容易出错且很难排除故障,另一个问题在于使用的外接振荡源精度不是很高,势必带来不小的误差。此方案理论上可行,由于实际操作带来的不方便,我们考虑

3、了后面一种方案。方案二:利用单片机门控位实现脉冲宽度测量。基本思路为:利用单片机内部定时器的GATE信号,对于定时器T0来讲,如果GATE=1,则用软件把TR0置1,且INT0为高电平时可以启动定时器T0,所以我们就把被测脉冲信号从INT0端输入,使其上升沿触发启动T0计数,下降沿停止T0计数。定时器数值乘以机器周期即为脉冲宽度。电路连接图如下:可以看出,电路结构由以下部分构成:1.振荡模块:12MHZ晶体振荡器,由XTAL1和XTAL2接入单片机。2.单片机控制模块:AT89S51单片机实现控制,主要任务是对其进行必要的编程设计。3.输出显示模块

4、:由数码管动态扫描显示,注意P0需要外接上拉电阻。另外,还有一个异或门电路是用来实现选择测量正脉冲还是负脉冲。单片机控制晶振显示部分待测信号输入和前一方案相比可以发现,这样的方案要比用组合时序逻辑连线简单,而且较容易查错。单片机内部有定时器计数器,就可以使用相同的原理来对脉冲宽度进行测量,所以说使用单片机编程实现控制也是可行的,所以,下面就针对方案二的程序进行进一步的分析。一、程序设计及分析:51单片机的计数功能我们已经很熟悉了,但是我们也知道不论是哪种方式的计数,其最大值也只能计65535,而本次设计要求要计的范围是0到99.99ms,这就意味着

5、超出了计数器的量程,解决方案也有两个。第一种,使用两个计数器配合实现计数位的扩展。第二种,使用中断服务程序,也可以实现扩展。这里我们选择使用中断服务程序的方法。以下是该设计的中断服务程序:T0INT:PUSHACCMOVTH0,#00HMOVTL0,#00HMOVA,COUNT+1ADDA,#01HMOVCOUNT+1,AMOVA,COUNTADDCA,#00HMOVCOUNT,APOPACCRETI考虑到单次测量可能会带来较大的误差,我们采用次测量取平均的方法,方便起见,我们使用两个计数器共32位计数值,对连续脉冲测量256次,只显示其高24位,

6、低8位舍掉不显示,这样就巧妙地实现了测量256次取平均的效果。另外,因为外部电路省掉了译码的部分,所以必须在单片机内部完成译码功能,在译码之前首先还必须经过一次转码,即把2进制码转换成可以由数码管显示的码。这里用循环移位的方法把所有测量位都连了起来。然后再转换成BCD码存放。最后还有显示的子函数就实现把BCD码转换成7段码,显示程序如下:DISPLAY:MOVR0,#70HMOVR3,#01HNEXT:MOVA,#00HMOVP1,AMOVA,@R0MOVDPTR,#LABLE1MOVCA,@A+DPTRMOVP0,AMOVA,R3MOVP1,AL

7、CALLDELAYINCR0JBACC.5,EXITRLAMOVR3,ASJMPNEXTEXIT:RETLABLE1:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FHDB6FH,77H,7CH,39H,5EH,79H,71H,00H,73HDELAY:MOVR7,#02HDEL1:MOVR6,#0FFHDEL2:DJNZR6,DEL2DJNZR7,DEL1RETEND2进制转换为BCD码程序如下:WDISBUF:CLRAMOVR3,AMOVR4,AMOVR5,AMOVR2,#24HB1:MOVR6,HEXMOVR7,HEX

8、+1MOVR1,HEX+2HB2:MOVA,R1RLCAMOVR1,AMOVA,R7RLCAMOVR7,AMOVA,R6R

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。