本帖最后由 10jqka 于 2018-3-22 17:26 编辑
请看星号标注
CKCON equ 8Eh
CKDIV equ 95h
IPH equ 0xB7
org 0000H
ljmp START ;4
org 000Bh
ljmp T0_interruption ;4
;T0中断服务程序
ORG 0100h
T0_interruption:
setb TF0 ;+4 clock cycles
reti ;+5 clock cycles
;主程序
START:
;空余
;延时准备
T0_DelayInit:
anl CKCON,#00001000b ;4,使用系统频率
anl CKDIV,#00000000b ;4,系统不除频
anl IP,#00000010b ;4,1设置T0中断优先级为最高
anl IPH,#00000010b ;4,1
anl TMOD,#00000001b ;4,设置T0为16为计时器模式
mov TL0,#0xff ;3,
mov TH0,#0xff ;3,
setb ET0 ;4,使能TF0中断
;空余
setb EA ;+4,使能全部中断
lcall T0_Delay1ms ;+4,
;延时执行
T0_Delay1ms:
setb TR0 ;+4,4*1/(16M)
loop:
jnb TF0,loop ;+5,(0x10000-TH&TL)*5*1/(16M)
ret/********************************
在keil调试时不结束,只有强退,为什么?,*/
end
|