51单片机存储器介绍(3)

发布者:devilcore最新更新时间:2016-01-10 来源: eefocus关键字:51单片机  存储器介绍 手机看文章 扫描二维码
随时随地手机看文章
高128单元:(80H-FFH)
21个特殊功能寄存器不连续地分布在128个字节的SFR存储空间中,地址空间为80H-FFH,在这片SFR空间中,包含有128个位地址空间,地址也是80H-FFH,但只有83个有效位地址,可对11个特殊功能寄存器的某些位作位寻址操作.
在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。这样的特殊功能寄存器51单片机共有21个并且都是可寻址的列表如下:
 
符号 地址 功能介绍
B F0H B寄存器
ACC   E0H 累加器
PSW   D0H 程序状态字
IP   B8H 中断优先级控制寄存器
P3   B0H P3口锁存器
IE   A8H 中断允许控制寄存器
P2   A0H P2口锁存器
SBUF 99H 串行口锁存器
SCON 98H 串行口控制寄存器
P1   90H P1口锁存器
TH1   8DH 定时器/计数器1(高8位)
TH0 8CH 定时器/计数器1(低8位)
TL1 8BH 定时器/计数器0(高8位)
TL0   8AH 定时器/计数器0(低8位)
TMOD 89H 定时器/计数器方式控制寄存器
TCON 88H 定时器/计数器控制寄存器
DPH   83H 数据地址指针(高8位)
DPL 82H 数据地址指针(低8位)
SP 81H 堆栈指针
P0 80H P0口锁存器
PCON 87H 电源控制寄存器
 
 
分别说明如下:
1、ACC---是累加器,通常用A表示。
这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的运算类指令都离不开它。自身带有全零标志Z,若A=0则Z=1;若A≠0则z=0。该标志常用作程序分枝转移的判断条件。
2、B--一个寄存器。
在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。
3、PSW-----程序状态字。这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们可以了解CPU的当前状态,并作出相应的处理。它的各位功能请看下表:
 
 
D7 D6 D5 D4 D3 D2 D1 D0
CY   AC F0 RS1 RS0 OV   P
 
 
下面我们逐一介绍各位的用途
CY:进位标志。8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。有进、借位,CY=1;无进、借位,CY=0
例:78H+97H(01111000+10010111)
AC:辅助进、借位(高半字节与低半字节间的进、借位)。
例:57H+3AH(01010111+00111010)
F0:用户标志位,由用户(编程人员)决定什么时候用,什么时候不用。
RS1、RS0:工作寄存器组选择位。这个我们已知了。
0V:溢出标志位。运算结果按补码运算理解。有溢出,OV=1;无溢出,OV=0。什么是溢出我们后面的章节会讲到。
P:奇偶校验位:它用来表示ALU运算结果中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,否则为0。运算结果有奇数个1,P=1;运算结果有偶数个1,P=0。
例:某运算结果是78H(01111000),显然1的个数为偶数,所以P=0。
4、DPTR(DPH、DPL)--------数据指针,可以用它来访问外部数据存储器中的任一单元,如果不用,也可以作为通用寄存器来用,由我们自已决定如何使用。分成DPL(低8位)和DPH(高8位)两个寄存器。用来存放16位地址值,以便用间接寻址或变址寻址的方式对片外数据RAM或程序存储器作64K字节范围内的数据操作。
5、P0、P1、P2、P3------这个我们已经知道,是四个并行输入/输出口的寄存器。它里面的内容对应着管脚的输出。
关键字:51单片机  存储器介绍 引用地址:51单片机存储器介绍(3)

上一篇:51单片机存储器介绍(4)
下一篇:51单片机的控制引脚介绍

推荐阅读最新更新时间:2024-03-16 14:43

