ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:335.97KB ,
资源ID:12469574      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12469574.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(脉宽测量.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

脉宽测量.docx

1、脉宽测量 电子测量课程设计报告课题: 脉宽测量电路设计 班级 电子3081 学号 3082107126 学生姓名 席凌晨 专 业 电子信息工程 系 别 电子与电气工程系 指导教师 电子测量课程设计指导小组 淮阴工学院电子与电气工程学院 2011年3月一、课程设计的目的 2二、程序设计的具体要求 2三、程序总体设计 2四、测量电路的硬件设计 5五、软件设计 8六、安装与调试 15七、课程设计的体会 16八 参考文献 16 1 设计目的:a) 培养理论联系实际的正确设计思想,训练综合运用已经学过的理论生产实际知识去分析和解决工程实际问题的能力。b) 学习较复杂的电子系统设计的一般方法,了解和掌握模

2、拟、数字电路等知识解决电子信息方面常见实际问题的能力,由学生自行制作和自行调试。c) 进行基本技术技能训练,如基本仪器仪表的使用,常用元器件的识别、测量、熟练运用的能力,掌握设计资料、手册、标准和规范以及使用仿真软件、实验设备进行调试和数据处理等。d) 培养学生的创新能力。2 设计要求: a) 说明电路的工作原理; b) 主单元电路和元器件参数计算、选择、使用方法经功能; c) 画出总体电路图;d) 上交完整的实习报告。 3 总体设计3.1 脉冲宽度测量原理所谓移相是指对于两路同频信号,以其中一路为参考信号,另一路相对于该参考信号做超前或滞后的移动形成相位差。数字移相通常采用延时方法,以延时的

3、长短来决定两数字信号间的相位差,本文提出的测量原理正是基于数字移相技术。如图2所示,原始计数时钟信号CLK0通过移相后得到CLK90、CLKl80、CLK270,相位依次相差90,用这四路时钟信号同时驱动四个相同的计数器对待测信号进行计数。设时钟频率为f,周期为T,四个计数器的计数个数分别为m1、m2、m3和m4,则最后脉宽测量值为:可以看到,这种方法实际等效于将原始计数时钟四倍频,以4f的时钟频率对待测信号进行计数测量,从而将测量精度提高到原来的4倍。例如原始计数时钟为80MHz时,系统的等效计数频率则为320MHz,如果不考虑各路计数时钟间的相对延迟时间误差,其测量的最大误差将降为原来的四

4、分之一,仅为3125ns。同时,该法保证了整个电路的最大工作频率仍为人避免了时钟频率提高带来的一系列问题。3.2 利用单片机89C2051 实现脉冲宽度测量方法AT89C51 内有两个可编程定时/ 计数器。我们使用T0 完成定时功能,T1 完成计数功能,当AT89C51的INT0端输入待测的随机脉冲序列时,在脉冲低电平时,引起INT0中断,进行定时,计数测脉宽。因此,测得随机脉冲序列高电平宽度需将待测信号反向一次后输入给AT89C51 的INT0引起INT0中断。当脉冲低电平时,每定时10us,AT89C51 的P1.0 引脚求反一次,并将求反信号输入到计数器T1 ,作为计数脉冲信号启动计数器

5、计数,直到输入到INT0的信号变为高电平为止,外部中断结束。假设在这段时结果间内计数器总的计数值为X,则所测该脉冲宽度为t1 = X 10(us) ,将一次测量存入相应RAM 单元中。若连续测量N 个脉冲的宽度,则重复上述过程,将采样结果存入RAM区中。为了避免测量时刻的随机性而造成第一个信号脉冲不定带来的测量误差及防止测量时干扰问题,则连续N + 2 次测量,将N + 2 次测量结果进行比较,去除一个最大值,一个最小值,剩余N 个值进行平均,并送液晶显示器进行结果显示。 图2 AT89C51引脚图及其功能4 测量电路的硬件设计4.1 测量电路的硬件原理图 图3 硬件原理图 由图3 硬件原理可

