单片机 流水灯程序 汇编语言

ORG 0000H

LJMP START

ORG 0003H ; 外部中断1

LJMP INT

ORG 100H

START:

mov TMOD ,#10H ; 定时器1模式1

SETB TR1 ; 启动定时器1

MOV A,#0FEH

SETB IT0 ; 外部中断0下降沿触发

SETB EX0 ; 外部中断0允许

SETB EA ; 开总允许

MOV R4,#25

LOOP:

MOV TL1,#0E0H

MOV TH1,#0B1H ; 定时器赋初值,定时20毫秒

JNB TF1,$ ; 查询式,T1没有溢出就等待

CLR TF1

DJNZ R4,LOOP ;25个20毫秒的中断后,即0.5秒后点亮下一个灯 RR A

MOV P1,A

MOV R4,#25

SJMP LOOP

INT: ; 中断程序,

PUSH ACC ; 累加器A 入栈

CLR TR1

MOV A,#0ADH ; 灯全亮

MOV P1,A

LCALL DELAY1S

MOV A,#0DAH ; 灯全亮

MOV P1,A

LCALL DELAY1S

MOV A,#0ADH ; 灯全亮

MOV P1,A

LCALL DELAY1S

POP ACC ; 累加器A 出栈

MOV P1,A

SETB TR1

RETI

DELAY1S:MOV R1,#100

DELAY:MOV R2,#100

DEL1: MOV R3,#100

DEL2: DJNZ R3,DEL2

DJNZ R2,DEL1

DJNZ R1,DELAY RET END


© 2024 实用范文网 | 联系我们: webmaster# 6400.net.cn