AT89S51单片机

来源:百度知道 编辑:UC知道 时间:2024/05/21 13:58:49
用AT89S51产生2秒钟的定时,每当2秒定时到来时,更换指示灯闪烁,每个指示闪烁的频率为0.2秒,也就是说,开始L1指示灯以0.2秒的速率闪烁,当2秒定时到来之后,L2开始以0.2秒的速率闪烁,共有L1-L4四灯如此循环下去。0.2秒的闪烁速率由定时/计数器T0来完成。单片机晶振频率为12MHz。劳驾把程序写出来...谢过了..

ORG 0000H
CONT:MOV R2,#04H;循环灯数
MOV R4,#100
MOV A,#OFEH
NEXT:MOV P1,A
D: ACALL DELAY
DJNZ R4,D
RL A
MOV R5,#0AH
SHAN:CPL P1
ACALL DELAY
DJNZ R5,SHAN
DJNZ R2,NEXT
SJMP CONT
DELAY:MOV R3,#04H ;0.2秒延时
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0.#OBH
SETB TR0
L1: JBC TF0,L2
SJMP L1
L2: MOV TH0,#3CH
MOV TL0,#OBH
DJNZ R3,LP1
RET
END