⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 红绿灯.asm

📁 此程序为红绿灯程序
💻 ASM
字号:
     ORG  0000H
   LJMP MAIN
     
;     ORG  0003H  ;
;   LJMP ALLRED
     ORG  000BH
   LJMP T0ZHIYI
     ORG  0013H
   LJMP ALLRED

     ORG 0030H
MAIN:
START:
;----------  模式  2   -----------------
;------     0绿黄红|0 绿黄红   ----
RGY:     CLR   IT1 ;INT0电平触发
         SETB   PX1 ;INT0高优先级
         SETB   EX1 ;开INT0中断
         SETB   EA  ;开中断
;------------------------------------
WORK:    MOV    P0,   #00010100B ; 红--绿
         MOV    P2,   #00H
;--------------------------------------
         MOV    R5,   #5
LOOP21:  LCALL  DELAY1S

;         MOV    P3,   #0FFH ;读P3前,先置1
;         JNB    P3.0, KEY ;若p3.0有按键,则跳KEY
         DJNZ   R5,   LOOP21

;---------------------------------------
         MOV    R5,   #4  ;黄闪
LOOP22:  MOV    P0,   #00110110B;红黄--绿黄
         LCALL  DELAY1S

;         MOV    P3,   #0FFH ;读P3前,先置1
;         JNB    P3.0, KEY ;若p3.0有按键,则跳KEY

         MOV    P0,   #00010100B;红--绿
         LCALL  DELAY1S

;         MOV    P3,   #0FFH ;读P3前,先置1
;         JNB    P3.0, KEY ;若p3.0有按键,则跳KEY
         DJNZ   R5,   LOOP22
;-----------------------------------
         MOV    R5,   #5
LOOP23:  MOV    P0,   #01000001B  ;绿--红
         LCALL  DELAY1S
;         MOV    P3,   #0FFH ;读P3前,先置1
;         JNB    P3.0, KEY1 ;若p3.0有按键,则跳KEY
         DJNZ   R5,   LOOP23
;-------------------------------------
         MOV    R5,   #4  ;黄闪
LOOP24:   
         MOV    P0,   #01100011B  ;绿黄--黄红
         LCALL  DELAY1S
         MOV    P0,   #01000001B ;绿--红 
         LCALL  DELAY1S
;         MOV    P3,   #0FFH ;读P3前,先置1
;         JNB    P3.0, KEY1 ;若p3.0有按键,则跳KEY
         DJNZ   R5,   LOOP24

   LJMP RGY

;**********  TO延时1S  *********
DELAY1S:
   MOV   R3,  #10  ;#20   ;1T
LOOP1S:
   LCALL KAIT0            ;2T
CESHI1S:
   CJNE  R6,  #1, CESHI1S ;2T
   MOV   R6,  #0          ;1T
   DJNZ  R3,  LOOP1S      ;2T
   RET                    ;2T
;*********  开定时器T0  **********
KAIT0:
   MOV  TMOD, #11H           ;1T
   MOV  TL0,  #0CH ;#0AH     ;1T
   MOV  TH0,  #4CH           ;1T
   SETB ET0                  ;1T
   SETB EA                   ;1T
   SETB TR0                  ;1T
   RET                       ;2T
;*******  计时器T0溢出中断**********
T0ZHIYI:
   CLR   ET0
   MOV   R6,  #1;
   SETB  ET0
   RETI

;******   INT0-全红中断 *******
ALLRED:CLR   EA
       PUSH  PSW
       PUSH  ACC
       ORL   PSW, #08H

       MOV   P0,  #00010001B
;       LCALL DELAY1S
       LCALL DELAYR
       POP  ACC
       POP  PSW
       RETI
;********  全红的延时  **********
DELAYR:MOV  R3, #100   ;10 中断延时  1 s
LOOPR3:MOV  R4, #200
LOOPR2:MOV  R2, #250
LOOPR1:DJNZ R2, LOOPR1
       DJNZ R4, LOOPR2
       DJNZ R3, LOOPR3
       RET
;*********************
END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -