效果图:

方法一: 写出所有亮灯可能,然后循环

MAIN:MOV P2, #11111110BLCALL DELAYMOV P2, #11111101BLCALL DELAYMOV P2, #11111011BLCALL DELAYMOV P2, #11110111BLCALL DELAYMOV P2, #11101111BLCALL DELAYMOV P2, #11011111BLCALL DELAYMOV P2, #10111111BLCALL DELAYMOV P2, #01111111BCALL DELAY
LJMP MAINDELAY:
MOV R7, #3      ;@11.0592MHz
D1:
PUSH 30H
PUSH 31H
MOV 30H, #180
MOV 31H, #68
NEXT:
DJNZ 31H, NEXT
DJNZ 30H, NEXT
POP 31H
POP 30H
DJNZ R7, D1
RET
END

这种方式比较好理解一些,修改R7的立即数可以更改流水灯的快慢

方法二:用一个变量接收数据,然后左移,反复循环即可

MOV A,#0FEH
MAIN:   MOV   P2,ALCALL   DELAYRL     A                ;将A进行左移SJMP   MAINDELAY:
MOV R7, #3
D1:PUSH 30HPUSH 31HMOV 30H, #180MOV 31H, #68
NEXT:DJNZ 31H, NEXTDJNZ 30H, NEXTPOP 31HPOP 30HDJNZ R7, D1
RET
END

相比之下方法二会更加灵活一些,修改变量A的值可以更改流水灯模式,修改R7的值可以控制流水灯快慢

方法三:数组点灯。将所有的亮灯可能转成十六进制放在数组里面,然后依次读取数组里面的十六进制数,将读取到数赋值给P2引脚。

MAIN:  MOV R1,#8         ;等下用来记录循环了次数,因为有个灯,所以赋值为8MOV R2,#00H          ;用来存储偏移量MOV DPTR,#TAB       ;将数组的首地址用DPTR来记录UP: MOV   A,R2          ;将当前偏移量赋值给变量AMOVC  A,@A+DPTR      ;MOVC A,@A+DPTR是读取地址为A+DPTR存储单元的内容。MOV   P2,A         ;读取到的数组内容赋值给P2引脚LCALL DELAY         ;LCALL的意思是调用,调用DELAYMSINC   R2           ;inc代表加一(偏移量加一)DJNZ  R1,UP         ;将R7减一,非0则跳转到UP,为0则执行下一句(可以执行8次)SJMP  MAIN          ;SJMP是跳转的意思,跳转到UP0的位置DELAY:MOV  R7, #3          ;#3代表延时三百毫秒(晶振是11.0592HZ)
D1:PUSH 30HPUSH 31HMOV 30H, #180MOV 31H, #68
NEXT:DJNZ 31H, NEXTDJNZ 30H, NEXTPOP 31HPOP 30HDJNZ R7, D1
RET
TAB:  DB   0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH   ;定义了一个数组END

注:数组一般放在程序的末尾,而不是像c语言那样放在程序的开头。

