c8051 中的问题,请教

[复制链接]
4335|13
 楼主| taokan1991 发表于 2012-10-17 19:56 | 显示全部楼层 |阅读模式
“你所用的每个寄存器都有个寄存地址,而寄存器页的页码就是指向你的寄存地址的。
当你需要使用某个寄存器时,就必须把SFRPAGE指向你所要用的寄存器页上面去”
这个事c8051中的 规定么? 我用stc8051是好像没有这么做啊
阿南 发表于 2012-10-17 20:24 | 显示全部楼层
不同的单片要会有不同的,STC8051是没有的这样做的
 楼主| taokan1991 发表于 2012-10-17 20:35 | 显示全部楼层
2# 阿南 呵呵 我们还一起下过象棋了
lhkjg 发表于 2012-10-18 07:40 | 显示全部楼层
现在C语言这么普及的情况下好像深入研究寄存器底层物理工作原理的不多了哇
supermanbar 发表于 2012-10-18 07:58 | 显示全部楼层
taokan1991兄弟你好, 正好我也在学习C8051单片机。你提问的内容我正好前几天学过了。具体是这样的因为C8051F系列单片机的资源太多,有很多很多个寄存器。我学的是C805F120,在这个单片机中,把SFR页分为0 1 2 3 F 这4个页面。需要对那部分寄存器操作 就切换到哪个页面
supermanbar 发表于 2012-10-18 08:04 | 显示全部楼层
在C8051F120的手册的第121页开始 就是寄存器表格,详细的说了那些寄存器在哪个页面。例如ADC2LT 这个寄存器 就在页面2上 你在对寄存器ADC2LT进行操作前,就必须先把页面切换到2号页面 也就是先写如下语句:
SFRPAGE=0X02 ;

例如下面 就是我前几天写的实验程序,学习DA的:
你可以了解下
main()
{
  Init_Device();   //启动引导程序,由配置软件生成,内容包括看门口 交叉IO 晶振 及你所需要的设置
  SFRPAGE =0x00;
  DAC0L=0xf0;
  DAC0H=0xff;

}
supermanbar 发表于 2012-10-18 08:06 | 显示全部楼层
最后说一下  我在这个群里学习C8051单片机 89387155 目前人很少 但是有一位热心高手 火蒂树兄弟在坐镇指导,想来就来吧
ayb_ice 发表于 2012-10-18 08:06 | 显示全部楼层
标准的51 SFR空间只有128个字节,对有些复杂点的51显然是不够的,为了最大程序的兼容标准51,就搞了页的概念,相当于A栋203,B栋的203...
有些51直接将扩展的SFR置于XARM空间。。。
阿南 发表于 2012-10-18 09:25 | 显示全部楼层
re 4楼,要想成高手,那是必须要研究寄存器的。
dragonchenhong 发表于 2012-10-18 11:24 | 显示全部楼层
要看看stc的datasheet,不一样
 楼主| taokan1991 发表于 2012-10-18 12:59 | 显示全部楼层
5# supermanbar 谢谢你 还要多交流啊
cym_anhui 发表于 2012-10-18 13:21 | 显示全部楼层
每种单片机不同啊
qjp1988113 发表于 2013-12-26 13:35 | 显示全部楼层
我也在学C8051F120,那个分页查找寄存器是他们单片机的特色。
renqinglei 发表于 2013-12-26 14:58 | 显示全部楼层
以前用过,好像没有去管他的分页配置
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

120

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部