📄 honglv.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 + -