51头文件总结

1)“文件包含”处理概念 

  

所谓“文件包含”是指在一个文件内将另外一个文件的内容全部包含进来。因为被包含的文件中的一些定义和命令使用的频率很高,几乎每个程序中都可能要用到,为了提高编程效率,减少编程人员的重得劳动,将这些定义和命令单独组成一个文件,如reg51.h,然后用#include<reg51.h>包含进来就可以了,这个就相当于工业上的标准零件,拿来直接用就可以了。

2)寄存器地址及位地址声明的原因

 

其实相当于为这些内存地址取个名字。reg51.h里面主要是一些特殊功能寄存器的地址声明,对可以位寻址的,还包括一些位地址的声明,如果如sfr P1=0x80; sfr IE=0xA8;sbit EA=0xAF等。

注意这里出现了一个使用很频繁的sfr和sbit。

sfr 表示特殊功能寄存器的意思,它并非标准C 语言的关键字,而是Keil为能直接访问80C51中的SFR 而提供了一个新的关键词,其用法是:sfr  特殊功能寄存器名=地址值

(注意对于头文件里“特殊功能寄存器名”,用户实际上也可以修改 的,如P1=0x80,也可改为A1=0x80,但sfr和地址值则不能更改,否者会编译出错。)   

 sbit表示位的意思,它也是非标准C 语言的关键字,编写程序时如需操作寄存器的某一位(可位寻址的寄存器才能用)时,需定义一个位变量,此时就要要到sbit,如sbit deng=P1^0,sbit EA = 0xAF;

需要注意的是,位定义时有些特殊,用法有三种: 

第一种方法:sbit 位变量名=寄存器位地址值 

第二种方法:sbit 位变量名=SFR名称^寄存器位值(0-7)

第三种方法:sbit 位变量名=SFR地址值^寄存器位值

“名称^变量位地址值”中“^”,它是由keil软件的规定的 ,不能写成其它的,只能这样能才编译通过。  以上是对寄存器地址和位地址的定义和声明作了解释,大家需要牢牢记住:只有对寄存器及相关位进行声明地址后,我们才能对其进行赋相关的值,keil软件才能编译通过。

即:只有对寄存器及相关位进行声明地址后,我们才能对其进行赋相关的值,keil软件才能编译通过。

 

3REG51.H头文件原文及解释

下面的这些相当于给各寄存器起个别名,不过这个别名为了易于识别,对应的都是相应功能的寄存器名称

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值