Yui_lu 2023-12-14 16:13 采纳率: 33.3%
浏览 19
已结题

汇编语言C51单片机交通路口红绿灯

利用汇编语言编写交通路口红绿灯,设计交通灯控制系统。模拟交通信号灯控制:一般情况下正常显示,东西-南北交替放行,各方向通行时间为30秒。

  • 写回答

1条回答 默认 最新

  • 小孟多 2023-12-14 16:18
    关注
    
    ORG 0H
    MOV P1, #0FFH  ; 设置P1口为输出口
    MOV P2, #0FFH  ; 设置P2口为输出口
    MOV P3, #0FFH  ; 设置P3口为输出口
    
    LOOP:
    ; 东西方向绿灯亮,南北方向红灯亮
    MOV P1, #00000001B  ; P1.0输出低电平,东西方向绿灯亮
    MOV P2, #11111110B  ; P2.0输出高电平,南北方向红灯亮
    ACALL DELAY       ; 延时30秒
    
    ; 东西方向黄灯亮,南北方向红灯亮
    MOV P1, #00000010B  ; P1.1输出低电平,东西方向黄灯亮
    ACALL DELAY       ; 延时5秒
    
    ; 东西方向红灯亮,南北方向绿灯亮
    MOV P1, #00000100B  ; P1.2输出低电平,东西方向红灯亮
    MOV P2, #11111101B  ; P2.1输出高电平,南北方向绿灯亮
    ACALL DELAY       ; 延时30秒
    
    ; 东西方向红灯亮,南北方向黄灯亮
    MOV P1, #00001000B  ; P1.3输出低电平,东西方向红灯亮
    ACALL DELAY       ; 延时5秒
    
    SJMP LOOP
    
    DELAY:
    MOV R7, #100
    AGAIN: DJNZ R7, AGAIN
    RET
    
    END
    
    

    在上述程序中,使用P1口控制东西方向的灯,P2口控制南北方向的灯。程序的主循环中,按照交通信号灯的顺序设置不同的输出电平,通过延时函数ACALL DELAY控制每个灯亮的时间。

    注意,上述程序中的延时函数DELAY只是一个简单的延时函数,可能不够精确。如果需要更精确的延时,可以使用定时器或外部晶体振荡器来实现。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月29日
  • 已采纳回答 12月21日
  • 创建了问题 12月14日

悬赏问题

  • ¥15 请教合适的模型做回归
  • ¥15 stm32cubemx生成代码后利用printf输出浮点数卡死。
  • ¥15 关于#windows#的问题:我是想本地生成pdf的标签文件然后扔给其他的电脑打印,是修改pdf打印格式打印出来这个pdf给那边打印,还是说有其他办法可以生成文件给人家打印
  • ¥15 dy/dx-y/x=x^2sinx通解 解题过程 用一阶线性非齐次公式
  • ¥15 ERNIE大模型的系统记忆没有生效
  • ¥15 如何用C++在CAD二次开发中,对标注AcDbDimension文字的高度与宽度的获取方法?
  • ¥15 C++检查代码什么问题
  • ¥20 matlab写的上位机UDP速率不到1M
  • ¥100 tomcat应用从Termux上连接不到Linux上的MySQL服务器(相关搜索:服务器)
  • ¥15 flutter 错误RROR:flutter/runtime/dart_vm_initializer.cc(41)