51单片机第1讲:点亮LED

我的单片机LED灯的端口为P20-P27

1 点亮LED

复制代码
;MOV A,#0FEH ;1111 1110
;MOV P2,A

;CLR P2.0 ;把P2.0清零,相当于输出低电平
;CLR P2.6

ORG 0000H ; 程序开始的起始位置
MOV P2,#0AAH
JMP $  ;跳到当前位置
END

ORG 0000H 
MAIN:
	MOV P2,#0AAH
	RET
JMP MAIN
END

2 LED灯闪烁

复制代码
ORG 0000H 
MAIN:
	MOV P2,#0AAH
	CALL DALAY
	MOV P2,#0FFH
	CALL DALAY
	JMP MAIN

;DALAY是延迟函数,会延迟一定的时间
DALAY: MOV R5,#25
D1: MOV R6,#100
D2: MOV R7,#100
	DJNZ R7,$
	DJNZ R6,D2
	DJNZ R5,D1
	RET
	END

3 流水灯

复制代码
ORG 0000H
MAIN:
	MOV R0,#8
	MOV A,#0FEH
LOOP:
	MOV P2,A
	CALL DALAY
	RL A
	DJNZ R0,LOOP
	JMP MAIN
	
DALAY: MOV R5,#25
D1: MOV R6,#100
D2: MOV R7,#100
	DJNZ R7,$
	DJNZ R6,D2
	DJNZ R5,D1
	RET
	END

初始A = 1111 1110

执行 RL A 后,A = 1111 1101

RL指令

RL​ = Rotate Left(循环左移)

移动方式:最高位→最低位,其他位向左移动一位

4 流水灯2

流水灯执行后,所有LED闪烁两次

复制代码
ORG 0000H
MAIN:
	MOV R0,#8
	MOV A,#0FEH
LOOP:
	MOV P2,A
	CALL DALAY
	RL A
	DJNZ R0,LOOP
	MOV R1,#3
	MOV A,#00H
LOOP1:
	MOV P2,A
	CALL DALAY
	CPL A
	DJNZ R1,LOOP1
	JMP MAIN
	
DALAY: MOV R5,#25
D1: MOV R6,#100
D2: MOV R7,#100
	DJNZ R7,$
	DJNZ R6,D2
	DJNZ R5,D1
	RET
	END

CPL指令

CPL A 的作用是:对累加器A按位取反(逻辑非)

指令名称:Complement Accumulator

操作:A ← NOT A(A的每一位取反)

二进制效果:0→1,1→0

相关推荐
比奇堡派星星4 分钟前
MCU 裸机时间片调度系统
单片机·嵌入式硬件
安科瑞刘鸿鹏172 小时前
工业自动化系统中抗晃电保护的协同控制研究
运维·网络·嵌入式硬件·物联网
深圳市方中禾科技3 小时前
LED驱动芯片FZH02,应用开发相关数据技术手册
单片机·嵌入式硬件·led
第二层皮-合肥3 小时前
光耦瞬态响应特性:上升时间与下降时间的测试方法与误差分析
嵌入式硬件
yuanmenghao4 小时前
CAN系列 — (6) CAN FD 带宽、CPU、中断:工程上是如何一起算的?
网络·驱动开发·单片机·mcu·自动驾驶·信息与通信
Arciab6 小时前
51单片机_蜂鸣器
单片机·嵌入式硬件·51单片机
SmartRadio6 小时前
在CH585M代码中如何精细化配置PMU(电源管理单元)和RAM保留
linux·c语言·开发语言·人工智能·单片机·嵌入式硬件·lora
qq_411262427 小时前
纯图像传感器(只出像素),还是 Himax WiseEye/WE1/WE-I Plus 这类带处理器、能在端侧跑模型并输出“metadata”的模块
人工智能·嵌入式硬件·esp32·四博智联
不脱发的程序猿7 小时前
嵌入式开发中C++内存泄漏的场景与解决办法
单片机·嵌入式硬件·嵌入式
至为芯7 小时前
IP5326至为芯支持TYPE-C协议的2.4A充放电移动电源方案芯片
单片机·嵌入式硬件