版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mylovewanzi/article/details/82865825
单片机实验----控制多个LED灯的闪烁
知识点:
- LCALL、RET指令。
- 存储器低128单元的结构
代码如下:
ORG 0000H
MAIN: MOV P1,#0FFH
LCALL DELAY
MOV P1,#00H
LCALL DELAY
LJMP MAIN
DELAY:MOV R1,#200
D1: MOV R2,#150
D2: DJNZ R2,D2
DJNZ R1,D1
RET
END
知识点一:
- 将P1口置高电平:
MOV P1,#0FFH
原理:MOV指令将立即数FFH传给P1口(8位),十六进制数FF转换成二进制为11111111。当P1口的8位都获得1时,就等同于P1的8个端口都置为高电平。
- 将P1口置高电平:
MOV P1,#00H
原理:其中00H转为二进制为00000000,原理同上。
-
LCALL-----子程序调用指令
格式:LCALL addr16
功能:调用指定标号(addr16)的子程序。
如在本程序中调用了延时子程序DELAY。另外子程序有一个返回指令RET
格式:RET
功能:返回到主程序中。
知识点二:
单片机存储数据有读写存储器RAM组成,用于存储实现实时输入的数据。
分为内部数据存储器和外部数据存储器,内部存储器空间有限,当容量不足时,可以扩展外部,即外部存储器。
AT80C51单片机有256个单元,地址编号为00H~FFH。
按功能分为两部分:
- 00H~7FH(128个)为内部随机存储器(RAM),称为低128单元。
- 80H~FFH(128个)为专用寄存器区,称高128单元。
这里主要说一下低128单元:
低128单元按用途分,又可分为三部分:
- 工作寄存器区
- 位寻址区
- 用户RAM区(堆栈和数据缓冲区)
-
工作寄存器区
用于存放操作数或中间结果,他们的功能不做预先规定,故又称为通用寄存器区。
分四个组,每个组又有8个单元组成。
-
位寻址区:
存放地址的地方,也可以说是”地址“区。
该区不仅可以按字节寻址,还可以按”位(bit)“寻址。
对该区中的每一位进行读写操作称为”位操作”。
-
用户RAM区:
为用户提供数据存储单元,共有80个单元。
用户可以将计算和处理后的数据、缓存数据、保护数据等保存在这个区域中。
(图片源于网络)
时间:2018年9月27日14:21:39
-END-