电工学习网

 找回密码
 立即注册

C51单片机的数据类型

2015-5-11 07:31| 编辑:电工学习网| 查看: 16448| 评论: 0

       C51支持C语言的所有标准数据类型,除此之外,还加入了用于专门访问80C51硬件的数据类型,如:bitsbitsfrsfrl6。这些数据类型在ANSIC中是没有的。

       bit:声明位变量,其值为01

       sbit:声明可位寻址变量中的某个位变量,其值为01

       sfr:声明特殊功能寄存器,地址范围为:0255

       sfr16:同上,地址范围为065535

       C51编译器支持表5-1列出的数据类型。除了这些变量类型外,变量能被组合到结构、联合和数组中。兼容ANSIC标准的数据类型可通过指针访问,但扩展的bitsbitsfrsfrl6数据类型专用于访问80C51的特殊功能寄存器,故不能通过指针进行访问。

5-1 C51数据类型

数据类型

字节

值的范围

char

8

  1

128127

unsigned char

8

  1

0255

enum

16

  2

3276832767

short

16

  2

3276832767

unsigned short

16

  2

065535

int

16

  2

3276832767

unsigned int

16

  2

065535

long

32

  4

21474836482147483647

unsigned long

32

  4

04294967295

float

32

  4

±1.175494E-38~±3.402823E+38

bit

1

 

01

sbit

1

 

01

sfr

8

  1

0255

sfr16

16

  2

065535

       80C5121个特殊功能寄存器,它们在片内RAM安排了绝对地址,80C51的芯片说明中已经为它们用预定义标识符起了名字。C51要做的就是承认这些标识符并将其与绝对地址联系起来。可以用sfrsfr16两种标识符。

       5.1 sfr数据类型定义特殊功能寄存器示例。

         sfr SCON = 0x98     /*声明SCON为串口控制器,地址为0x98*/

         sfr P0 = 0x80            /*声明P0为特殊功能寄存器,地址为0x80*/

         sfr TMOD = 0x89   /*声明TMOD为定时器/计数器的模式寄存器,地址为0x89*/

         sfr PSW = 0xD0       /*声明PSW为特殊功能寄存器,地址为0xD0*/

       说明:sfr之后的寄存器名称必须大写,定义之后可以直接对这些寄存器赋值。

       在许多80C51派生系列中可用两个连续地址的特殊功能寄存器指定一个16位值,如:

       sfr16 T2 = 0xCDCC    /*声明T216位特殊功能寄存器,地址为0CCH(低字节)0CDH(高字节)*/

       5.2 sbit的数据类型定义位变量示例。

       sbit  CY = PSW^7  /*从已声明的PSW中,指定PSW.7CY*/

       sbit   CY = 0xD0^7/*整数0xD0为基地址,指定0xD0的第七位为CY*/

       sbit声明中,“^”号右边的表达式定义特殊位在寄存器中的位置,值必须是07

看过《C51单片机的数据类型》的人还看了以下文章:

发表评论

最新评论

  • 实时时钟芯片DS1302
  • 8255的控制字
  • 单片机点亮led灯程序详解
  • 单片机引脚功能定义
  • 单片机数码管显示原理
  • RS485通信和Modbus协议

电工学习网 ( )

GMT+8, 2023-3-22 18:55

Powered by © 2011-2022 www.shop-samurai.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

返回顶部