注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

始めの一歩

不是世界变得无聊了,而是你变成了无聊的人……

 
 
 

日志

 
 

【51】技巧 3 -- Keil C51 中 P1.0、P1^0、P1_0 的区别  

2012-03-03 16:11:18|  分类: Fateの51单片机の |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

以 Keil uVision2 为例,在安装路径下的 \ C51 \ INC 文件夹中,打开 reg52.h 头文件,可以看到:

  #ifndef __REG52_H__
  #define __REG52_H__

  /*  BYTE Registers  */
  sfr P0    = 0x80;
  sfr P1    = 0x90;
  sfr P2    = 0xA0;
  sfr P3    = 0xB0;
  sfr PSW   = 0xD0;
  sfr ACC   = 0xE0;

其中 sfr 关键字是 C51 特有的关键字,它用来定义变量和地址的对应关系。如 sfr P0 = 0x80,意思就是:P0 口的地址是 0x80。(0x80 是 C51 的写法,等价于汇编的 80H)

然后进入正题:

P1.0 指的是单片机 P1 口的第 0 位,A51 汇编编程时使用,如 SETB P1.0

P1^0 指的是上面图中,头文件中定义的 P1 寄存器的第 0 位,C51 编程时使用

P1_0 本来无特殊含义,当你想在 C51 中,使用 P1 口的第 0 位时,需要指定一个变量代表 P1^0(是不是必须的,博主没有试验过),这时候就需要使用 sbit 关键字,用法如下:

  sbit P1_0 = P1^0;

  sbit XXXX = P1^0;

也就是说,P1_0 只是个变量名称,实际上变量名用什么都可以(前提是符合命名规则)

  评论这张
 
阅读(2701)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018