KeilC特殊功能寄存器和位定义.ppt

上传人:wuy****n92 文档编号:70793475 上传时间:2023-01-28 格式:PPT 页数:8 大小:311.47KB
返回 下载 相关 举报
KeilC特殊功能寄存器和位定义.ppt_第1页
第1页 / 共8页
KeilC特殊功能寄存器和位定义.ppt_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《KeilC特殊功能寄存器和位定义.ppt》由会员分享,可在线阅读,更多相关《KeilC特殊功能寄存器和位定义.ppt(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、使使用用关关键键字字sfr和和sfr16可可以以直直接接对对51单单片片机机的的特特殊殊寄寄存器进行定义,格式如下:存器进行定义,格式如下:sfr 定义的名字定义的名字=特殊功能寄存器地址特殊功能寄存器地址;Sfr16 定义的名字定义的名字=特殊功能寄存器地址特殊功能寄存器地址;例如:例如:sfr P1=0 x90;/定义定义P1 I/O口,其地址口,其地址90Hsfr关关键键字字后后面面是是一一个个要要定定义义的的名名字字,可可任任意意选选取取,但要符合标识符的命名规则。但要符合标识符的命名规则。等等号号后后面面必必须须是是地地址址常常数数,不不允允许许有有带带运运算算符符的的表表达达式式,

2、而而且且该该常常数数必必须须在在特特殊殊功功能能寄寄存存器器的的地地址址范范围围之之内内(80HFFH)。)。一、一、sfr和和sfr16的使用的使用在单片机的在单片机的C语言程序设计中,可以通过关键字语言程序设计中,可以通过关键字sfr来定义所有特殊来定义所有特殊功能寄存器,从而在程序中直接访问它们,例如:功能寄存器,从而在程序中直接访问它们,例如:sfr P1=0 x90;/特殊功能寄存器特殊功能寄存器P1的地址是的地址是90H对应对应P1口的口的8个个I/O引脚在程序中就可以直接使用引脚在程序中就可以直接使用P1这个特殊功能寄这个特殊功能寄存器了,如:存器了,如:P1=0 x00;/将将

3、P1口的口的8位位I/O口全部清口全部清0C语言中,还可以通过关键字语言中,还可以通过关键字sbit来定义特殊功能寄存器中的可寻址来定义特殊功能寄存器中的可寻址位,如:位,如:sbit P1_0=P10;通常情况下,这些特殊功能寄存器已经在头文件通常情况下,这些特殊功能寄存器已经在头文件reg51.h中定义了,中定义了,只要在程序中包含了该头文件,就可以直接使用已定义的特殊功能寄存只要在程序中包含了该头文件,就可以直接使用已定义的特殊功能寄存器。器。如果没有头文件如果没有头文件reg51.h,或者该文件中只定义了部分特殊功能寄存,或者该文件中只定义了部分特殊功能寄存器和位,用户也可以在程序中自

4、行定义。器和位,用户也可以在程序中自行定义。sfr16用用来来定定义义16位位特特殊殊功功能能寄寄存存器器,如如8052的的T2定定时器,可以定义为:时器,可以定义为:sfr16 T2=0 xCC;/这这里里定定义义8052定定时时器器2,地地址址为为T2L=CCH,T2H=CDH用用sfr16定定义义16位位特特殊殊功功能能寄寄存存器器时时,等等号号后后面面是是它它的的低低位位地地址址,高高位位地地址址一一定定要要位位于于物物理理低低位位地地址址之之上上。注注意的是不能用于定时器意的是不能用于定时器0和和1的定义。的定义。?sfr16 占用两个内存单元,值域为占用两个内存单元,值域为 065

5、535。sfr16 和和 sfr 一样用于操作特殊功能寄存一样用于操作特殊功能寄存 器,所不一样的是它用器,所不一样的是它用于操作占两个字节的寄存器,如定时器于操作占两个字节的寄存器,如定时器 T0 和和 T1。二、二、sbit和和bit的使用的使用51单片机的内部单片机的内部RAM中,中,20H2FH为位操作区域,为位操作区域,20H的最低位为的最低位为00H,2FH的最高位为的最高位为7FH,位地址的范,位地址的范围是围是00H07FH,共,共16*8=128位,可以对每一位进行独立位,可以对每一位进行独立操作。操作。特殊功能寄存器中,对于字节地址能被特殊功能寄存器中,对于字节地址能被8整

