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

📄 he27.asm

📁 51系列单片机的汇编程序包
💻 ASM
字号:
;**********************************************
; MCS-51系列单片机仿真实验系统 硬件实验项目
; 外部中断处理(急救车与交通灯实验)
;**********************************************

Flash   equ  0          ;LED状态
STOP    equ  1

SY      equ  P1.0       ;南北黄灯
SG      equ  P1.1       ;南北绿灯
SR      equ  P1.2       ;南北红灯

EY      equ  P1.3       ;东西黄灯
EG      equ  P1.4       ;东西绿灯
ER      equ  P1.5       ;东西红灯

        org  0
        ljmp Start

        org  3
        setb STOP       ;南北、东西均红灯
        reti

Start:
        mov  SP,#70
        mov  TCON,#01h  ;下降沿, IT0
        mov  IE,#81h    ;EA允许, EX0

        clr  SR         ;南北、东西均红灯
        setb SY
        setb SG

        clr  ER
        setb EY
        setb EG

        clr  STOP

Loop:
        jb   STOP,AllRed

        clr  SR         ;南北红灯,东西绿灯
        setb SY
        setb SG

        setb ER
        setb EY
        clr  EG

        mov  a,#20
        call Delay

        jb   STOP,AllRed
        clr  SR         ;南北红灯, 东西黄灯闪
        setb SY
        setb SG

        setb ER
        setb EY
        setb EG

        clr  Flash
        mov  r7,#9

Loop1:
        mov  c,Flash
        mov  EY,c
        mov  a,#1
        call Delay
        cpl  Flash
        djnz r7,Loop1

        jb   STOP,AllRed
        setb SR         ;南北绿灯,东西红灯
        setb SY
        clr  SG

        clr  ER
        setb EY
        setb EG

        mov  a,#20
        call Delay

        jb   STOP,AllRed
        setb SR         ;东西红灯,南北黄灯闪
        setb SY
        setb SG

        clr  ER
        setb EY
        setb EG

        clr  Flash
        mov  r7,#9

Loop2:
        mov  c,Flash
        mov  SY,c
        mov  a,#1
        call Delay
        cpl  Flash
        djnz r7,Loop2

        ljmp Loop

AllRed:                 ;两个方向交通信号灯全红
        clr  SR
        setb SY
        setb SG

        clr  ER
        setb EY
        setb EG

        clr  STOP
        mov  a,#10
        call Delay
        ljmp Loop

Delay:                  ;延时子程序
        mov  r1,#80H
        mov  r0,#0
DelayLoop:
        jb   STOP,ExitDelay
        djnz r0,DelayLoop
        djnz r1,DelayLoop
        djnz ACC,Delay
ExitDelay:
        ret

        end

⌨️ 快捷键说明

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