C51的数据结构.ppt
《C51的数据结构.ppt》由会员分享,可在线阅读,更多相关《C51的数据结构.ppt(46页珍藏版)》请在课桌文档上搜索。
1、C51的数据结构,C51变量定义的四个要素,存储种类,一、自动变量(auto)在函数内部定义的变量,退出函数后,分配给该变量的存储单元即自行消失(局部变量)。二、外部变量(extern)在函数外部定义的变量,可始终保持变量的数值(全局变量)。,【强调】一个外部变量只能被定义一次,在定义文件之外的地方使用时需用extern进行声明。,三、静态变量(static)静态局部变量/静态全局变量四、寄存器变量(register)以寄存器为存储空间的变量*若省略存储种类选项,则变量默认为自动变量,基本数据类型,10,10,10,10,C51扩充数据类型,C51扩充数据类型:bit、sfr或sfr16、sb
2、it,sfr或sfr16型,sfr定义特殊功能寄存器SFR的地址,语法规则如下:sfr 或 sfr16 sfr_name=字节地址常数;例如,sfr P0=0 x80;/定义P0口地址80Hsfr PCON=0 x87;/定义PCON地址87H sfr16 DPTR=0 x82;/定义DPTR的低端地址82H,有些新型的单片机,有些新增的寄存器在Keil C的包含文件夹“inc”里可能没有,这是就需要在程序的最前面用此方法定义。,如宏晶公司的单片机STC12C5A60S中为一个称作AUXR的寄存器,在内部RAM中的地址为0 x8E,可定义如下:sfr AUXR=0 x8E;这种定义以后,在程序
3、中就可对AUXR进行操作。,sbit型,sbt型是能够按位寻址的特殊功能寄存器中位变量。其定义的一般格式为:sbit位变量名 位地址表达式,位地址表达式有三种形式,直接位地址;特殊功能寄存器名带位号;字节地址带位号。,1、sbit bit_name=位地址常数;,将位于SFR字节地址内的绝对位地址定义为位变量名。例如,sbit CY=0 xD7;,2、sbit bit_name=sfr_name 位位置;,将已有定义的SFR的07位定义为位变量名。例如:sfr PSW=0 xD0;sbit CY=PSW7;,3、sbit bit_name=sfr字节地址 位位置;,将SFR字节地址的相对位地址
4、定义为位变量名。例如:sbit CY=0 xD07;以上三种定义对于CY来讲是一样的,即等效.,举例:点亮一个发光二极管,图6.1 复位时的仿真情况,解答,#includesbit D1=P10;main()D1=;while(1);,对位变量的定义也可以是:“sbit D=0 x900”,因为P1口的地址为0 x90.,C51编译器在头文件“reg51.h”中定义了全部sfr/sfr16和sbit变量。用一条预处理命令#include 把这个头文件包含到C51程序中,无需重定义即可直接使用它们的名称。reg51.h中的内容如下:,#ifndef _REG51_H_#define _REG51
5、_H_/*BYTE Register*/sfr P0=0 x80;sfr P1=0 x90;/*BIT Register*/*PSW*/sbit CY=0 xD7;sbit AC=0 xD6;sbit RI=0 x98;#endif,4、几点说明,1)用sbit定义的位变量,必须能够按位操作,而不能够对无位操作功能的位定义位变量。2)用sbit定义位变量,必须放在函数外面作为全局位变量,而不能在函数内部定义。3)用sbit每次只能定义一个位变量。,4)对其它模块定义的位变量(bit型或 sbit型)的引用声明,都使用bit。5)用sbit定义的是一种绝对定位的位变量(因为名字是与确定位地址对应
6、的),具有特定的意义,在应用时不能像bit型位变量那样随便使用。,三、bit 型位变量的C51定义,除了通常的C数据类型外,C51编译器还支持“bit”数据类型,称之为位变量,只有一位,其值只能是0或1,这对于记录系统状态是十分有用的,因为它往往需要使用某一位而不是整个数据字节。,例如:bit door=0;/定义一个叫door的变量且初值为0与标准C的变量定义及初始化用法是一致的。,在C51中定义位变量的一般语法形式如下:,位类型标识符(bit)位变量名;bit my_bit;/*把my_bit 定义为位变量*/bit direction_bit;/*把direction_bit定义为位变量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C51 数据结构
![提示](https://www.desk33.com/images/bang_tan.gif)
链接地址:https://www.desk33.com/p-225226.html