6、除的寄存器,整除的寄存器,也可进行位寻址的地址,其位地址从也可进行位寻址的地址,其位地址从80H开始。开始。特殊功能寄存器的地址和最低位的位地址相同,比如特殊功能寄存器的地址和最低位的位地址相同,比如P0口的地址是口的地址是80H,那么,那么P0口的最低位的位地址也是口的最低位的位地址也是80H,次低位是,次低位是81H,最高位的地址是,最高位的地址是87H,所以,所以P0口的口地口的口地址址80H与最低位的位地址与最低位的位地址80H,在物理结构上是完全不同,在物理结构上是完全不同的。的。1、bit和和int char差不多,只不过差不多,只不过char=8位位,bit=1位。都是位。都是变

7、量,编译器在编译过程中自动分配地址。除非你指定,否则变量,编译器在编译过程中自动分配地址。除非你指定,否则这个地址是随机的。这个地址是位寻址区。这个地址是随机的。这个地址是位寻址区。bit只有只有0和和1两种值两种值2、sbit(静态地址位定义)是单片机(静态地址位定义)是单片机c语言语言 中的一种扩充中的一种扩充数据类型,利用它能访问芯片内部的数据类型,利用它能访问芯片内部的 RAM 中的可寻址位中的可寻址位(20H2FH)或特殊功能寄存器中的可寻址位。)或特殊功能寄存器中的可寻址位。一旦用了一旦用了sbit xxx=REGE6这样的定义,这个这样的定义,这个sbit变量就变量就确定地址了。

8、确定地址了。sbit大部分是用在专用寄存器中的,方便对寄存大部分是用在专用寄存器中的,方便对寄存器的某位进行操作。器的某位进行操作。3、bit位标量位标量bit位标量同样是位标量同样是C51编译器的一种扩充数据类型,利用它编译器的一种扩充数据类型,利用它可定义一个位标量,但不能定义位指针,也不能定义位数组。可定义一个位标量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是它的值是一个二进制位,不是0就是就是1,类似一些高级语言中的,类似一些高级语言中的Boolean类型中的类型中的True和和False。sbit可可定定义义位位寻寻址址对对象象,用用sbit定定义义的的位位地地址

9、址必必须须是是专专用寄存器,字节地址必须位于用寄存器,字节地址必须位于80H-FFH之间,方法如下之间,方法如下:(1)sbit 位变量名位地址位变量名位地址sbit P1_1=0 x91 ;是把位的绝对地址赋给位变量是把位的绝对地址赋给位变量(2)sbit 位变量名特殊功能寄存器名位变量名特殊功能寄存器名位位置位位置sft P1=0 x90 ;先定义一个特殊功能寄存器名先定义一个特殊功能寄存器名sbit P1_1=P1 1 ;再指定位变量名所在的位置再指定位变量名所在的位置(3)sbit 位变量名字节地址位变量名字节地址位位置位位置如:如:sbit P1_1=0 x90 1;(3)和和(2)

10、其其实实是是一一样样的的,只只是是把把特特殊殊功功能能寄寄存存器器的的位位址址直接用常数表示。直接用常数表示。在在C51存存储储器器类类型型中中提提供供一一个个bdata的的存存储储器器类类型型,是是指指可可位位寻寻址址的的数数据据存存储储器器,位位于于单单片片机机的的可可位位寻寻址址区区中中,可以将要求可位寻址的数据定义为可以将要求可位寻址的数据定义为bdata,如,如:uchar bdata ib;/在位寻址区定义无符号字符在位寻址区定义无符号字符变量变量ibsbit ib7=ib7/用关键字用关键字sbit定义位变量定义位变量ib7Int bdata ab2;/在可位寻址区定义数组在可位

11、寻址区定义数组ab2 sbit ab12=ab112;/定定义义ab12为为数数组组ab1中中的的第第12位位 操操作作符符“”后后面面的的位位位位置置的的最最大大值值取取决决于于指指定定的的基基址址类型,类型,char 0-7,int 0-15,long 0-31。sfr P1=0 x90;/这这里里没没有有使使用用预预定定义义文文件件,而而是是自自己己定义特殊寄存器。定义特殊寄存器。sbit P1_0=P1 0;sbit P1_1=0 x91;sbit P1_7=0 x90 7;/这这里里分分别别定定义义P1端端口口和和P10,P11,P17引引脚脚,之之前前我我们们使使用用的的预预定定义义文文件件其其实实就是这个作用。就是这个作用。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