历史上的今天
返回首页

历史上的今天

今天是:2024年11月23日(星期六)

2018年11月23日 | 8051/89C51的21个专用寄存器介绍

2018-11-23 来源:eefocus

 8051/89C51共有21个专用寄存器,现把其中部分寄存器简单介绍如下:


(1)程序计数器(Program Counter,PC) PC是一个16位的计数器,它的作用是控制程序的执行顺序,其内容为下一条要执行的指令的地址,寻址范围达64KB。PC有自动加1的功能,从而实现程序的顺序执行。PC没有地址,是不可寻址的,因此用户无法对它进行读/写操作,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。因地址不在SFR(专用寄存器)内,一般不计作专用寄存器。


(2)累加器(Accumulator,ACC) 累加器为8位寄存器,是最常用的专用寄存器,功能较多,地位重要。它既可用于存放操作数,也可用来存放运算的中间结果。MCS-51单片机中大部分单操作数指令的操作数就取自累加器,许多双操作数指令中的一个操作数也取自累加器。


(3)B寄存器 B寄存器也是一个8位寄存器,主要用于乘除运算。乘法运算时,B存乘数,乘法操作后,乘积的高8位存于B中;除法运算时,B存除数,除法操作后,余数存于B中。此外,B寄存器也可作为一般寄存器使用。


(4)程序状态字(Program Status Word,PSW) 程序状态字是一个8位寄存器,用于存放程序运行中的各种状态信息。其中有些位的状态是根据程序执行结果,由硬件自动设置的,而有些位的状态则使用软件方法设定。PSW的位状态可以用专门指令进行测试,也可以用指令读出。一些条件转移指令根据PSW某些位的状态进行程序转移。PSW的各位定义如图1-10所示。


PSW位地址:

D7H

D6H

D5H

D4H

D3H

D2H

D1H

D0H

CY

AC

F0

RS1

RS0

OV

P


图1-10 PSW的各位定义


PSW的字节地址为D0H。


除PSW.1位保留未用外,其余各位的定义及使用如下:


CY(PSW.7)——进位标志位。CY是PSW中最常用的标志位。其功能有二:一是存放算术运算的进位标志,在进行加或减运算时,如果操作结果的最高位有进位或借位时,CY由硬件置“1”(Single Chip Micro Computer),否则清“0”;二是在位操作中作累加位使用。位传送、位与位等位操作,进位标志位是固定的操作位之一。


AC(PSW.6)——辅助进位标志位。在进行加或减运算中,当低4位向高4位进位或借位时,AC由硬件置“1”,否则AC位清“0”。在BCD码调整中也要用到AC位状态。


F0(PSW.5)——用户标志位。这是一个供用户定义的标志位,需要利用软件方法置位或复位,用于控制程序的转向。


RS1和RS0(PSW.4、PSW.3)——工作寄存器组选择位。它们被用于选择CPU当前使用的通用寄存器组。通用寄存器共有4组,其对应关系如表1-5所示。


表1-5 通用寄存器组的选择

RS1    RS0

寄存器组

片内RAM地址

0       0

第0组

00H—07H

0       1

第1组

08H—0FH

1       0

第2组

10H—17H

1       1

第3组

18H—1FH


这两个选择位的状态是由软件设置的,被选中的寄存器组即为当前通用寄存器组。当单片机上电或复位后,RS1:RS0=00。


OV(PSW.2)——溢出标志位。在带符号数加减运算中,OV=1表示加减运算超出了累加器A所能表示的符号数有效范围(-128~+127),即产生了溢出;因此运算结果是错误的;OV=0表示运算正确,即无溢出产生。


在乘法运算中,OV=1表示乘积超过255,即乘积分别在B与A中;OV=0表示乘积只在A中。


在除法运算中,OV=1表示除数为0,除法不能进行;OV=0表示除法可正常进行。


P(PSW.0)——奇偶标志位,表明累加器A中内容的奇偶性。如果A中有奇数个“1”,则P置“1”,否则置“0”。凡是改变累加器A中内容的指令均会影响P标志位。


