c/c++ 单片机 硬件驱动 嵌入式

特殊功能寄存器sfr怎么用,怎么理解sfr?我看到一段代码sfrp_data=ox80;此语句又怎么理解?... 特殊功能寄存器sfr 怎么用,怎么理解sfr? 我看到一段代码 sfr p_data =ox80; 此语句又怎么理解? 展开
 我来答
七彩镜
2012-11-01 · TA获得超过1127个赞
知道小有建树答主
回答量:273
采纳率:0%
帮助的人:209万
展开全部
特殊功能寄存器是单片机厂商定义自己单片机特定用途的寄存器,不需要用户定义,最好用户不要自己定义,直接使用单片机厂商提供的头文件即可,如果厂商没有提供头文件,那说明单片机是通用的,可以直接使用Keil C等编译器提供的头文件。
如果用户实在想自己定义sfr,按照取得的头文件定义寄存器的格式修改寄存器名字即可。
sfr p_data =ox80 定义了特殊功能寄存器p_data 的地址是0x80
百度网友3b1b680
2012-11-01 · TA获得超过966个赞
知道小有建树答主
回答量:978
采纳率:33%
帮助的人:625万
展开全部
sfr就是定义一个变量,这个变量相当于单片机的高128个字节。高128个字节有其特殊的意义。
比如0x80位置表示的是P0口,往这个位置写入数据,就会相应的反应到P0上(电平高低)。
sfr p_data = 0x80;就是用p_data表示0x80处的内存。
追问
首先谢谢你的回答,你的回答让我有种拨云见日、豁然开朗的喜悦!另外,我想知道sfr定义的变量是不是都是8位?如果是八位,可不可以由OX80得到P0所对应的八位中每一位的地址?
再次谢谢你!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhidaobaihuang
2012-11-02 · 超过14用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:21.4万
展开全部
特殊功能寄存器正如其名是有“特殊”作用的寄存器,是相对通用寄存器(R1, R2, R3 ...)而言,一般指片上集成外设操作相关寄存器(D/A, AD,PWM ...),"0x08"到底什么意思,参考具体器件数据手册就能确定了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
春晓雨夜
2012-11-02 · 超过19用户采纳过TA的回答
知道答主
回答量:129
采纳率:0%
帮助的人:66.1万
展开全部
定义一个特殊功能寄存器,叫p_data 地址值为0x80
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式