赵翠玉

摘要:本文基于AT89C52的脉冲宽度测量仪的设计。该仪器测量结果采用了软件数字滤波,消除了测量中抖动问题,测量精度高、稳定性好,具有一定的实用性。

关键词:AT89C52;测量仪;脉冲宽度

中图分类号:TM935.4 文献标识码:A 文章编号:1007-9416(2019)02-0129-01

0 引言

脉冲宽度的测量,实质是时间的测量,以往测量仪采用的是门电路来进行脉冲宽度测量,而 AT89C52单片机系统资源丰富:内置256KB的RAM模块、32个外部双向可编程I/O口线、3个16位定时器/计数器、0-24MHz时钟频率、2个外中断口[1]。该单片机不仅提供丰富的硬件资源,也提供良好的上位机控制软件,只要通过软件的功能操作就能实现:源代码的调试编译,查找与修改错误之处,在线代码下载等功能。基于以上优点,本文设计了采用AT89C52单片机实现脉冲宽度测量仪。

1 测量机理

基于AT89C52的脉冲宽度测量仪以AT89C52为系统控制核心,通过AT89C52内部的定时器对脉冲宽度进行测量。设定AT89C52工作于定时器方式,计数的输入为内部时钟信号,频率为固定的12MHz。只要令GATE=1,TR0=1,TR1=1,将输入脉冲接到INT1口,即可测量输入脉冲宽度,测量机理如图1所示。

2 系统硬件设计

该测量仪主要由AT89C52单片机最小系统、555定时电路、LED显示驱动电路、LED显示电路和电源电路等组成[2]。

测量时通过单片机外中断INT1和定时器T1配合来完成外部待测脉冲高电平持续时间的测量。首先将U1(AT89C52)的T1设为定时器方式,且门控GATE=1;然后将U2(NE555)的3脚输出的方波信号送至U1的P3.3脚(INT1口),当P3.3脚的信号出现下降沿时,进入INT1中断服务程序并判断脉冲位置,如果是第一个方波脉冲,则打开计数器T1的开关(将TR1设为1),否则关闭T1的开关(将TR1设为0),等到第二个方波脉冲上升沿抵达U1的P3.3脚时,TH1、TL1自动开始计数,当第二个方波脉冲下降沿到来时计数器自动关闭停止计数,此时为待测信号高电平期间,且再次进入外部中断INT1的中斷服务程序中,读取TH1、TL1的计数值,并计算出所测量的结果,该结果就是待测方波脉冲的宽度。随后,清零TH1和TL1,以便下一个脉宽的测量。同时,测得的信号宽度数值从U1的P1.0~P1.7口分别输出a~g及dp八位段选字符编码信号至数码管的相应段选线,从U1的P3.4~P3.7口输出四只数码管的位选信号,分别经Q5~Q8处理送至四只数码管相应的位选线,控制相应数码管的点亮,实现被测结果的实时显示。系统工作电压由电源电路把220交流电经变压器降压、D1~D4整流、C9~C10滤波、U3(7805)稳压得到+5V稳定电压来提供。

可以得出测量脉冲宽度分两个阶段:一个是准备阶段,完成状态的设置;另一个是测量阶段,从脉冲上升沿开始测量计数,到脉冲下降沿结束计数,以两个脉冲为一个测量周期。

3 系统软件设计

该系统软件使用C语言进行了编写,采用了模块化的设计思想[3],将设计划分为T0溢出中断、T1溢出中断和INT1溢出中断等相应的程序模块,分别进行设计、调试,增强了程序的条理性。AT89C52的脉冲宽度测量仪主程序设计流程如图2所示。

4 数据及结果的分析

通过实验观察,对T0、T2两种方式都可以达到计数脉宽的长度的要求,实验数据均可以达到所要求的:6位 LED显示计数值,时间精确到0.1秒。

实验中也遇到一些问题,如数码管显示不出数值(P口位置插错),小数点显示错位(没有在程序中编对位置),显示只显示第一次多出数值(调用程序返回时出错)等问题。

5 结语

本文的创新在于遵循硬件电路可靠、操作简便,充分借助AT89C52单片机系统的丰富资源,通过硬件的完整设计和软件强大的编程等过程,实现了脉冲宽度的测量功能,具有实际的应用价值。

参考文献

[1] 罗印升.单片微机原理与应用[M].北京:机械工业出版社,2012.

[2] 路而红.专用集成电路设计与电子设计自动化[M].北京:清华大学出版社,2004.

[3] 张培仁.基于C语言编程MCS-51单片机原理与应用[M].北京:清华大学出版社,2003.

Design and Implementation of Pulse Width Measuring Instrument Based on AT89C52

ZHAO Cui-yu

(Jiangsu Urban and Rural Construction College,Changzhou Jiangsu  213000)

Abstract:The design of pulse width measuring instrument based on AT89C52 is presented in this paper. The measurement results of the instrument are filtered by software digital filter, which eliminates the problem of jitter in the measurement. The measurement accuracy is high and the stability is good. It has certain practicability.