51单片机汇编语言流水灯代码相关推荐

  1. 51单片机循环流水灯源码

    51单片机循环流水灯源码 #include <reg52.h> #include <intrins.h> void delay(unsigned char a) {unsign ...

  2. 51单片机:流水灯蜂鸣器控制

    //51单片机:流水灯&蜂鸣器控制 //bglei@nuaa.edu.cn 2022/8/28<流水灯&蜂鸣器控制> #include<reg52.h> #in ...

  3. 实现单片机控制流水灯代码

    可以使用C语言编写单片机控制流水灯代码,步骤如下:1. 控制单片机的IO口,把IO口设置为输出模式:2. 写一个循环,依次控制IO口输出高低电平:3. 将IO口的高低电平与流水灯相连,实现控制流水灯的 ...

  4. 51单片机入门流水灯

    文章目录 前言 一.延时函数 二.流水灯代码 三.代码改进 总结 前言 上次已经实现了LED的点亮了,这篇文章将带大家实现流水灯. 一.延时函数 要想实现流水灯首先就得知道什么是延时函数,延时函数的作 ...

  5. 51单片机花样流水灯

    目录 工作原理 51代码 总结 工作原理 许多单片机上面都有若干LED灯,在控制系统的控制下能够按照设定的顺序和时间点亮和熄灭,形成一定的视觉效果叫做跑马灯.其中若干个LED灯依次点亮,在视觉上感觉灯 ...

  6. 简单51单片机c语言编程流水灯,51单片机如何实现流水灯?51单片机实现流水灯的三种方法详细分析...

    描述 首先,介绍下原理.下图为主控芯片和流水灯模块的原理图.流水灯模块接在单片机的P1口,由原理图可以知道,在P1口给一个低电平即可点亮LED灯.相反,如果要LED灯熄灭,就要把P1口的电平变为高电平 ...

  7. 51单片机LED流水灯、走马灯的实现

    目录 1. 硬件设计 2. 软件设计 流水灯: 跑马灯: 1. 硬件设计 流水灯的原理: 图中主要包括51单片机芯片和流水灯模块,流水灯模块接在了单片机的P2口,500欧电阻是用来保护电路的.由原理图 ...

  8. 基于51单片机的流水灯设计

    三个按键:A按键启动.B按键控制不同流水速度(低中高).C按键 设计思路一(未用中断): 8个LED灯正极解电源,负极接单片机I/O口. 死循环:设置P2口为11111110,使用左移函数,循环七次. ...

  9. 流水灯c语言程序tm,51单片机LED流水灯课程设计任务书+论文

    郑州工程技术学院课程设计 设计题目:LED流水灯设计 学    院:机电与车辆工程学院 专    业:16电气自动化技术专业班 级普招二班 姓    名:王*&刘* 指导教师:李* 日    ...

  10. 基于51单片机的流水灯循环点亮

    原理 基于单片机P1口的流水灯功能 通过在数组中存储每一个灯对应状态的十六进制,然后通过循环遍历和延迟来实现LED的循环点亮. 举例:前四个灯亮,后四个灯灭. 二进制为11110000,转为十六进制为 ...

最新文章

  1. 第三十三篇、富文本 NSMutableAttributedString
  2. python request下载-Python使用requests下载文件问题
  3. 线程事件--day36
  4. code删除前两个_听说用python来批量删除说说也挺快乐的呢~
  5. Java 11:新的HTTP客户端API
  6. 工行高级经理林承军:工行基于 MySQL 构建分布式架构的转型之路
  7. python中大括号是什么_Python中模块(Module)和包(Package)到底是什么,有什么区别?...
  8. javaweb实训第一天作业练习
  9. 构建自己的NSZombie
  10. 深入理解JVM一JVM内存模型
  11. MacBook如何设置双面打印
  12. html打印word文档,HTML文件到WORD文档双面打印三步曲
  13. 吉林大学计算机网络考研知识点整理
  14. 搜索引擎的原理以及倒排索引技术
  15. 零基础学SQL(三、MYSQL环境变量配置及启动)
  16. 嵌入式单片机高级篇(一)Stm32F103电容触摸按键
  17. 【C语言】牛顿切线公式计算 a 的立方根 02
  18. 跨时钟域脉冲信号处理——脉冲同步器
  19. 试题 基础练习 圆的面积
  20. 我们不应该歧视任何的编程语言,因为他们都是萌娘

热门文章

  1. linux 备份配置文件
  2. ubuntu 常用命令锦集
  3. access mysql odbc驱动程序_access odbc驱动程序
  4. CSDN积分赚取方法
  5. 汇编语言 王爽 第四版 第一章 检测点1.1
  6. java-jdk8下载及安装
  7. Spring boot 集成mybatis 教程
  8. android医疗管理软件,智能医疗信息管理系统(医院版)
  9. 台达plc编程支持c语言吗,台达plc编程软件有哪些
  10. 中文核心期刊是什么?