qq_37818911 2021-05-27 20:34 采纳率: 0%
浏览 18

流水灯报警编程内容和仿真

 

  • 写回答

1条回答 默认 最新

  • 无限虚空 2024-05-27 22:34
    关注
    
    ORG 0H
        CLR P1.0  ;P1.0设为输出,初始为低电平
        CLR P1.1  ;P1.1设为输出,初始为低电平
        CLR P1.2  ;P1.2设为输出,初始为低电平
        SETB P3.5  ;P3.5设为输出,用来控制蜂鸣器
    
        MOV R0,#0FH  ;R0初始值为00001111B,控制流水灯流动的方向
    AGAIN:
        MOV P1,R0    ;把R0的值赋给P1口,控制流水灯亮的位置
        CALL DELAY   ;调用延时函数
        CPL P3.5     ;蜂鸣器引脚取反,让蜂鸣器发出声音
        CALL DELAY   ;调用延时函数
        CPL P3.5     ;蜂鸣器引脚再次取反,让蜂鸣器停止发出声音
        DJNZ R0,AGAIN   ;循环控制流水灯流动的方向
    
    DELAY:
        MOV R1,#250  ;R1初值为250
    L2:
        DJNZ R1,L2   ;R1自减,直到为0退出
        RET
    
    END
    

    在上述代码中,DELAY函数是一个简单的延时函数,用于控制流水灯的速度和蜂鸣器声音的频率。实现方法是通过循环次数来控制延时时间。在主程序中,先将三个灯引脚和蜂鸣器引脚设为输出,并且初始化状态。然后进入一个死循环,循环中先将三个灯引脚按照指定方向亮起来,并且调用延时函数实现时间间隔。接着让蜂鸣器发出声音,再次调用延时函数实现时间间隔后停止发声。最后通过循环控制流水灯流动的方向。

    评论

报告相同问题?