单片机原理:7-6-补-3-2-2-C51语言的特殊功能寄存器及位变量定义_第1页
单片机原理:7-6-补-3-2-2-C51语言的特殊功能寄存器及位变量定义_第2页
单片机原理:7-6-补-3-2-2-C51语言的特殊功能寄存器及位变量定义_第3页
单片机原理:7-6-补-3-2-2-C51语言的特殊功能寄存器及位变量定义_第4页
单片机原理:7-6-补-3-2-2-C51语言的特殊功能寄存器及位变量定义_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章

C51语言编程基础

13.2.2C51语言的特殊功能寄存器及位变量定义介绍C51如何对特殊功能寄存器及位变量进行定义并访问。1.特殊功能寄存器的C51定义C51语言允许通过使用关键字sfr、sbit或直接引用编译器提供的头文件来对特殊功能寄存器(SFR)进行访问,特殊功能寄存器分布在片内RAM高128字节中,只能采用直接寻址方式。(1)使用关键字定义sfr。为能直接访问特殊功能寄存器SFR,C51提供了一种定义方法,即引入关键字sfr,语法如下:sfr

特殊功能寄存器名字=特殊功能寄存器地址;例如:

sfrIE=0xA8; //中断允许寄存器IE地址A8H

sfrTCON=0x88; //定时器/计数器控制寄存器地址88H

sfrSCON=0x98; //串行口控制寄存器地址98H在8051中,要访问16位SFR,要用关键字sfr16。16位SFR的低字节地址须作为“sfr16”的定义地址,例如:3sfr16DPTR=0x82 //DPTR的低8位地址为82H,高8位地址为83H(2)通过头文件访问SFR。各种衍生型的8051单片机的特殊功能寄存器的数量与类型有时是不相同的,对其访问可通过头文件访问来进行为用户处理方便,C51把8051(或8052单片机)常用的特殊功能寄存器和其中的可寻址位进行了定义,放在一个reg51.h(或reg52.h)的头文件中。当用户要使用时,只需在使用之前用一条预处理命令#include<reg51.h>把这个头文件包含到程序中,就可使用特殊功能寄存器名和其中的可寻址位名称了。用户可对头文件进行增减。4头文件引用举例如下:#include<reg51.h> //包含8051单片机的头文件voidmain(void){ TL0=0xf0; //给T0低字节TL0设置时间常数,已在reg51.h中定义

TH0=0x3f; //给T0高字节TH0设置时间常数,已在reg51.h中定义

TR0=1; //启动定时器0 ……}(3)特殊功能寄存器中的位定义。对SFR中的可寻址位的访问,要使用关键字来定义可寻址位,共3种方法。①sbit

位名=特殊功能寄存器^位置;例如:sfrPSW=0xd0; //定义PSW寄存器的字节地址0xd0sbitCY=PSW^7; //定义CY位为PSW.7,地址为0xd0sbitOV=PSW^2; //定义OV位为PSW.2,地址为0xd2②sbit

位名=字节地址^位置;

例如:sbitCY=0xd0^7; //CY位地址为0xd7sbitOV=0xd0^2; //OV位地址为0xd2③sbit

位名=位地址;将位的绝对地址赋给变量,位地址必须在0x80~0xff。例如: sbitCY=0xd7; //CY位地址为0xd7sbitOV=0xd2; //OV位地址为0xd26【例】AT89S51单片机片内P1口的各寻址位的定义如下:sfrP1=0x90;sbitP1_7=P1^7;sbitP1_6=P1^6;sbitP1_5=P1^5;sbitP1_4=P1^4;sbitP1_3=P1^3;sbitP1_2=P1^2;sbitP1_1=P1^1;sbitP1_0=P1^0;

2.位变量的C51定义(1)由于8051可位操作,C51扩展的“bit”数据类型用来定义位变量,这是与标准C的不同之处。7C51采用关键字“bit”来定义位变量,一般格式为:bitbit_name;例如:

bitov_flag; //将ov_flag定义为位变量bitlock_pointer; //将lock_pointer定义为位变量(2)函数可以包含类型为bit的参数,也可将其作为返回值。C51程序函数可以包含类型为“bit”的参数,也可将其作为返回值。例如:bitfunc(bitb0,bitb1); //位变量b0与b1作为函数func的参数{

……

return(b1); //位变量b1作为return函数的返回值}8(3)位变量定义的限制。位变量不能用来定义指针和数组。例如:

bit*ptr;//错误,不能用位变量来定义指针

bitarray[]; //错误,不能用位变

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论