6、知,测量电路以AT89C51单片机为核心,四位数码液晶显示器组成,它由数码显示器、驱动电路、8 位CPU 接口构成。在P3.2送入连续脉冲,T0、T1分别进行定时、计数。利用AT89C51的P2口作为数据输出,送到数码显示管显示,P1口的P1. 0、P1. 1、P1. 2、P1. 3通过四个非门取反驱动数码显示。运行键、复位键共两个功能键。数字键主要用于设定N 个连续脉冲信号的N 值。控制系统一上电,显示0 值。按运行键后,开始对脉冲序列宽度进行测量,测量过程中若因某种原因需重新开始测量时,按复位键,整个系统复位,并重新开始测量。4.2 单元电路设计 4.2.1 时钟电路设计时钟电路用于产生8

7、9C51单片机工作时所需要的时钟控制信号。89C51单片机的内部电路在时钟信号的控制下,严格地按时序执行指令。在执行指令时,CPU首先到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号去完成指令所规定的操作。单片机各功能部件的运行都是通过时钟信号来控制,有条不紊地一拍一拍地工作的,因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。本设计中,单片机要完成对呀信号的A/D转换和对A/D转换的结果存入外部存储器,对于高频载波信号和调制信号,单片机的速度要够快才能在两次采样之间的时间内完成这两项工作,时钟电路对于本设计有着重要的作用。常用的时

8、钟电路设计有两种方式,内部时钟方式和外部时钟方式,本设计采用内部时钟的方式。89C51内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成了一个稳定的自激振荡器,89C51内部时钟的振荡电路如下图所示:图4 振荡电路电路中的电容C1和C2典型值通常选择为30PF左右,晶体频率越高,系统的时钟频率也就越高,单片机的运行速度也就越快。选用12MHZ的晶振,机器周期则为1us。4.2.2 上电复位电路 图5 按键式复位电路单片机的复位都是靠外部复位电路来实现的,在时钟电路工作后,只要在单片机

9、的RESET引脚上出现24个时钟震荡脉冲(两个机器周期)以上的高电平,单片机就能实现复位。为了保证系统可靠复位,在设计复位电路时,一般使RESET引脚保持10ms以上的高电平,单片机便可以可靠的复位。图5是一个按键式复位电路,它的上电复位功能通过按键实现。当开关按下时,电容C充电,通过R6、R7形成回路,使RESET端产生高电平;当开关断开时,电容放电,RESET的点位与地相同,复位结束。4.2.3 数码管显示电路 数码管显示电路如图6所示: 图6 数码管引脚排列5 软件设计5.1 总框图 图7 总程序框图 2单元电路设计本设计由单片机、测量控制电路、键盘及显示电路几个组成部分,各部分采用的电

10、路形式及主要器件确定如下:(1)单片机部分选用89C51作为主机,同时要设计89C51单片机的晶振电路和复位电路。单片机部分框图(2)测量电路部分直接利用单片机内部的定时/计数器实现频率的测量。测量电路框图(3)显示部分具体电路显示部分框图5.2 主程序模块5.2.1 主程序 AT89C51单片机的内部16位定时/计数器是一个可编程定时/计数器,它既可以工作在13位定时方式,也可以工作在16位定时方式和8位定时方式。只要通过设置特殊功能寄存器TMOD,即可完成。定时/计数器何时工作也是通过软件来设定TCON特殊功能寄存器来完成的。这里选用16位定时工作方式,对于T0来说,最大定时也只216 *

11、1us=65536us,即65.536ms。如果被测脉冲的宽度大于65536个机器周期时,可设一个中断次数计时器R1,每当定时/计数器满65536个机器周期而产生溢出中断时,计数器R1加1计数,且定时/计数器T0清0后重新从0开始计数,直到脉冲结束。 MOVTMOD,#09H;置定时/计数方式1,GATE=1MOVTL1,#00H ;计数器清零MOVTH1,#00HMOVTL0,#10 ;延时10us常数MOVTH0,#0MOVR0,#20H ;置地址指针初值MOV IE,#82H ;开放CPU和T0中断MOV R1,#00H ;中断次数计数器清零JB P3.2,$ ;等待/INTO变低 SE

