原创

单片机实验----控制多个LED灯的闪烁

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/mylovewanzi/article/details/82865825

单片机实验----控制多个LED灯的闪烁


知识点:

  1. LCALL、RET指令。
  2. 存储器低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

知识点一:

  1. 将P1口置高电平:
	 MOV P1,#0FFH

原理:MOV指令将立即数FFH传给P1口(8位),十六进制数FF转换成二进制为11111111。当P1口的8位都获得1时,就等同于P1的8个端口都置为高电平。

  1. 将P1口置高电平:
	 MOV P1,#00H

原理:其中00H转为二进制为00000000,原理同上。

  1. LCALL-----子程序调用指令
    格式:LCALL addr16
    功能:调用指定标号(addr16)的子程序。
    如在本程序中调用了延时子程序DELAY。

    另外子程序有一个返回指令RET
    格式:RET
    功能:返回到主程序中。

知识点二:

单片机存储数据有读写存储器RAM组成,用于存储实现实时输入的数据。
分为内部数据存储器和外部数据存储器,内部存储器空间有限,当容量不足时,可以扩展外部,即外部存储器。
AT80C51单片机有256个单元,地址编号为00H~FFH。
按功能分为两部分:

  1. 00H~7FH(128个)为内部随机存储器(RAM),称为低128单元。
  2. 80H~FFH(128个)为专用寄存器区,称高128单元。

这里主要说一下低128单元:

低128单元按用途分,又可分为三部分:

  • 工作寄存器区
  • 位寻址区
  • 用户RAM区(堆栈和数据缓冲区)

低128单元地址分布

  1. 工作寄存器区
    用于存放操作数或中间结果,他们的功能不做预先规定,故又称为通用寄存器区。
    分四个组,每个组又有8个单元组成。
    工作寄存器区

  2. 位寻址区:
    存放地址的地方,也可以说是”地址“区。
    该区不仅可以按字节寻址,还可以按”位(bit)“寻址。
    对该区中的每一位进行读写操作称为”位操作”。
    位寻址区

  3. 用户RAM区:
    为用户提供数据存储单元,共有80个单元。
    用户可以将计算和处理后的数据、缓存数据、保护数据等保存在这个区域中。

(图片源于网络)

时间:2018年9月27日14:21:39


-END-

展开阅读全文

没有更多推荐了,返回首页