1711259732207
ORG 0000H
LJMP MAIN ; 跳转到主程序
ORG 000BH
LJMP ITOP
ORG 0100H
MAIN:
MOV SP, #60H ; 设置堆栈指针
; 初始化P1.0为低电平(或根据需要设为高电平)
CLR P1.0 ; 例如,这里清零P1.0表示开始时它是关闭的
MAIN_LOOP:
MOV R0, #20 ; 设置循环计数为20次,因为1秒需要调用C50MS 20次
DELAY_LOOP:
ACALL C50MS ; 调用延时子程序,每次延时50ms
DJNZ R0, DELAY_LOOP ;
CPL P1.0 ; 每当完成1秒的延时,反转P1.0的状态
SJMP MAIN_LOOP ; 跳回主循环,重复过程
C50MS: ; 50ms延时子程序
MOV TL0, #0B0H
MOV TH0, #3CH
MOV TMOD, #01H ; 设置定时器0为模式1(16位计数器)
SETB TR0 ; 启动定时器0
WAIT_TIMER:
JNB TF0, WAIT_TIMER ; 等待定时器溢出
CLR TR0 ;
CLR TF0
RET ;
ITOP:
RETI
END