51单片机汇编语言流水灯代码
效果图:
方法一: 写出所有亮灯可能,然后循环
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单片机汇编语言流水灯代码相关推荐
- 51单片机循环流水灯源码
51单片机循环流水灯源码 #include <reg52.h> #include <intrins.h> void delay(unsigned char a) {unsign ...
- 51单片机:流水灯蜂鸣器控制
//51单片机:流水灯&蜂鸣器控制 //bglei@nuaa.edu.cn 2022/8/28<流水灯&蜂鸣器控制> #include<reg52.h> #in ...
- 实现单片机控制流水灯代码
可以使用C语言编写单片机控制流水灯代码,步骤如下:1. 控制单片机的IO口,把IO口设置为输出模式:2. 写一个循环,依次控制IO口输出高低电平:3. 将IO口的高低电平与流水灯相连,实现控制流水灯的 ...
- 51单片机入门流水灯
文章目录 前言 一.延时函数 二.流水灯代码 三.代码改进 总结 前言 上次已经实现了LED的点亮了,这篇文章将带大家实现流水灯. 一.延时函数 要想实现流水灯首先就得知道什么是延时函数,延时函数的作 ...
- 51单片机花样流水灯
目录 工作原理 51代码 总结 工作原理 许多单片机上面都有若干LED灯,在控制系统的控制下能够按照设定的顺序和时间点亮和熄灭,形成一定的视觉效果叫做跑马灯.其中若干个LED灯依次点亮,在视觉上感觉灯 ...
- 简单51单片机c语言编程流水灯,51单片机如何实现流水灯?51单片机实现流水灯的三种方法详细分析...
描述 首先,介绍下原理.下图为主控芯片和流水灯模块的原理图.流水灯模块接在单片机的P1口,由原理图可以知道,在P1口给一个低电平即可点亮LED灯.相反,如果要LED灯熄灭,就要把P1口的电平变为高电平 ...
- 51单片机LED流水灯、走马灯的实现
目录 1. 硬件设计 2. 软件设计 流水灯: 跑马灯: 1. 硬件设计 流水灯的原理: 图中主要包括51单片机芯片和流水灯模块,流水灯模块接在了单片机的P2口,500欧电阻是用来保护电路的.由原理图 ...
- 基于51单片机的流水灯设计
三个按键:A按键启动.B按键控制不同流水速度(低中高).C按键 设计思路一(未用中断): 8个LED灯正极解电源,负极接单片机I/O口. 死循环:设置P2口为11111110,使用左移函数,循环七次. ...
- 流水灯c语言程序tm,51单片机LED流水灯课程设计任务书+论文
郑州工程技术学院课程设计 设计题目:LED流水灯设计 学 院:机电与车辆工程学院 专 业:16电气自动化技术专业班 级普招二班 姓 名:王*&刘* 指导教师:李* 日 ...
- 基于51单片机的流水灯循环点亮
原理 基于单片机P1口的流水灯功能 通过在数组中存储每一个灯对应状态的十六进制,然后通过循环遍历和延迟来实现LED的循环点亮. 举例:前四个灯亮,后四个灯灭. 二进制为11110000,转为十六进制为 ...
最新文章
- 第三十三篇、富文本 NSMutableAttributedString
- python request下载-Python使用requests下载文件问题
- 线程事件--day36
- code删除前两个_听说用python来批量删除说说也挺快乐的呢~
- Java 11:新的HTTP客户端API
- 工行高级经理林承军:工行基于 MySQL 构建分布式架构的转型之路
- python中大括号是什么_Python中模块(Module)和包(Package)到底是什么,有什么区别?...
- javaweb实训第一天作业练习
- 构建自己的NSZombie
- 深入理解JVM一JVM内存模型
- MacBook如何设置双面打印
- html打印word文档,HTML文件到WORD文档双面打印三步曲
- 吉林大学计算机网络考研知识点整理
- 搜索引擎的原理以及倒排索引技术
- 零基础学SQL(三、MYSQL环境变量配置及启动)
- 嵌入式单片机高级篇(一)Stm32F103电容触摸按键
- 【C语言】牛顿切线公式计算 a 的立方根 02
- 跨时钟域脉冲信号处理——脉冲同步器
- 试题 基础练习 圆的面积
- 我们不应该歧视任何的编程语言,因为他们都是萌娘