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

相关推荐
fie888916 小时前
基于51单片机的航模遥控器6通道接收机程序
单片机·嵌入式硬件·51单片机
bu_shuo16 小时前
嵌入式硬件工程师VS单板硬件工程师
嵌入式硬件·电子工程师·单板硬件
llilian_1616 小时前
选择北斗导航卫星信号模拟器注意事项总结 北斗导航卫星模拟器 北斗导航信号模拟器
功能测试·单片机·嵌入式硬件·测试工具·51单片机·硬件工程
Yyq1302086968217 小时前
MH2457,‌国产 32 位屏驱 MCU‌芯片,支持‌1080P 高清显示‌与‌以太网通信‌,广泛应用于两轮车仪表盘及工控屏等领域
单片机·嵌入式硬件
爱吃程序猿的喵17 小时前
南邮计科电工电子实验B《RLC串联谐振电路》实验报告
单片机·嵌入式硬件
独小乐17 小时前
009.中断实践之实现按键测试|千篇笔记实现嵌入式全栈/裸机篇
linux·c语言·驱动开发·笔记·嵌入式硬件·arm
XINVRY-FPGA18 小时前
XC7VX690T-2FFG1157I Xilinx AMD Virtex-7 FPGA
arm开发·人工智能·嵌入式硬件·深度学习·fpga开发·硬件工程·fpga
bubiyoushang88820 小时前
利用STM32实现Modbus通信(RTU从机方案)
stm32·单片机·嵌入式硬件
cmpxr_20 小时前
【单片机】常用设计模式
单片机·嵌入式硬件·设计模式
杰杰桀桀桀20 小时前
4*4无时延矩阵键盘(非阻塞)--附代码链接
stm32·单片机·嵌入式硬件·矩阵·计算机外设·无时延矩阵键盘