试试:
用89C51片定时器
fosc=12MHz,
从P1.0口输出500Hz
org 000h
sjmp do ;跳初始化程序
org 000bh
ajmp t1ms ;1毫秒定时中断
do:
mov tmod,#00010001b ;双定时T0,T1
setb et0 ;开中断
setb ea ;开中断
MOV TH0,#252 ;设定T0: 1ms中断一次12MHz
MOV TL0,#24
setb tr0 ;开始定时
sjmp $
;=====================定时器中断==============
t1ms: MOV TH0,#252 ;设定T0: 1ms中断一次12MHz
MOV TL0,#24 ;
;----------------------0.2s定时--
djnz r0,next;0.2s
cpl 00h
mov r0,#200
;--------------------------------
next:
jb 00h,toret
cpl p1.0 ;从P1.0输出周期2ms方波,每1ms翻转
reti
;-----------------------------
toret:
clr p1.0 ;电平输出
reti ;中断返回
end