基于单片机的脉冲宽度测量.doc





《基于单片机的脉冲宽度测量.doc》由会员分享,可在线阅读,更多相关《基于单片机的脉冲宽度测量.doc(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流基于单片机的脉冲宽度测量.精品文档.山东科技大学电工电子实验教学中心 创新性实验研究报告课程名称:单片机原理及应用实验项目名称 脉冲宽度测量 姓名 学号 _专 业 _ 班级 _指导教师及职称 _开课学期 2011 至 2012 学年 第一 学期提交时间 2012 年 1 月 3 日一、实验摘要通过采用STC89C52RC单片机为中心器件来设计脉冲宽度测量器,并运用MCS51/52单片机计数功能,选择好工作模式,对脉宽进行计数。在现有的单片机仿真机系统上掌握相关软硬件设计与调试知识,并在计算机上编写汇编程序调试运行。二、实验目的(1)基于 ST
2、C89C52RC单片机测量脉冲宽度; (2)研究分别使用定时计数器 0,1 的 GATE 模式和定时计数器 2 的捕捉功能完成外部脉冲宽度测量; (3)通过6位 LED显示计数值,时间精确到 0.1秒。并熟悉了解试验箱的应用,提高动手能力。三、实验场地及仪器、设备和材料:实验场地:J11#324设备:PC机一台 STC89C52RC单片机试验箱一台 教材:1. MCS51/52单片机原理与实践 公茂法 黄鹤松等编著 北京航空航天大学出版2. 单片机原理及应用 张毅刚主编 高等教育出版社 3. 其它相关的参考资料及实验教材四、实验内容1、实验原理(1)T0工作方式通过设置TMOD,使其为定时器模
3、式。在做定时器使用时,将T0定时为0.001S。当GATE=1时,为门控方式。只有TR0设置为1,且同时外部中断引脚也为高电平时,才能启动T0开始计数工作。把脉冲信号从P3.2脚引入,T0设为定时器方式工作,并工作在门控方式(GATE=1)。在待测信号高电平期间,T0对内部周期脉冲进行计数。在待测脉冲高电平结束时,其下降沿向P3.2发中断,在外部中断0的中断服务程序中,读取TH0、TL0的计数值,该值就是待测脉冲的脉宽。随后,清零TH0和TL0,以便下一个脉宽的测量。计算方法:脉冲宽度=计数值*0.01s,将脉冲宽度的数值转换为压缩BCD码,再将压缩BCD码转换为非压缩BCD码用于显示,最后调
4、用显示程序,读取脉冲宽度。系统原理框图7407列驱动6位数码管显示89C51单片机控制器信号源振荡电路(2)T2捕捉工作方式使用T2的捕捉方式,TH2、TL2的初值设为0,待测信号从T2EX(P1.1)引入,采用定时器T0定时0.001s,刚开始待测信号为高电平或低电平时等待,再次检测为高电平时T2开始计数,定时器T0每定时0.001s,通过串口P1.0的开关状态使T2的计数值增一并将计数值存入RCAP2H和RCAP2L两个寄存器中。计算方法:脉冲宽度=计数值*0.001s,再将得到的表示脉冲宽度的十六进制转换为压缩BCD码,再将压缩BCD码转换为非压缩BCD码用来显示,读取LED上显示的数据
5、即为要测量的脉冲宽度。2、实验内容 计数 被检测脉冲信号 为高则开始计数 为低时停止计数T0:把脉冲信号从P3.2脚引入,T0设为定时器方式工作,并工作在门控方式(GATE=1)。在待测信号高电平期间,T0对内部周期脉冲进行计数。在待测脉冲高电平结束时,其下降沿向P3.2发中断,在外部中断0的中断服务程序中,读取TH0、TL0的计数值,计算出所测。随后,清零TH0和TL0,以便下一个脉宽的测量。显示:将数码管的段控信号与P口与六位LED数码管相连。T2:使用T2捕捉方式时将脉冲信号加到P1.1引脚,并且同时开通T0定时器,将数码管的段控信号与P0口与六位LED数码管相连,将位控信号P2与键盘相
6、连。六位数码管显示数码管接线图 共阳7段LED显示器显示原理:引脚数字显示gfabedch数码显示001111110C0H100010010F9H210111100A4H310110110B0H41101001099H51110011092H61110111082H700110010F8H81111111080H91111011090H采用共阳7段LED数码管显示器,P口引入脉冲信号,P2.0至p2.3口作为列扫描输出,P0口输出段码数据,采用12Mhz晶振,可提高计数的精确度。 3、实验步骤以流程图的方式表现实验步骤: T0门控方式的程序流程图 开始设定工作方式,TH0,TL0赋值脉冲是否为
7、高电平?开定时器T0的中断检测脉冲是否为低电平?进入T0的中断,并将计数值清零进入定时器T0中断服务程序,并将定时溢出值存入两个存储单元调用压缩BCD码转换程序然后调用非压缩BCD码转换程序调用显示程序结束否是否是 T2捕捉方式程序流程图开始设定工作方式,并对TH0、TL0、TH2、TL2赋值脉冲是否为低电平?开启定时器T0检测脉冲是否为高电平?进入T0的中断,记录定时次数,T2将数记下关闭T0中断服务程序,并将所计数值存入RCAP2H、RCAP2L存储单元调用压缩BCD码转换程序然后调用非压缩BCD码转换程序调用显示程序结束是否是否五、实验结果与分析1、实验现象、数据记录按照流程图所示,按动
8、脉冲按钮,可以看到,显示屏显示出所测脉冲的宽度。再次按动,可以清楚地观察到所示的示数变化。每次显示的示数,都根据所按按钮的时间长短,即高电平的脉宽长度。第一张图为T0工作方式,第二张图为T2捕捉方式。 2、对实验现象、数据及观察结果的分析与讨论: 通过对T0、T2不同方式的实验观察,两种实验方式都可以达到计数脉宽的长度的要求,两者各有自己的优势。 实验数据均可以达到所要求的:6位 LED显示计数值,时间精确到 0.1秒 做实验时遇到很多问题,比如数码管显示不出数值(P口位置插错),小数点显示错位(没有在程序中编对位置),显示只显示第一次多出数值(调用程序返回时出错)等问题。3、关键点: 在试验
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 脉冲宽度 测量

限制150内