Key words:AT89C52; measuring instrument; pulse width

脉冲时间宽度c语言,基于AT89C52脉冲宽度测量仪的设计与实现相关推荐

  1. 基于电位器式传感器位移测量仪的设计

    基于STC89C52电位器式传感器位移测量仪的设计 本文的位移测量仪的设计要求为:采集和处理测量电路的信号,显示测量位移,测量范围是0-50mm精度为0.1mm.设计能和计算机进行通信的标准接口,并将 ...

  2. 51单片机汽车胎压大气气压测量仪仿真设计_数码管显示

    51单片机汽车胎压大气气压测量仪仿真设计_数码管显示 (仿真+程序) 仿真原版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0018 目录标题 51 ...

  3. 基于AT89C52单片机的温湿度检测设计

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87704704 源码获取 主要内容: ...

  4. 台灯c语言,基于msp430单片机的智能台灯设计(C语言).doc

    基于msp430单片机的智能台灯设计(C语言) 桂林理工大学信息学院 实 习 报 告 实习名称: 电子系统设计创新与实践 名: 学 号: 组 员: 指导老师: 实习时间: 目 录1概述3 1.1 题目 ...

  5. 台灯c语言,基于msp单片机的智能台灯设计(C语言).doc

    基于msp单片机的智能台灯设计(C语言).doc 基于msp430单片机的智能台灯设计(C语言) 桂林理工大学信息学院 实 习 报 告 实习名称: 电子系统设计创新与实践 设计题目: 基于单片机的智能 ...

  6. 基于单片机控制的数字温度计课程设计c语言,基于单片机的数字温度计课程设计.doc...

    基于单片机的数字温度计课程设计.doc 目录1 绪论 .11.1 设计背景 .11.2 设计要求 .11.3 设计思路 .12 系统硬件设计 12.1 设计总框图 12.2 各模块功能 .22.3 设 ...

  7. 人体反应测试仪 c语言,基于单片机的人体反应速度测试仪设计

    内容简介: 基于单片机的人体反应速度测试仪设计,毕业论文,共35页,12036字,附开题报告.任务书等. 摘要 反应速度是指人体对刺激发生反应的快慢.反应速度通常用"从刺激到开始发生反应的时 ...

  8. 水塔水位控制器单片机c语言,基于单片机的水塔水位控制器设计.doc

    基于单片机的水塔水位控制器设计 河南质量工程职业学院 毕业设计 题 目:水塔水位设计 系 别:机电工程系 专业班级:商检技术 班 级: 学生姓名: 指导老师: 设计时间: 2012年3月13 日 河南 ...

  9. 声控灯程序C语言,基于51单片机的声控灯设计设计-包含完整设计与指导文件.doc...

    基于51单片机的声控灯设计设计-包含完整设计与指导文件 工 学 院 毕 业 设 计(论文) 题 目:基于单片机的智能光控路灯的设计 专 业: 机电技术教育 班 级: *** 姓 名: *** 学 号: ...

最新文章

  1. linux查看msf安装目录,linux系统安装msf的过程详解
  2. oracle sum 数据类型,五、Oracle内置函数
  3. SCCM 2012R2 部署教程之二——部署数据库
  4. 计算机蓝屏代码0xc0000020,Win10运行程序提示“损坏的映像 错误0xc0000020”怎么解决?...
  5. android 进程间的通信,Android native进程间通信实例-binder结合共享内存
  6. SAP Spartacus login 页面看不到 UI 控件的问题解决
  7. find命令进阶用法(一)
  8. python如何处理inp文件_python文件处理之fileinput
  9. 太原市智能家居行业协会成立
  10. 游戏制作(详细教程)
  11. 丁向荣单片机pdf_《单片微机原理与接口技术--基于STC15系列单片机》,丁向荣主编.doc...
  12. 车载导航升级凯立德的步骤
  13. python 模拟键盘按键错乱_python 采坑总结 调用键盘事件后导致键盘失灵的可能原因...
  14. 日语学习的实用网址大全!
  15. yapi在centos下的部署安装 后台启动(亲自动手实践)
  16. Base64 JAVA后台编码与JS前台解码(解决中文乱码问题)
  17. 搭建我的云端服务器环境
  18. 显示器经典故障以及处理办法
  19. 图片饱和度、色调、明度的计算
  20. 数字音频接口(I2S,PCM/TDM)

热门文章

  1. 43. DDR2内存初始化代码分析-6
  2. 3ds Max 子物体的编辑
  3. ds18b20温度转换指令_ds18b20如何读取温度?温度数据怎么换算? - 全文
  4. java.lang.object_Java基础--常用API--java.lang.Object
  5. 手把手带你开发企业级支付系统
  6. 攻防世界 Pwn greeting-150
  7. 秦州:“电子商务+贫困户”扶贫模式助力脱贫攻坚
  8. 【技巧】Excel单元格中添加进度条
  9. 关于WiFi-Sensing(无线感知)的未来
  10. linux rm无法删除权限不够,linux下的文件用root用户rm -rf命令无法删除解决方案