51单片机测变周期脉冲信号的简便方法

时间:2012-10-30来源:网络

51单片机测变周期脉冲信号的简便方法
定时器Tl中断服务程序清单如下:
INT1:CLR TR1 ;关计数器1
PUSH ACC;ACC入栈
PUSH 00H;R0入栈
CLR C;清零进位标志
MOV A,TL1;计数值低8位→累加器
ADD A,#23H;计数器值+中断执行时间32us(12MHz晶振)+
;最小中断响应时间3-脉冲周期
MOV R0,A ;低8位暂存R0
MOV A,TH1
ADDC A,#00H
MOVX @DPTR,A;脉冲周期高8位→@DPTR指向的RAM单元
INC DPTR;指向下一RAM单元
MOV A,R0
MOVX @DPTR,A;脉冲周期低8位→DPTR指向的RAM单元
INC DPTR
INC R1;脉冲周期个数加一
MOV TH1,#00H;清零计数器1
MOV TL1,#00H
POP 00H
POP ACC
SETB TR1;重新启动计数
RETI;中断返回

该中断服务程序能采样的最小脉冲周期为32us,若去掉该程序中的现场保护和将计数值变为脉冲周期放在采样后进行,则可进一步减小能采样的脉冲周期。能采样的最大脉冲周期为65535us(12MHz晶振时),若大于该值,则用户对程序稍加修改即可,因此,实际上对最大周期可不加限制。设对脉冲信号采样100个周期,采样值存于50H开始的外部RAM中,则主程序如下:

MAIN:
PUSH TMOD ;专用寄存器TMOD TCON IE入栈
PUSH TCON
PUSH IE
MOV THI,#00H ;清零计数器
MOV TL1,#00H
MOV TMOD.10H;计数器1工作方式1
SETB EA ;允许中断
SETB EX1 ;外部中断1
SETB IT1 ;INT1负跳变触发中断
MOV DPTR,#50H;存脉冲周期的RAM首地址
MOV R1,#00H ;R1一控制采样周期个散
SETB TR1 ;计数器1开始计时
CJNE R1,#64H,$;等待100个周期采样结束
CLR TR1 ;关计数器
POP IE
POP TCON
POP TMOD

以上采样的第一脉冲周期不准,应在数据处理时丢掉,也可在中断服务程序中加判断语句自动丢掉。由以上可以看出,该方法无额外硬件,软件简明,能测量的脉冲周期范围大,但不能测得脉冲信号的第一个周期。

1 2

关键词: 51单片机 周期脉冲信号 脉冲宽度

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版