早教吧 育儿知识 作业答案 考试题库 百科 知识分享

如何用汇编语言写一个循环彩灯的程序,采用定时器方式1工作由89C51内部定时器1按方式1工作,即作为16位定时器使用,每0.05秒钟T1溢出中断一次.P1口的P1.P1.7分别接发光二极管的L1~L8.要求编写程

题目详情
如何用汇编语言写一个循环彩灯的程序,采用定时器方式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秒.让发光二极管按以上规律循环显示下去.
▼优质解答
答案和解析
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