新闻中心

EEPW首页>嵌入式系统>设计应用> 用汇编语言编八路彩灯控制系统

用汇编语言编八路彩灯控制系统

作者: 时间:2016-11-25 来源:网络 收藏
1、D1~D8八个彩灯按规定顺序依次点亮(间隔1秒),最后全亮;

2、按规定顺序依次熄灭(间隔1秒),最后全灭;
3、八个灯同时点亮,保持1秒;
4、八个灯同时熄灭,保持0.5秒;
再将第3、4步重复4遍,最后整个程序再重复N遍。
5、让八个灯依次显示为0100 1001

本文引用地址: //m.amcfsurvey.com/article/201611/321251.htm

问题补充:“规定顺序”就是D1,D2,D3,D4...D8


=================================================================
最佳答案:
;假设1:D1~D8八个彩灯接在P1口,输出低电平发光
;假设2:系统晶振为12MHz
;假设3:N = 5
;程序如下:

ORG 0000H
MOV R3, #5;N=5
LOOP0:
MOV A,#0FFH
MOV P1, #0FFH;开始时全灭
;-------------------------------逐个点亮
MOV R2, #8
LOOP1: CLR C
RLC A
MOV P1, A
CALL DL500MS
DJNZ R2, LOOP1
;-------------------------------逐个熄灭
MOV R2, #8
LOOP2: SETB C
RLC A
MOV P1, A
CALL DL500MS
DJNZ R2, LOOP2
;-------------------------------全亮、全灭交替
MOV R2, #4
LOOP3: MOV P1, #0;全亮
CALL DL500MS
CALL DL500MS;共1s
MOV P1, #255;全灭
CALL DL500MS;0.5s
DJNZ R2, LOOP3
;-------------------------------
DJNZ R3, LOOP0
MOV P1, #01001001B;5、显示为0100 1001
CALL DL500MS
CALL DL500MS;共1s
SJMP 0000H;重新开始N遍
;-------------------------------延时子程序
DL500MS:
MOV R5, #9;1T
DL1:MOV R6, #128;1T
DL2:MOV R7, #215;1T
NOP;1T
DL3:DJNZ R7, DL3;2T2 * 215 =430T
DJNZ R6, DL2;2T[1+1+430+2] * 128 = 55552 T
DJNZ R5, DL1;2T[1+55552+2] * 9 = 499995 T
RET;2T1 + 499995 + 2 = 499998 T
;-------------------------------------
END




评论


技术专区

关闭