单片机实习做脉冲周期的测定,求高手帮我编程序!

来源:百度知道 编辑:UC知道 时间:2024/06/22 05:50:20
用8051做脉冲周期的测定,请高手帮帮忙忙啊
能给我解释一下吗?

;假设脉冲的周期在99S-0.1ms之间
;12M晶振
;测出的周期精确到0.1ms
;被测脉冲由外部中断0口输入
;所以,结果为小数点前两位,小数点后四位
;如果说周期不在此范围的话,通过修改定时器内程序就行
ORG 0000H
LJMP 0080H

ORG 0003H
LJMP CESHI

ORG 000BH
LJMP ZD10MS

ORG 0030H
VAR1: DS 1
VAR2: DS 1
VAR3: DS 1

VAR4: DS 1 ;所测周期 小数点前两位
VAR5: DS 1 ;所测周期 小数点后两位
VAR6: DS 1 ;所测周期 小数点第三四位

VAR7: DS 1

ORG 0080H
MOV SP, #60H
MOV VAR1, #00H
MOV VAR2, #00H
MOV VAR3, #00H
MOV VAR4, #00H
MOV VAR5, #00H
MOV VAR6, #00H
ACALL SETTIME ;配置定时器常数
LJMP $ ;死循环,等待捕捉脉冲的第一个下降沿并起动定时器0

CESHI:
MOV A, VAR1
MOV VAR4, A
MOV A, VAR2
MOV VAR5, A
MOV A, VAR3
MOV VAR6, A
;由于外部中断有可能是打断定时器0后执行的,所以需要把所有的数据清零,这样,外部中断返回后,定时器无论执行到什么地方,第一次执行完后,VAR1-3的参数仍不变
MOV VAR1, #00H
MOV VAR2, #00H
MOV VAR3, #00H
MOV A, #00H
CLR C
RETI