下载此文档

C语言关键字用法.doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
c 语言中 bit和 sbit 的区别 c 语言中 bit和 sbit 的区别:1. bit和 sbit 都是 C51 扩展的变量类型。 bit和 int char 之类的差不多,只不过 char=8 位, bit=1 位而已。都是变量,编译器在编译过程中分配地址。除非你指定,否则这个地址是随机的。这个地址是整个可寻址空间, RAM+FLASH+ 扩展空间。 bit 只有 0和1 两种值,意义有点像 Windows 下 VC 中的 BOOL 。 sbi t 是对应可位寻址空间的一个位, 可位寻址区: 20H ~ 2FH 。一旦用了 sbi xxx = REGE^ 6 这样的定义, 这个 sbit 量就确定地址了。 sbit 大部分是用在寄存器中的, 方便对寄存器的某位进行操作的。 2. bit 位标量 bit 位标量是 C51 编译器的一种扩充数据类型, 利用它可定义一个位标量, 但不能定义位指针, 也不能定义位数组。它的值是一个二进制位, 不是 0 就是 1, 类似一些高级语言中的 Boolean 类型中的 True 和 False 。 3. sfr 特殊功能寄存器 sfr 也是一种扩充数据类型,点用一个内存单元,值域为 0~ 255 。利用它可以访问 51 单片机内部的所有特殊功能寄存器。如用 sfr P1=0× 90 这一句定 P1为 P1 端口在片内的寄存器,在后面的语句中我们用以用 P1= 255 (对 P1 端口的所有引脚置高电平)之类的语句来操作特殊功能寄存器。 sfr P1=0× 90; // 定义 P1 I/O 口, 其地址 90H sfr 关键定后面是一个要定义的名字, 可任意选取, 但要符合标识符的命名规则, 名字最好有一定的含义如 P1 口可以用 P1 为名, 这样程序会变的好读好多. 等号后面必须是常数,不允许有带运算符的表达式, 而且该常数必须在特殊功能寄存器的地址范围之内(80H-FFH), 具体可查看附录中的相关表. sfr 是定义 8 位的特殊功能寄存器而 sfr16 则是用来定义 16 位特殊功能寄存器, 如 8052 的 T2 定时器, 可以定义为: sfr16 T2 = ; // 这里定义 8052 定时器 2, 地址为 H,T2H=CDH 用 sfr16 定义 16 位特殊功能寄存器时, 等号后面是它的低位地址, 高位地址一定要位于物理低位地址之上. 注意的是不能用于定时器 0和1 的定义. sbit 可定义可位寻址对象. 如访问特殊功能寄存器中的某位. 其实这样应用是经常要用的如要访问 P1 口中的第 2 个引脚 . 我们可以照以下的方法去定义: (1) sbit 位变量名= 位地址 sbit P1_1 = Ox91; sfr 一样 sbit 的位地址必须位于 80H-FFH 之间. (2) sbit 位变量名= 特殊功能寄存器名^ 位位置 sft P1=0× 90; sbit P1_1 = P1^ 1; // 先定义一个特殊功能寄存器名再指定位变量名所在的位置, 当可寻址位位于特殊功能寄存器中时可采用这种方法(3) sbit 位变量名= 字节地址^ 位位置 sbit P1_1 =0× 90^ 1; 这种方法其实和 2 是一样的, 只是把特殊功能寄存器的位址直接用

C语言关键字用法 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人lgl6feqs8
  • 文件大小110 KB
  • 时间2017-05-17