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

📄 honglv.asm

📁 这是一个八路跑马灯的实验在单片机做跑马灯时经常用到 希望能对大家有帮助
💻 ASM
字号:
;********************************************************************************
;*  十字路口红绿灯控制器                                                        *
;* 第一个状态:主干道、支干道均亮红灯5S                            		*
;* 第二个状态:主干道亮绿灯30S、支干道亮红灯                       		*
;* 第三个状态:主干道绿灯闪3次转亮黄灯、支干道亮红灯3S             		*
;* 第四个状态:主干道亮红灯、支干道亮绿灯25S                       		*
;* 第五个状态:主干道亮红灯、支干道绿灯闪3次转亮黄灯3S             		*
;* 返回到第二个状态                                                		*
;********************************************************************************
;*  日期:  2007-3-25                                                            *
;*  版本:  3.0                                                                  *
;*  作者:  深圳学林电子有限公司     专业8051单片机教学站                        *
;*  邮箱: sxj1974@163.com                                                       *
;*  网站: http://www.51c51.com     http://www.8951.com    更多例程请登陆网站   *
;********************************************************************************
;*  硬件:此程序在本公司xlisp系列单片机实验仪运行通过                           *
;********************************************************************************
;* 【版权】 Copyright(C)深圳学林电子有限公司 www.51c51.com  All Rights Reserved *
;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!                  *
;********************************************************************************
          RED_ZHU     BIT  P0.0
          YELLOW_ZHU  BIT  P0.1
          GREEN_ZHU   BIT  P0.2
          RED_ZHI     BIT  P0.4
          YELLOW_ZHI  BIT  P0.5
          GREEN_ZHI   BIT  P0.6
;*********************************************************
          ORG  0000H
          JMP  MAIN
          ORG  0030H
;*********************************************************
MAIN:
          MOV  SP,#60H
          MOV  P0,#0FFH
          MOV  P1,#0FFH
          MOV  P2,#0FFH
          CLR   RED_ZHU             ;第一个状态
          CLR   RED_ZHI
          MOV  R5,#10               ;延时5S
D_TIME1:          
          CALL  DELAY               
          DJNZ  R5,D_TIME1
MAIN1:
          SETB  RED_ZHU             ;第二个状态
          CLR   GREEN_ZHU
          CLR   RED_ZHI
          MOV  R5,#60
D_TIME2:          
          CALL  DELAY               ;延时30S
          DJNZ  R5,D_TIME2          
          MOV  R4,#06H
GREEN_ZHU_FLASH:
          CPL  GREEN_ZHU            ;第三个状态
          CALL  DELAY
          DJNZ  R4,GREEN_ZHU_FLASH
          
          SETB  GREEN_ZHU
          SETB  RED_ZHU
          CLR   YELLOW_ZHU
          MOV  R5,#6                ;延时3S
D_TIME3:          
          CALL  DELAY
          DJNZ  R5,D_TIME3
          CLR   RED_ZHU             ;第四个状态
          SETB  YELLOW_ZHU
          SETB  GREEN_ZHU
          SETB  RED_ZHI
          CLR   GREEN_ZHI
          MOV  R5,#50                ;延时25S
D_TIME4:
          CALL  DELAY
          DJNZ  R5,D_TIME4          
          MOV  R4,#06H
GREEN_ZHI_FLASH:
          CPL  GREEN_ZHI            ;第五个状态
          CALL  DELAY
          DJNZ  R4,GREEN_ZHI_FLASH         
          SETB  GREEN_ZHI
          SETB  RED_ZHI
          CLR   YELLOW_ZHI          
          MOV  R5,#6                ;延时3S
D_TIME5:          
          CALL  DELAY
          DJNZ  R5,D_TIME5
          SETB  YELLOW_ZHI
          JMP   MAIN1
;*********************************************************
; 500MS延时子程序
;*********************************************************
DELAY:
          MOV    R6,#230
DEL1:
          MOV    R7,#250
DEL2:
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          DJNZ   R7,DEL2
          DJNZ   R6,DEL1
          RET          
;*********************************************************
         END

⌨️ 快捷键说明

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