|
发表于 2008-12-20 21:31:33
|
显示全部楼层
org 0000h
ajmp main
org 000bh
ajmp timer0
org 30h
main:
mov tmod,#02h
mov tl0,#(256-200) ;时钟频率为12MHZ,200us中断
mov th0,#(256-200)
setb tr0
setb et0
setb ea
mov r0,#0
mov r1,#0
m:ajmp m
timer0:
cpl p1.7 ;计时器在低电平计时,高电平不计时
inc r0
cjne r0,#2,t_ret
clr tr0 ;第二次入中断时关定时器便于观察计时
mov r0,#0
inc r1
cjne r1,#50,t_ret
mov r1,#0
t_ret: reti
end
马老师,再次请教你,我现在用51单片测试,T0工作于模式2方式(自动重载),用proteus仿真,
我主要想理解定时的定时精度问题。就用proteus仿真,用COUNTER TIMER计时,P1.7低电平计时
高电平不计时。发现其间隔很准,但是我不明白每次为是只199us而不是我想设定的200us。如果
中断产生时,指令没有执行完,时间变长,而不是变短。真的不明白,学生不明白,请马老师指
教指教!! |
|