该标志位对串行通信中的数据传输有重要的意义,在串行通信中常采用奇偶校验的办法来校验数据传输的可靠性。


(5)数据指针(DPTR) 数据指针为16位寄存器。编程时,DPTR既可以按16位寄存器使用,也可以按两个8位寄存器分开使用,即:


DPH DPTR高8位字节


DPL DPTR 低8位字节


DPTR通常在访问外部数据存储器时作地址指针使用。由于外部数据存储器的寻址范围为64KB,故把DPTR设计为16位。


(6)堆栈指针 (Stack Pointer,SP) 堆栈是一个特殊的存储区,用来暂存数据和地址,它是按“先进后出”的原则存取数据的。堆栈共有两种操作:进栈和出栈。


由于MCS-51单片机的堆栈设在内部RAM中,因此SP是一个8位寄存器。系统复位后,SP的内容为07H,从而复位后堆栈实际上是从08H单元开始的,但08H~1FH单元分别属于工作寄存器1~3区,如果程序要用到这些区,最好把SP值改为更大的值。一般在内部RAM的30H~7FH单元中开辟堆栈。SP的内容一经确定,堆栈的位置也就跟着确定下来,由于SP可初始化为不同的值,因此,堆栈位置是浮动的。21ic基础知识


        这里只集中讲述了6个专用寄存器,其余的专用寄存器(如TCON、TMOD、IE、IP、SCON、PCON、SBUF等)将在以后章节中陆续介绍。


对专用寄存器的字节寻址问题作如下几点说明:


(1)21个可字节寻址的专用寄存器不连续地分散在内部RAM高128单元之中,尽管还余有许多空闲地址,但用户并不能使用。


(2)程序寄数器PC不占据RAM单元,它在物理上是独立的,因此是不可寻址的寄存器。


(3)对专用寄存器只能使用直接的寻址方式,书写时既可使用寄存器符号,也可使用寄存器单元地址。


全部专用寄存器可位寻址的位共83位,这些位都具有专门的定义和用途。这样,加上位寻址的128位,在MCS-51的内部RAM中共有128+83=211个可寻址位。


推荐阅读

史海拾趣

AntennaHome公司的发展小趣事

为了进一步提升品牌影响力和市场知名度,AntennaHome公司积极参与国际电子行业的各大展会。在展会上,公司展示了最新的天线技术和产品,吸引了众多国内外客户的关注。通过与客户的深入交流,公司不仅收获了宝贵的市场信息和合作机会,还进一步提升了品牌在行业内的地位。

Amaze Electronics Pte Ltd公司的发展小趣事

在激烈的市场竞争中,品牌建设成为Amaze Electronics提升市场影响力的关键。公司注重品牌形象的塑造,通过举办各类活动、参与行业展会等方式,提高品牌知名度和美誉度。同时,公司还注重产品质量的把控,确保每一件产品都能体现公司的专业水准和品质追求。这些举措有效提升了Amaze Electronics在市场上的影响力,吸引了更多客户的关注和信赖。

Exar公司的发展小趣事

随着云计算和大数据的兴起,数据中心市场迎来了爆发式增长。Exar公司敏锐地抓住了这一市场机遇,推出了一系列针对数据中心市场的产品。通过不断的技术创新和产品优化,Exar在数据中心市场上取得了显著的突破,赢得了众多客户的认可和信赖。

Calmos Systems Inc公司的发展小趣事

随着国内市场的饱和,Calmos Systems Inc公司开始将目光投向国际市场。公司制定了详细的国际化战略,包括市场调研、产品定位、销售渠道建设等方面。公司派遣专业团队前往海外市场进行考察和交流,了解当地市场需求和文化特点。同时,公司还积极寻求与国际知名企业的合作机会,共同开拓国际市场。在国际化战略的推动下,公司的业务范围不断扩大,国际市场份额逐年提升。

ACL staticide公司的发展小趣事

