循环彩灯控制系统
- 提问者网友:聂風
- 2021-04-24 03:44
- 五星知识达人网友:撞了怀
- 2021-04-24 04:03
AT89-S51单片机控制8个二极管循环亮的程序(循环彩灯)
以下程序均能直接使用的,有些程序在编辑和语法都没错误却不能直接使用大是都少了MOV P1,A(将显示码由P1口输出)。如没缺这一条的在检查其他方面的缺陷比如有的还缺MOV A,#0FEH。
程序:OUTPORT EQU 0CFBOH
CSEG AT 0000H
LJMP START
CSEG AT 401BH
LJMP INT
CSEG AT 4100H
START:MOV A,01H ;首显示码
MOV R1,#03H ;03是偏移量
MOV R0, #05H ;05是计数值
MOV TMOD,#10H;计数器的置为方式1
MOV TL1,#0AFH
MOV TH1,#03CH
ORL IE,#88H ;CPU中断开放标志位和定时器1溢出中断允许进位置位
SETB TR1 ;开始计数
LOOP1:CJNE R0,#00H,DISP
MOV R0,#5
INC R1
CJNE R1,#31H,LOOP2
MOV R1,03H
LOOP2:MOV A,R1
MOVC A,@A+PC
JMP DISP
DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,0FEH,0FCH
DB 0F8H,0F0H,0E0H,0C0H,80H,00H,0FFH,00H,0FEH
DB 0FDH,0FBH,0F7H,0EFH,0DFH,07FH,0BFH,0DFH
DB 0EFH,0E7H,0FBH,0FDH,0FEH,00H,0FFH,00H,0FFH
DISP:MOV DPTR,#OUTPORT
MOVX @DPT,A
MOV P1,A ;将显示码由P1口输出
JMP LOOP1
INT :CLR TRI
DEC R0
MOV TL1,#0AFH
MOV TH1,#03CH
SETB TRI
RET
NOP
END
循环彩灯小程序
CSEG AT 0000H
LJMP START
START:MOV A,#0FEH
LOOP: RR A
MOV P1,A
LCALL DELAY
JMP LOOP
DELAY:MOV R1,#127
DEL1: MOV R2,#200
DEL2: DJNZ R2,DEL2
DJNZ R1,DEL1
RET
NOP
END