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

相关推荐
hongmai6668881 小时前
ESP32-C61-WROOM-1-N8R2:Wi-Fi 6与RISC-V融合的中坚力量
人工智能·单片机·嵌入式硬件·物联网·智能家居·risc-v
炸膛坦客10 小时前
单片机/C/C++八股:(二十六)IIC 专题(I²C)---- 上集
c语言·c++·单片机
华清远见IT开放实验室15 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
AI的探索之旅17 小时前
AI辅助原理图评审:电源去耦、BOOT引脚、VCAP——19项逐一核查,遗漏?不存在的
人工智能·vscode·嵌入式硬件
茯苓gao17 小时前
嵌入式开发笔记:EtherCAT协议从硬件到软件完整配置指南——从零搭建一套EtherCAT通信系统
笔记·嵌入式硬件·学习
GeekArch17 小时前
第24讲:Vibe模式代码风格控制——适配Keil/STM32工程规范
人工智能·stm32·单片机·嵌入式硬件·mcu·决策树·ai编程
Freedom_my18 小时前
STM32项目3
stm32·单片机·嵌入式硬件
国科安芯19 小时前
星间光链路:AS32S601型抗辐射MCU在空间激光通信终端控制中的技术实现
服务器·网络·单片机·嵌入式硬件·物联网·安全·信息与通信
小李不困还能学20 小时前
基于 51 单片机的8 路抢答器设计教程
单片机·嵌入式硬件·mongodb·抢答器
CedarQR21 小时前
万字长文:从零在 RK3588 上部署 PaddleSpeech 中文 TTS 全流程(FastSpeech2 + HiFiGAN)
开发语言·c++·嵌入式硬件·ubuntu·json