如何用汇编语言写一个循环彩灯的程序,采用定时器方式1工作

如何用汇编语言写一个循环彩灯的程序,采用定时器方式1工作
由89C51内部定时器1按方式1工作,即作为16位定时器使用,每0.05秒钟T1溢出中断一次.P1口的P1.P1.7分别接发光二极管的L1~L8.要求编写程序模拟一循环彩灯.彩灯变化花样可自行设计.例程给出的变化花样为:①L1、L2、…L8依次点亮;②L1、L2、…L8依次熄灭;③L1、L2、…L8全亮、全灭.各时序间隔为0.5秒.让发光二极管按以上规律循环显示下去.
sanlangqhz 1年前 已收到1个回答 举报

zhengyanhua3 幼苗

共回答了18个问题采纳率:94.4% 举报

ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
SETB ET0
SETB EA
MOV R2,#0
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
MOV A,R0
CJNE A,#18,T001
MOV R0,#0
T001:
MOV DPTR,#LEDTAB
MOVC A,@A+DPTR
MOV P1,A
INC R0
RETI
LEDTAB:
DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,00H
DB 80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH
DB 00H,0FFH
END

1年前 追问

9

sanlangqhz 举报

非常感谢!如果不用查表的话,把灯亮灭编在定时器中,该怎么编呢?急急急!!!!!!!!!!!!!!!!!!

举报 zhengyanhua3

ORG 0000H LJMP MAIN ORG 000BH LJMP T0ISR ORG 0030H MAIN: MOV TMOD,#01H MOV TH0,#HIGH(65536-50000) MOV TL0,#LOW(65536-50000) SETB TR0 SETB ET0 SETB EA MOV R2,#0 MOV R3,#0FEH SJMP $ T0ISR: CLR TR0 MOV TH0,#HIGH(65536-50000) MOV TL0,#LOW(65536-50000) SETB TR0 MOV A,R0 CJNE A,#8,T01 T01: JNC T02 MOV A,R3 CLR C RLC A MOV R3,A MOV P1,A RETI T02: CJNE A,#16,T03 T03: JNC T04 SETB C MOV A,R3 RRC A MOV R3,A MOV P1,A RETI T04: CJNE A,#17,T05 MOV P1,#0FFH MOV R3,#0FEH RETI T05: MOV P1,#00H RETI END
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 2.281 s. - webmaster@yulucn.com