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

上传人:b****4 文档编号:3072136 上传时间:2022-11-17 格式:DOCX 页数:13 大小:103.68KB
下载 相关 举报
基于单片机的脉冲宽度测量.docx_第1页
第1页 / 共13页
基于单片机的脉冲宽度测量.docx_第2页
第2页 / 共13页
基于单片机的脉冲宽度测量.docx_第3页
第3页 / 共13页
基于单片机的脉冲宽度测量.docx_第4页
第4页 / 共13页
基于单片机的脉冲宽度测量.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

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

《基于单片机的脉冲宽度测量.docx》由会员分享,可在线阅读,更多相关《基于单片机的脉冲宽度测量.docx(13页珍藏版)》请在冰豆网上搜索。

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

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

山东科技大学电工电子实验教学中心

创新性实验研究报告

课程名称:

单片机原理及应用

实验项目名称脉冲宽度测量

姓名学号

专业班级

指导教师及职称

开课学期2011至2012学年第一学期提交时间2012年1月3日

、实验摘要

MCS—51/52单片机计数

通过采用STC89C52RC单片机为中心器件来设计脉冲宽度测量器,并运用

功能,选择好工作模式,对脉宽进行计数。

在现有的单片机仿真机系统上掌握相关软硬件设计与调试知识,并在计算机上编写汇编程序调试运行。

二、实验目的

(1)基于STC89C52RC单片机测量脉冲宽度;

(2)研究分别使用定时计数器0,1的GATE模式和定时计数器2的捕捉功能完成外部

脉冲宽度测量;

(3)通过6位LED显示计数值,时间精确到0.1秒。

并熟悉了解试验箱的应用,提高动手能力。

三、实验场地及仪器、设备和材料:

实验场地:

J11#324

设备:

PC机一台STC89C52RC单片机试验箱一台

教材:

1.MCS51/52单片机原理与实践公茂法黄鹤松等编著北京航空航天大学出版

2.单片机原理及应用张毅刚主编高等教育出版社

3.其它相关的参考资料及实验教材

四、实验内容

1、实验原理

(1)T0工作方式

通过设置TMOD,使其为定时器模式。

在做定时器使用时,将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码用于显示,最后调用显示程序,读取脉冲宽度。

系统原理框图

