-第2?来单片如的官应用程秀设计 对于片外扩展I/O口,则根据硬件译码地址,将其视作为片外 数据存储器的一个单元,使用# define语句进行定义。例如 #include <absacc. h> #define PORTa XBYTE [OXF FCO alsace.h是C51中绝对地址访问函数的头文件,将 PORTA定义 为外部I/O口,地址为 FFCOH,长度为8位 日在头文件或程序中对这些片外I/O口进行定义后,在程序 中就可以自由使用变量名与其实际地址的联系,以便使程序员能 用软件模拟MCS-51的硬件操作
第7章 单片机的C语言应用程序设计 对于片外扩展I/O口,则根据硬件译码地址,将其视作为片外 数据存储器的一个单元,使用#define语句进行定义。例如 #include <absacc.h> #define PORTA XBYTE [0xFFC0] absacc.h是C51中绝对地址访问函数的头文件,将PORTA定义 为外部I/O口,地址为 FFC0H,长度为8位。 一旦在头文件或程序中对这些片外I/O口进行定义后,在程序 中就可以自由使用变量名与其实际地址的联系,以便使程序员能 用软件模拟MCS-51的硬件操作
-第2?来单片如的官应用程秀设计- 76位变量的C51定义 (1)位变量C51定义。使用C51编程时,定义了位变量后,就可 以用定义了的变量来表示MCS-51的位寻址单元 位变量的C51定义的一般语法格式如下 位类型标识符(bit)位变量名; 例如: bit direction bit /*把 direction bit定义为位变量* bit look pointer /*把look_ pointer定义为位变量*
第7章 单片机的C语言应用程序设计 (1) 位变量C51定义。使用C51编程时,定义了位变量后,就可 以用定义了的变量来表示MCS-51的位寻址单元。 位变量的C51定义的一般语法格式如下: 位类型标识符(bit) 位变量名; 例如: bit direction_bit ; /* 把direction_bit定义为位变量 */ bit look_pointer ; /* 把look_pointer定义为位变量 */ 7.6 位变量的C51定义
-第2?来单片如的官应用程秀设计- (2)函数可包含类型为"bit"的参数,也可以将其作为返回值。 例如 bit fund(bitb0,bitb1)/*变量b0,b1作为函数的参数* return(b1);/*变量b1作为函数的返回值* 注意,使用(# pragma disable)或包含明确的寄存器组切换 ( using n)的函数不能返回位值,否则编辑器将会给出一个错误 信息
第7章 单片机的C语言应用程序设计 (2) 函数可包含类型为"bit"的参数,也可以将其作为返回值。 例如: bit func(bit b0, bit b1) /* 变量b0,b1作为函数的参数*/ { return (b1); /* 变量b1作为函数的返回值 */ } 注意,使用(#pragma disable)或包含明确的寄存器组切换 (using n)的函数不能返回位值,否则编辑器将会给出一个错误 信息。 …
-第2?来单片如的官应用程秀设计- (3)对位变量定义的限制。位变量不能定义成一个指针,如 不能定义:bit* bit pointer不存在位数组,如不能定义:bit b array] 在位定义中,允许定乂存储类型,位变量都被放入一个位 段,此段总位于MCS-51片内的RAM区中。因此,存储类型限制 为data和 licata,如果将位变量的存储类型定义成其它存储类型都 将编译出错
第7章 单片机的C语言应用程序设计 (3) 对位变量定义的限制。位变量不能定义成一个指针,如 不能定义:bit * bit_pointer。不存在位数组,如不能定义:bit b_array[ ]。 在位定义中,允许定义存储类型,位变量都被放入一个位 段,此段总位于MCS-51片内的RAM区中。因此,存储类型限制 为data和idata,如果将位变量的存储类型定义成其它存储类型都 将编译出错
-第章单片如的德官应用设计- 例1先定义变量的数据类型和存储类型: bdata int ibase *定义 ibase为 bdata整型变量* bdata char bary[4]: /*bary4定义为 bdata字符型数组* 然后可使用"sb"定义可独立寻址访问的对象位: bit mybito= ibase^0;/*myb定义为base的第0位* bit mybit115= ibase^15;/*mybt0定义为base的第15位* bit aryo7= barolo]7;/AryO7定义为abry[0]的第7位* sbit Ary37=bary3]^7;/*Ary37定义为abry3]的第7位*
第7章 单片机的C语言应用程序设计 例1 先定义变量的数据类型和存储类型: bdata int ibase; /* 定义ibase为bdata整型变量 */ bdata char bary[4]; /* bary[4]定义为bdata字符型数组 */ 然后可使用"sbit"定义可独立寻址访问的对象位: sbit mybit0 = ibase^0 ; /* mybit0定义为ibase的第0位 */ sbit mybit15 = ibase^15; /* mybit0定义为ibase的第15位 */ sbit Ary07 = bary[0]^7 ; /* Ary07定义为abry[0]的第7位 */ sbit Ary37 = bary[3]^7 ; /* Ary37定义为abry[3]的第7位 */