① 51单片机SFR的定义问题
不是,P0=80H是地址为80H的一字节数据位(8位,就是P0的8个管脚),81H位置是SP(堆栈指针)(参考AT89S52内部sfr结构)
② 51单片机的头文件里面的sfr P0=0x80和sfr P1=0x90这类的具体意思
因为你查SFR(特殊功能寄存器)的名称及主要功能表时,P1端口所对应的字节地址就是0x90,在寄存器或存储器中一个单元即一个地址含有8个字节,所以以P1端口为例,一整个P1的8位都在0x90地址上。
③ keil c 中的sfr定义和defne的定义有什么区别
sfr 是KEIL中用来定义硬件寄存器地址的关键字,具有定义硬件特性。举个例子:
sfr P0 =0x80
(C语言,这样就定义了51系列MCU中0x80地址,在编程时可以用P0符号代替地址0x80,具有定义硬件特性)
在汇编中和DATA相似,举例子:
P0 DATA 80H
(汇编语言,说明和上面一样)
define 是KEIL中预处理命令,作为define后面字串的文本代替,一般没有定义硬件的特性,,在使用时,前面必须加上 # 号,编译器在编译时,先查找代码中的宏定义自串,然后在用在宏后面的数据去替代,例子:
#define pi 3.1415926
(以后使用中,可以用pi来代替3.1415926)
在使用define定义宏的时候,是没有数据类型指定的,而在调用的时候被相关数据类型转换。
Good Luck.
④ 51单片机、stm32中sfr和define的定义问题求解!!!
在51单片机中,如果你这么定义:
#define P0 (*(volatile unsigned char*)0x80)
那么执行P0=0x25的时候,汇编就变成
MOV DPTR,#0080H
MOV A,#25H
MOVX @DPTR,A
很明显,你就不是往端口P0赋值0x25,而是像外部总线上的地址0x0080写数据0x25了,了解?
51单片机的寄存器存在于内部空间0x80-0xFF,这空间属于直接寻址,不是访问外部总线。所以只能用 sfr P0=0x80来定义。
STM32单片机就不一样,所有的外设寄存器都处于统一寻址的外部空间中,所以只能用这种方法定义其地址,访问时也类似MOVX指令的执行。
⑤ keil4里89c51的贴片单片机P4口怎么sfr定义
直接程序前面在前面加上,或者在头文件里面加入也行。
sfr P4=0xe8就行了。
⑥ SFR是什么意思,指代什么
sfr 1.SFR是Special Function Register(特殊功能寄存器)的缩写。 SFR是80C51单片机中各功能部件对应的寄存器,用于存放相应功能部件的控制命令,状态或数据。它是80C51单片机中最具有特殊的部分,现在所有80C51系列功能的增加和扩展几乎都是通过增加特殊功能寄存器SFR来达到目的的。 对于80C51系列中的80C51,共定义了26个特殊功能寄存器。在80C52中,除了80C51的26个特殊功能寄存器,还增加了5个,共计31个。 2.SFR是法国电信和网络运行商,由沃达丰掌握32%的股权,2008年收购法国网络运行商NEUF,现在主要经营电信和网络业务 3.SFR (spatial frequency response)中文解释是"空间频率响应",一般是利于边沿去检测图像的清晰程度. 4.专用寄存器包括:1)程序计数器(PC-Program Counter)2)累加器A(ACC-Accumulator)3)B寄存器 4)程序状态寄存器(PSW-Program Status Word)等。 5.soft frequency reuse,软频率复用。即处于一个小区群的边缘用户使用不同资源,但小区群的中心用户使用的资源可以相同也可以不同,当然,为了节约频谱资源,通常中心用户common user 使用相同频率。边缘用户edge user使用的是不受功率限制的频谱资源,而中心用户common user 使用的则是功率受限的频谱资源。可以看出,SFR技术能够克服ICI,即小区间干扰。
⑦ 单片机里面SFR是什么
SFR,特殊功能寄存器。这个概念大家可能刚开始理解不了,但是一定要记住。单片机有很多很多功能,每个功能都会对应一个或多个 SFR,我们就是通过对 SFR 的读写来实现单片机的多种多样的功能的。
参考资料来源:吴鉴鹰吧
贡献文档:网络文库《吴鉴鹰单片机项目实战精讲》
参考实例:吴鉴鹰单片机开发板