12、TB TR0 ;启动T0SETB TR1 ;启动T1JNB P3.2,$JB P3.2,$CLR TR1CLR TR0 ;关T0 MOV R0,TL1 ;保存计数值 INC R0MOV R0,TH1INT_T1:PUSH ACCPUSH PSW CLR TR1CLR TR0 ;关T0 INC R1SETB TR1SETB TR0POP PSWPOP ACCRETI 运行上述程序后,只要将21H、20H两单元的内容(定时/计数器中的内容)转化成十进制数,乘以机器周期,再加上65536个机器周期乘以中断次数(R1的内容),即是外部正脉冲的宽度。5.2.2 中断部分所谓中断,是指CPU正在处理某件事

13、情的时候,外部发生了某一事件请求CPU迅速去处理。CPU暂时中断当前的工作,转入处理所发生的事件,处理完以后,再回来继续执行被中止了的工作。外部中断是由外部原因引起的。本设计使用单片机的外部中断0和外部中断1,相应的中断请求信号是和,有两种触发方式,即电平触发方式和脉冲触发方式。(1)首先应考虑设置中段触发方式。定时器控制寄存器TCON与中断有关的位如下:8F8E8D8C8B8A8988TF1-TF0-IE1IT1IE0IT0表5.1 定时器控制寄存器TCON其中IT1(IT0):外中断请求信号方式控制位。该位由用户设置。当IT1(IT0)=1时,选择脉冲触发方式,负跳变有效;当IT1(IT0

14、)=0时,选择电平触发,低电平有效。由硬件连接可知,单稳态触发器输出单稳态脉冲的每个下降沿触发中断0,每次AD转换结束后触发中断1,则外部中断0和外部中断1均为脉冲触发方式。在初始化程序中应使用以下指令对触发方式进行设置:SETB IT0 ;外部中断0设置为边沿触发方式SETB IT1 ;外部中断1设置为边沿触发方式(2) 另外要考虑中断允许中断的允许或者禁止是由片内的中断允许寄存器IE控制的,寄存器的内容及位地址如下:AFAEADACABAA99A8 EA/ESET1EX1ET0EX0表5.2 中断允许寄存器IEEA:中断允许总控制位。EA=0时,表示CPU禁止所有中断,即所有的中断请求被屏

15、蔽;EA=1时,表示开放CPU中断,但是每个中断源的中断请求是允许还是禁止,要由各自的允许位控制。EX0(EX1)位:外部中断允许控制位。EX0(EX1)=0,禁止外中断;EX0(EX1)=1,允许外中断。在初始化程序中,应先开放中断,以等待采样结束后进入中断服务程序进行AD转换。则EA=1,EX1=1,EX0=1,IE=82H。初始化程序中,使用MOV IE,#82H,开放中断。5.2.3 数码显示部分Disolay:mov a,r0mov P2,a ;把计数值在LED上显示sjmp displayplay: mov r1,#dat ;p2口接数码管显示 mov a,r1 mov dptr,

16、#tab1 ;查段码表1 movc a,a+dptr mov p2,a ;数据送p2口 acall delay ;调用延时 inc r1 mov a,r1 mov dptr ,#tab2 ;查段码表2 movc a,a+dptr mov p2,a ;数据送p2口 acall delay ;调用延时 inc r1 mov a,r1 mov dptr ,#tab3 ;查段码表3 movc a,a+dptr mov p2,a acall delay inc r1 mov a,r1 mov dptr ,#tab4 ;查段码表4 movc a,a+dptr mov p2,a acall delay aj

17、mp play delay: mov r7,#1del0: mov r6,#2del1: mov r5,#10 djnz r5,$ djnz r6,del1 djnz r7,del0 rettab1: db 0e0h,0e1h,0e2h,0e3h,0e4h,0e5h,0e6h,0e7h,0e8h,0e9h; 最低位数码管段码tab2: db 0d0h,0d1h,0d2h,0d3h,0d4h,0d5h,0d6h,0d7h,0d8h,0d9htab3: db 0b0h,0b1h,0b2h,0b3h,0b4h,0b5h,0b6h,0b7h,0b8h,0b9htab4: db 70h,71h,72h,