随着电子行业的快速发展,Calmos Systems Inc公司意识到技术创新是企业发展的核心动力。因此,公司加大了研发投入,引进了一批高水平的技术人才,建立了完善的研发体系。经过多次试验和失败,公司成功开发出了一款具有颠覆性的新技术,这项技术在行业内引起了广泛关注。凭借这一技术创新,公司在市场上获得了竞争优势,实现了快速发展。

Datalogic公司的发展小趣事

随着电动汽车行业的兴起,汽车行业对零部件的标记和追踪要求也日益严格。Datalogic凭借其强大的技术实力,成功开发出3W固态激光打标机Vlase UV 3,该产品能够在橙色部件上实现高度可见、稳定和持久的对比度标记,解决了电动汽车生产中的一大难题。这一创新不仅展示了Datalogic的技术实力,也进一步巩固了其在电子行业中的领先地位。

问答坊 | AI 解惑

Microsoft内部关于WinCE培训资料

Microsoft内部关于WinCE培训资料 …

查看全部问答>

pic代理

pic代理 禾琦商贸(原立奇国际)为Microchip全系列产品授权代理。公司于2002年获得Microchip(美国微芯公司)年度杰出服务奖。禾琦商贸亚洲区最大的代理商,全球前五大代理商之一。总年度营业额超过十亿美金。 公司具多位研发出身的专职应用工程 ...…

查看全部问答>

挑战史上最全UART驱动,哈哈。。。。

zhaojun_xf 同学写了个史上最全uart实验,但是却遇到了spritf的问题,偶要挑战之,哈哈!!为什么会出这个问题呢?因为内存不够用啦。那怎么办呢? 重写sprintf函数嘛?怎么重写呢?google or baidu 嘛。。。。。。。。。哈哈,以下程序参考printf- ...…

查看全部问答>

紧急求助PCB布线的各位大虾!

急聘:高级布线(PCB layout)工程师   工作职责: 从事通信产品的PCB设计、仿真工作。   职位要求: 1)电子、无线电、通信或相关专业本科以上学历; 2)2年以上相关产品PCB设计开发经验; 3)熟练掌握一种或一种以上(Mentor, ...…

查看全部问答>

【兼职】找人写一本【Arduino】教程----版主留情

目前Arduino越来越火了,国家一级出版社,想出版一本【Arduino】入门教程,有项目经验又有写作兴趣的可以联系我 QQ 453172580,验证:Arduino。 写作要求: (1)务必有Arduino项目经验 (2)有扎实的理论基础,了解技术的后台原理。 (3)有 ...…

查看全部问答>

光电等可探测物体形状的传感器

光电等可探测物体形状的传感器     有哪些传感器可选 ???…

查看全部问答>

MATLAB帮忙设计一种16-QAM调制解调方案

设计一种16-QAM调制解调方案,信源速率、码元数、调制频率、采样频率等参数自定,信道噪声为高斯分布白噪声,均值为0,方差自定。完成三种信噪比条件下的调制和解调计算机仿真,给出调制器输出、解调器主要节点信号波形和误码率等仿真结果,并做必 ...…

查看全部问答>

MSP430单片机内存被改写如何修改

请教论坛各位前辈一个问题,最近有个项目是用MSP430F1121A和CC1101的遥控器。接收那端的MSP430单片机定义在内存Memory的数据被莫名其妙改写,不知道由什么引起。 这是仿真时,出错时候的内存数据。图中的relay1_flag和relay2_flag原来是用下面的bi ...…

查看全部问答>

【TI DLP创意征集】+全息互动

如今,vr ar技术的逐渐成熟,从Google的 glass,到Microsoft 的hololens。 不过他们仍然需要“眼镜”的支持,借助于DLP,使得我们可以脱离“眼镜” 看电影,玩游戏,做设计。不论在享受上还是效率上都带来极大的提升 …

查看全部问答>

基于Zigbee的工业以太网EtherCAT的无线网关设计

本人大四,急需 基于Zigbee的EtherCAT工业以太网无线网关设计的程序 …

查看全部问答>