当前位置:网站首页 > 技术博客 > 正文

51单片机流水灯程序通过位移

好的,我可以为你解答这个问题。

下面是在 51 单片机上使用汇编语言

实现

按键控制

流水灯 左移 右移

的代码:

 ; 定义端口、变量等 ORG 0H MOV P1, #0H ; 设置 P1 端口初始值为 0 MOV P2, #0H ; 设置 P2 端口初始值为 0 MOV A, #0H ; 定义 A 寄存器初始值为 0 MOV B, #0H ; 定义 B 寄存器初始值为 0 MOV C, #0H ; 定义 C 寄存器初始值为 0 MOV D, #0H ; 定义 D 寄存器初始值为 0  ; 程序 入口 START: MOV A, P3 ; 读取 P3 端口的值 ANL A, #0FH ; 屏蔽高 4 位,只保留低 4 位 CJNE A, #01H, LEFT ; 如果值为 1,跳转到 LEFT 标签 CJNE A, #02H, RIGHT ; 如果值为 2,跳转到 RIGHT 标签 SJMP START ; 否则一直循环  ; 循环 左移 流水灯 LEFT: MOV R7, #08H ; 定义循环次数为 8 次 MOV A, #01H ; 定义 流水灯 初始值为 00000001B LEFT_LOOP: MOV P1, A ; 将 流水灯 的值输出到 P1 端口 RL A ; 左移 一位 DJNZ R7, LEFT_LOOP ; 循环 8 次 SJMP START ; 跳转到 程序 入口  ; 循环 右移 流水灯 RIGHT: MOV R7, #08H ; 定义循环次数为 8 次 MOV A, #80H ; 定义 流水灯 初始值为 B RIGHT_LOOP: MOV P1, A ; 将 流水灯 的值输出到 P1 端口 RR A ; 右移 一位 DJNZ R7, RIGHT_LOOP ; 循环 8 次 SJMP START ; 跳转到 程序 入口 

以上代码

实现

了从 P3 端口读取按键值,如果按键为 1,则循环

左移 流水灯

;如果按键为 2,则循环

右移 流水灯

  • 上一篇: 服务器硬件介绍
  • 下一篇: iconv_open函数
  • 版权声明


    相关文章:

  • 服务器硬件介绍2025-03-29 19:01:01
  • 预测模型有哪些?2025-03-29 19:01:01
  • 爬虫用什么软件2025-03-29 19:01:01
  • 137 138端口2025-03-29 19:01:01
  • 判断循环队列队满的条件2025-03-29 19:01:01
  • iconv_open函数2025-03-29 19:01:01
  • verilog 移位运算2025-03-29 19:01:01
  • 网卡做bond02025-03-29 19:01:01
  • clash全局模式2025-03-29 19:01:01
  • 网页爬虫系统有哪些2025-03-29 19:01:01