求大神写一个AT89S51单片机定时汇编程序
发布网友
发布时间:2023-12-20 22:28
我来回答
共2个回答
热心网友
时间:2024-08-15 23:48
LED1 bit P1.0
ORG 0000H
CLR LED1 ;低电平发光
CALL DL1S
SETB LED1 ;熄灭
CALL DL1S
CALL DL1S
SJMP 0000H
DL1S:
;略,因为题目没有提供晶振频率
RET
END追问晶振频率是12MHZ
追答DL1S:
MOV TMOD, #01H
SETB TR0
MOV R2, #20
LP:
MOV TL0, #0B0H ;定时50ms(fosc = 12MHz)
MOV TH0, #3CH
JNB TF0, $
CLR TF0
DJNZ R2, LP
RET
END
热心网友
时间:2024-08-15 23:48
LED EQU P1.0 ;定义LED灯管脚
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H ;定时器0设为模式1
MOV TH0,#HIGH(65536-50000) ;赋初值50毫秒中断一次
MOV TL0,#LOW(65536-50000)
SETB TR0 ;启动定时器0
SETB ET0 ;开定时器0中断
SETB EA ;开启总中断
MOV R2,#60 ;3秒计数值
SJMP $
T0ISR:
CLR TR0 ;暂时关闭定时器0
MOV TH0,#HIGH(65536-50000) ;重赋值
MOV TL0,#LOW(65536-50000)
SETB TR0 ;开启定时器0
DJNZ R2,T0E ;3秒未到转T0E
MOV R2,#60 ;3秒到重复3秒计数初值
CPL LED ;LED灯亮灭转换
T0E:
RETI
END