PLC解密网-PLC培训学习-工控自动化人才技术交流

超级管理员

453

帖子

1378

回复

3116

积分

楼主
发表于 2020-10-18 16:20:24 | 查看: 2176 | 回复: 0

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

问题补充:“规定顺序”就是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     ;2T   2 * 215 = 430 T
       DJNZ R6, DL2     ;2T   [1+1+430+2] * 128 = 55552 T
       DJNZ R5, DL1     ;2T   [1+55552+2] * 9 = 499995 T
       RET              ;2T   1 + 499995 + 2 = 499998 T
;-------------------------------------
END



您需要登录后才可以回帖 登录 | 立即注册

技术支持 KZYPLC V2.1 © 2020-2027

欢迎光临昆山中宇工控PLC论坛!您是第 10335103 位访问者, 日访问量: 1172 总访问量: 22668044,当前 2024-11-24 01:13:43 在线人数:42

ICP备案证书号: 苏ICP备14003016-2号