18、73h,74h,75h,76h,77h,78h,79h,0ffh ; 最高位数码管段码 6 安装与调试1硬件连线: 单片机外部中断1接信号发生器来引入所测量的外部脉冲,外部中断0接负脉冲发生器作为单片机的中断控制,显示部分按照试验箱上实验十六(八段数码管的显示)的连线连接。 2在调试过程中遇到的问题及调试解决方法: (1)程序开始调试时总报错,程序无法运行调试。检查了保存情况,程序保存后缀名正确。仔细排查后发现,在输入程序时为了输入注释汉字,大部分情况下中英文输入法混淆切换使用,使得程序中逗号分隔符有些是在中文输入状态下输入的,导致程序无法运行。修正方法:将程序中所有逗号在英文输入状态下重新输

19、入。再次运行成功,进入正常调试。(2)在同一个外部正脉冲的情况下,多次测量却得到不同的数值。思考后认为问题应该出在计数算时间部分,检查推敲计数算时间程序段,原来是计数开始时刻选取的不对,原程序为SETB TR1JB P3.3 ,$ JNB P3.3 ,$这样的话,如果相应外部中断的时候外部信号正好是高电平,则定时器开始计数,得到了不正确的计数结果,由于每次加外部中断的时刻不同,导致了同一个信号测得多个数值。修改办法:将程序调整为JB P3.3 ,$SETB TR1JNB P3.3 ,$如此,当外部信号是高电平时等待,低电平来时等待,再次是高电平时才开始计数,低电平时结束计数,得到了正确的计数结

20、果。3、数码管高位起第二位总是显示数字7而不是应有的结果。此处错误较为隐秘,先是检查了硬件试验箱是否损坏,调用了实验数码管显示程序,数码管可以正常显示,说明是程序错误;检查了程序整个的逻辑,没问题;应该是显示程序段的错误,但多次仔细检查了数值转化及显示程序段并未发现错误;排除了是逻辑错误,应该是非逻辑错误,最后查找相关资料并向老师请教,才明白错误是字型码表放错了位置,误把其放在了将数值转换成非压缩的BCD码的程序段前面,字型码表的第一个3FH可能是某条指令的机器码,当程序执行到这时,发生了错误的指令执行,导致了错误的显示。修正方法:将字型码表调整到整个程序段的末尾或主程序开始前。再次运行得出了

21、正确的结果。7 课程设计体会 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。 回顾起此次课程设计,至今我仍感慨颇多,老师详细讲解我已对单片机的各个指令功能,寻址方式,程序设计方法有了初步了解。但毕竟课本上的只是理论。平时学习时我们都学到了各子模块的程序,到真正将他们综合起来去控制实验箱还是第一次。首先在编写程序时我们就遇到了很大的困难, 编写程序需要有一个冷静的头脑,心浮气躁是不行的。遇到困难时更是要心平气和,细致思考。从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计

22、的过程中遇到问题,我在做设计的过程中发现有很多东西,也知道拉自己的不足之处,知道自己对以前所学过的知识理解得不够深刻,掌握得不够牢固。最后我们在老师细心指导下顺利完成了。8 参考文献1梅丽凤,王艳秋,汪毓铎,张军 单片机原理及接口技术(修订本). 北京:清华大学出版社;北京交通大学出版社 20072严石,郑蓉建,徐君 单片机原理及应用. 淮阴工学院 20093. 朱玉红 MCS51单片机对连续脉冲宽度测量的实验 自动化与仪器仪表 2003第一期 1001-9227(2003)01-0035-024. 张兰群 利用单片机门控位测量脉冲的宽度 电脑学习 2004第六期 5. 康华光.电子技术基础数字部分.北京:高等教育出版社,20006. 李光飞等,单片机课程设计实例指导.北京:北京航空航天大学出版社,2004

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1