(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上显示的数据即为要测量的脉冲宽度。

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与键盘相连。

六位数码管显示数码管接线图

 

共阳7段LED显示器显示原理:

引脚

数字显示

g

f

a

b

e

d

c

h

数码显示

0

0

1

1

1

1

1

1

0

C0H

1

0

0

0

1

0

0

1

0

F9H

2

1

0

1

1

1

1

0

0

A4H

3

1

0

1

1

0

1

1

0

B0H

4

1

1

0

1

0

0

1

0

99H

5

1

1

1

0

0

1

1

0

92H

6

1

1

1

0

1

1

1

0

82H

7

0

0

1

1

0

0

1

0

F8H

8

1

1

1

1

1

1

1

0

80H

9

1

1

1

1

0

1

1

0

90H

采用共阳7段LED数码管显示器,P口引入脉冲信号,P2.0至p2.3口作为列扫描输出,P0口输出

段码数据,采用12Mhz晶振,可提高计数的精确度。

3、实验步骤

以流程图的方式表现实验步骤:

T0门控方式的程序流程图

五、实验结果与分析

1、实验现象、数据记录按照流程图所示,按动脉冲按钮,可以看到,显示屏显示出所测脉冲的宽度。

再次按动,可以清楚地观察到所示的示数变化。

每次显示的示数,都根据所按按钮的时间长短,即高电平的脉宽长度。

第一张图为T0工作方式,第二张图为T2捕捉方式。

 

2、对实验现象、数据及观察结果的分析与讨论:

通过对T0、T2不同方式的实验观察,两种实验方式都可以达到计数脉宽的长度的要求,两者各有自己的优势。

实验数据均可以达到所要求的:

6位LED显示计数值,时间精确到0.1秒做实验时遇到很多问题,比如数码管显示不出数值(P口位置插错),小数点显示错位(没有在程序中编对位置),显示只显示第一次多出数值(调用程序返回时出错)等问题。

3、关键点:

在试验箱硬件连接正确的情况下,程序一定要正确,因为所出的问题,大部分都来源于程序出了问题。

所以这次实验要求我们,要明白试验的原理是什么,如何构思。

了解T0、T2工作时的差别在哪,

这样可以方便的结合另一个改动程序。

六、实验结论

通过这次试验,让我明白了T0、T2两种工作方式下如何测量脉宽长度,通过什么原理方式计算出数值。

并提高了自己的动手能力,让自己对单片机的了解,有提升了一个档次。

七、指导老师评语及得分:

 

签名:

年月日

MOVA,34H

RLCA

MOV34H,AMOVA,47HADDCA,47HDAA

MOV47H,AMOVA,46HADDCA,46HDAA

MOV46H,AMOVA,45HADDCA,45HDAA

MOV45H,A

DJNZR7,BCD1

RETUBCD:

MOVA,45H

ANLA,#0F0HSWAPAMOV50H,AMOVA,45H

ANLA,#0FH

MOV51H,A

MOVA,46H

ANLA,#0F0HSWAPAMOV52H,AMOVA,46HANLA,#0FHMOV53H,AMOVA,47H

ANLA,#0F0HSWAPAMOV54H,AMOVA,47HANLA,#0FHMOV55H,ARETDISP:

MOVR0,#55H

MOVR2,#20H

MOVA,#0FFH

附件:

源程序等。

T0门控方式:

ORG0000HLJMPMAINORG000BHLJMPT0_INT

ORG0030HMAIN:

MOVTMOD,#09H

MOVTL0,#0FCH

MOVTH0,#17HMOVR4,#00H

MOVR3,#00H

JBP3.2,$

SETBET0

SETBEA

IOC:

SETBTR0

JNBP3.2,$

MOVR3,#00H

MOVR4,#00H

JBP3.2,$

CLRTR0MOV34H,R4

MOV35H,R3LCALLBCDLCALLUBCDDIS:

LCALLDISP

JBP3.2,IOC

SJMPDIST0_INT:

INCR3

CJNER3,#00H,NEXT

INCR4

NEXT:

MOVTH0,#0FCH

MOVTL0,#17H

RETI

BCD:

MOVR7,#16

CLRA

MOV47h,A

MOV46h,A

MOV45h,A

BCD1:

CLRC

MOVA,35H

RLCA

MOV35H,A

MOVR0,#50H

MOVR2,#01H

ACALLDIP

RET

DIP:

MOVA,R2

MOVP2,A

MOVA,@R0

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVP0,A

ACALLDELAY

RET

DELAY:

MOVR5,#9FH

DJNZR5,$

RET

TABLE:

DB

0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH

END

MOVP0,A

ACALLDIP

MOVR0,#54H

MOVR2,#10H

ACALLDIP

MOVR0,#53H

MOVR2,#08H

ACALLDIP

MOVR0,#52H

MOVR2,#04H

MOVA,R2

MOVP2,A

MOVA,@R0

MOVDPTR,#TABLE

MOVCA,@A+DPTR

ANLA,#7FH

MOVP0,AACALLDELAY

MOVR0,#51H

MOVR2,#02H

ACALLDIP

T2捕捉方式:

T2CONEQU0C8H

TH2EQU0CDH

TL2EQU0CCH

RCAP2HEQU0CBH

RCAP2LEQU0CAH

TR2BIT0CAHORG0000HLJMPMAINORG000BH

LJMPT0_INT

ORG0030H

MAIN:

MOVTMOD,#01H

MOVT2CON,#0FH

JBP1.1,$

STR:

MOVTL0,#17H

MOVTH0,#0FCH

MOVTH2,#00

MOVTL2,#00

MOV50H,#00HMOV51H,50H

CLRP1.0

SETBEASETBET0JNBP1.1,$

SETBTR0SETBTR2JBP1.1,$

CLRTR0

MOV50H,RCAP2L

MOV51H,RCAP2HLCALLZHUANHUANLOOP1:

LCALLDISP

JBP1.1,STR

AJMPLOOP1T0_INT:

MOVTL0,#17H

MOVTH0,#0FCHSETBP1.0

NOP

NOPCLRP1.0

RETIZHUANHUAN:

CLRA

MOV54H,A

MOVA,@R0

SWAPA

MOV38H,51H

MOV37H,50H

MOV34H,#0

MOV35H,#0

MOV53H,A

MOV36H,#0

RET

MOVR7,#16

DISP:

MOVR0,#53H

LOOP2:

CLRC

MOVR2,#01H

MO

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

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

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