单片机脉冲宽度的测量

2024年11月30日 03:48
有1个网友回答
网友(1):

建议你在INT1引脚上,加一个反相器。这样,可以使用中断功能来完成。程序如下:
ORG 0000H
SJMP MAIN
ORG 000BH
LJMO I_T0
ORG 00013H
LJMP I_INT1
MAIN:
MOV R0,#0
MOV TMOD,#02H
MOV TH0,#0
MOV TL0,#0
SETB IT1
SETB EA
SETB EX1
SETB ET0
SJMP $
I_INT1:
SETB TR0
JNB P3.3,$
MOV 60H,TL0
MOV 61H,R0
MOV R0,#0
MOV TL0,#0
CLR TR0
RETI
I_T0:
CLR TF0
INC R0
RETI
END
最后正脉冲的宽度为:[(61H)×256+(60H)]×T
其中:T为机器周期,如果是6MHz的话就是2uS,如果是12MHz的话就是2uS。
我评经验,你要测量正脉冲宽度是要计算占空比。这个程序,实现该功能没问题。

附带说一句,你这样的问题才30分,少了点哇。呵呵,写程序很辛苦的啦~!:)呵呵