单片机中特殊功能寄存器的定义与初始化的区别

我在单片机教材上看到关于一个寄存器的两种不同的代码,一是: sfr SCON=ox98, 教材上称之为寄存器的定义,另一个是: SCON=ox52,教材上称之为初始化程序。 请问这两者有何区别呢? 谢谢!

这两者的区别大了呀。。。
SCON寄存器在单片机中的地址是0x98...
sfr
SCON=ox98,是一个特殊寄存器的定义,也就是告诉你SCON的地址是0x98.当然这个是你目前不用考虑的。因为头文件(reg52.H等,就是在编写程序开头写的那个)都已经写好了。可以打开keil->c51->ASM->reg52.INC查看。。里面都是寄存器的定义。
SCON=0x52。。首先SCON寄存器的标志位有:
SM0,SM1,SM2,REN,TB8,RB8,TI,RI.
SCON=0X52,其实就是定好标志位的值。相当于:
SM0=0;
SM1=1;
SM2=1;
REN=0;
TB8=0;
RB8=0;
TI=1;
RI=0;
也可以写成上述形式,因为SCON地址可以被8整除(凡是地址可以被8整除的都可以位寻址),可以位寻址(即可以一个个位的赋值)
希望采纳,如有不懂,可以HI我。。。
温馨提示:内容为网友见解,仅供参考
无其他回答

单片机中特殊功能寄存器的定义与初始化的区别
这两者的区别大了呀。。。SCON寄存器在单片机中的地址是0x98...sfr SCON=ox98,是一个特殊寄存器的定义,也就是告诉你SCON的地址是0x98.当然这个是你目前不用考虑的。因为头文件(reg52.H等,就是在编写程序开头写的那个)都已经写好了。可以打开keil->c51->ASM->reg52.INC查看。。里面都是寄存...

51单片机中片内和片外RAM的初始化是什么意思
51单片机中片内和片外(随机)RAM的初始化的实际做法就是在程序一开始运行时就先把它们全清成0或你所想要的一个特定值(这主指对专用寄存器的设置),以便你在后面程序中再使用它们时方便而不出错。

特殊功能寄存器(SFR)详解 ——以8051单片机为例
SP作为栈顶的存储单元地址,系统复位后其值通常为07H,实际应用中会在主程序开始处进行初始化,通常在片内RAM的30H~7FH区域内开辟堆栈区,并将SP设置为60H,以适应多级中断嵌套和多重子程序调用需求。数据指针DPTR是一个16位专用寄存器,它既可作为一个整体使用,也可拆分为两个8位寄存器DPH和DPL。DP...

stm32单片机有特殊功能寄存器吗
1、定义一个和实际硬件地址相镜像的全局结构体变量。2、设置结构体的各个变量相对应的参数。3、把结构体整体复制到硬件特殊功能寄存器。当结构体定义的时候编译器给它分配空间,且这个为全局变量一直占用RAM空间,即使初始化后也一直占用空间,编译器也不会回收其空间。到最后其实有一份硬件特殊功能寄存器...

单片机为什么要初始化?
初始化多是对功能单元的配置 像:UART的字节长度,校验位,波特率啊什么的一系列配置 通常是相应的控制寄存器进行赋值达到效果 一般的情况下是在上电的时候初始化,还有就是程序跑飞和出现异常时也要初始化,初始化的目的就是把所有用到的标志位、变量回到你的初始值,以及引脚的分配,配置寄存器写入需要...

AT89S52特殊功能寄存器
表3a的AUXR寄存器则包含了如WDIDLE、DISRTO等辅助控制位,如掉电标志POF位于PCON的第四位,可软件控制但不受复位影响。双数据指针寄存器DP0和DP1,通过设置AUXR1中的DPS位来选择使用,DP0默认在DPS=0时启用,而DP1在DPS=1时启用,需预先初始化DPS。

单片机上电时内部各个存储器状态
1.掉电再通电,这里就视为冷启动吧 这种情况下单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,特殊功能寄存器复位后的状态为确定值,具体可参考相应单片机的说明书。2.按复位按钮 这种情况下单片机的复位...

什么是单片机的初始化程序?
单片机的初始化程序就是对一些特定的功能模块进行初始设置的程序,如定时器初始化程序,通过初始化程序来设置一些寄存器的值,达到该功能模块实现特殊功能的目的。单片机编程中经常用到的初始化程序有:1、端口初始化程序;2、定时器初始化程序;3、AD模块初始化程序;4、晶振初始化程序;5、串口初始化程序...

如何给单片机系统进行初始化?
\\x0d\\x0a2、设定PSW值,也就是缺省的工作寄存器区。\\x0d\\x0a3、设定与定时器、中断、串口相关的特殊功能寄存器\\x0d\\x0a4、设定各IO口的初始状态,比如将连接键盘的输入输出口均设为1,红外发射电路的初始状态。\\x0d\\x0a5、内存中需要赋初值的寄存器赋初值,比如上电后要显示的内容最好先赋...

单片机程序状态寄存器
原来是什么就是什么,因为51单片机内有32个工作寄存器嘛,它们被八个八个分为一组,所以有四个,RS1,RS0能表示的最大数就是4,所以用来选择的,不用管它。OV为溢出,这里没有溢出,主要用于有符号的数,我们这里没有,就没变化了。PSW.1也是没定义的,没实际意义,P位奇偶校验位,这里我们用51...

相似回答