这样做:
把那个要测量的脉冲反相,接int0, 编程设置int0电平触发方式。
程序结构:
(例如使用timer0)
在主程序中初始化timer0、int0等,清TL0、TH0,关timer0,开中断int0
.
.
.
int0中断服务程序:
setb tr0 ;开始计时
jnb $ ;等待脉冲由低电平变高
clr tr0 ;关定时器0
mov 20h,tl0
mov 21h,th0
mov tl0,#0 ;清零定时器0,为下次测试做准备
mov th0,#0
reti ;中断返回
此时20h和21h中已经分别装有这个正脉冲(反相后为对应负脉冲)的低八位和高八位计时值,按照你的时钟周期可以计算出脉冲宽度。为保证测量正确进行,进入int0中断服务程序后一定要关闭所有中断。
发表时间:2004年4月9日15:10:33