51单片机驱动高精度时钟DS3231源代码
本程序一共有2个文件,成功的用stc89c51单片机驱动,完整的代码从 http://www.51hei.com/f/ds3231code.rar 处下载 下面是源码预览(第一个文件): /////////////////////////////////////////////////////////////////////////////////// /* DS3231.h文件 */ //////////////////////////////////////////////////////////////////////////////////// #ifndef _ds3231_h_ #define _ds3231_h
[单片机]
45-基于51单片机的甲醛浓度检测报警系统
具体实现功能 系统由STC89C52单片机+ZE08-CH2O甲醛传感器+LCD1602液晶显示屏+按键+蜂鸣器+指示灯+电源构成。 具体功能: 1、甲醛传感器测得甲醛数据后经过单片机处理,由LCD1602实时显示; 2、可通过按键设置甲醛报警阈值; 3、测得的甲醛浓度超过报警阈值时,开始声光报警。 设计背景 如今自动化、信息化程度越来越高,随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的自动控制系统开始进入了人们的生活,同时也标志了自动控制领域成为了数字化时代的一员。以单片机为核心的自动门系统就是其中之一。它实用性强,功能齐全,技术先进,使人们相信这是科技进步的成果。它更让人类懂得,数字
[单片机]
45-基于<font color='red'>51单片机</font>的甲醛浓度检测报警系统
51单片机双向口和准双向口有什么区别
双向口与准双向口的区别主要是:准双向口I/O口操作时做数据输入时需要对其置1,否则若前一位为低电平,后一位输入的电平为高则MOS管拉不起来导致出错。而双向口则不需要做此动作,因为双向口有悬浮态。 准双向口就是做输入用的时候要有向锁存器写1的这个准备动作,所以叫准双向口。 真正的双向口不需要任何预操作可直接读入读出。 1:准双向一般只能用于数字输入输出,输入时为弱上拉状态(约50K上拉),端口只有两种状态:高或低。 2:双向除用于数字输入输出外还可用于模拟输入输出,模拟输入时端口通过方向控制设置成为高阻输入状态。双向端口有三种状态:高、低或高阻。 3:初始状态和复位状态下准双向口为1,双向口为高阻状态.有带些比较器的单片机,比较器的
[单片机]
51单片机产生PWM软件延时和定时器产生两种方法
89C51芯片没有自带PWM发生器,如果要用51来产生PWM波就必须要用软件编程的方法来模拟。方法大概可以分为软件延时和定时器产生两种方法。下面将逐一介绍。 1 软件延时法 利用软件延时函数,控制电平持续的时间,达到模拟pwm的效果。 程序如下: #include sbit pwm=P1^0; main() { while(1) { pwm=1; delayus(60);//置高电平后延时60us,占空比60% pwm=0; delayus(40); } } void delayus(uint x) { while(x--); } proteus软件仿真结果如下: 可见,用这种延时函数的方法就能简单地模拟出pwm输出。但是
[单片机]
<font color='red'>51单片机</font>产生PWM软件延时和定时器产生两种方法
51单片机的延时子程序
延时程序在单片机编程中使用非常广泛,但一些读者在学习中不知道延时程序怎么编程,不知道机器周期和指令周期的区别,不知道延时程序指令的用法, ,本文就此问题从延时程序的基本概念、机器周期和指令周期的区别和联系、相关指令的用法等用图解法的形式详尽的回答读者 我们知道程序设计是单片机开发最重要的工作,而程序在执行过程中常常需要完成延时的功能。例如 在交通灯的控制程序中,需要控制红灯亮的时间持续30秒,就可以通过延时程序来完成。延时程序是如何实现的呢?下面让我们先来了解一些相关的概念。 一、机器周期和指令周期 1.机器周期是指单片机完成一个基本操作所花费的时间,一般使用微秒来计量单片机的运行速度,51 单片机的一个机器周期包
[单片机]
从零开始学51单片机定时器
基于单片机的定时器电路原理图如下所示: 我们学单片机是首先学的就是 led 闪烁,那是用延时程序做的,现在回想起来,这样做不很恰当,为什么呢?我们的主程序做了灯的闪烁,就不能再干其它的事了,难道单片机只能这样工作吗?当然不是,我们能用定时器来实现灯的闪烁的功能。 例 1:查询方式 ORG 0000H AJMP START ORG 30H START: MOV P1,#0FFH ;关所 灯 MOV TMOD,#00000001B ;定时/计数器 0 工作于方式 1 MOV TH0,#15H MOV TL0,#0A0H ;即数 5536 SETB TR0 ;定时/计数器 0 开始运行 LOOP:JBC TF
[单片机]
从零开始学<font color='red'>51单片机</font>定时器
基于51单片机的医用血压测量仪设计案例
一、主要功能 本项目使用Proteus8.12仿真51单片机控制器,使用OLED12864液晶模块、PCF8591 AD模块、按键、电机等。 主要功能: 系统运行后,OLED显示开机显示界面。可通过K1键开始测量血压,气泵阀开启,一段时间后停止,开始测量高压和低压,并将测量值显示在OLED,并且显示当前血压状态。 主要功能如下: (1)OLED显示血压; (2)血压高压测量你; (3)血压低压测量; (4)血压状态显示。 二、硬件资源 51单片机核心模块、OLED12864液晶模块、按键、电机模块、PCF8591 AD模块。 三、软件设计 /* //定义结构体 _sys_ctrl sys_ctrl; //系统参数设置 vo
[单片机]
基于<font color='red'>51单片机</font>的医用血压测量仪设计案例
AT89C2051单片机制作的六位数显多路定时电子钟
这里介绍的电子钟,电路可称得上极简,它仅使用单片的20引脚单片机完成电子钟的全部功能,而笔者见到的其它设计方案均采用二片以上的多片IC实现。 一片20引脚的单片机STC2032(引脚排列与AT89C2051完全相同)为电子钟主体,其显示笔画数据从P1口分时输出,P3口则输出对应的六位选通信号。由于LED数码管点亮时耗电较大,故不能使用AT89C2051单片来完成,但是可以可以用STC89C2032来完成。另外,本站制作时用超高亮的发光二极管代替昂贵的大数码管,成本低,效果独特。 本电子钟设计有三个轻触式按键,这里我们分别命名为:模式设定键K1、加调整键K2、减调整键K3。由于STC89C2032内部已经集成有复位电阻,所以,
[单片机]
AT89C20<font color='red'>51单片机</font>制作的六位数显多路定时电子钟
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved