KEIL C51的应用 C语言是一种编译型程序设计语言,它兼顾 了多种高级语言的特点,并具备汇编语言 的功能。目前,使用C语言进行程序设计已 经成为软件开发的一个主流。用C语言开发 系统可以大大缩短开发周期,明显增强程 序的可读性,便于改进和扩充。而针对8051 的C语言日趋成熟,成为了专业化的实用高 级语言
KEIL C51的应用 ◼ C语言是一种编译型程序设计语言,它兼顾 了多种高级语言的特点,并具备汇编语言 的功能。目前,使用C语言进行程序设计已 经成为软件开发的一个主流。用C语言开发 系统可以大大缩短开发周期,明显增强程 序的可读性,便于改进和扩充。而针对8051 的C语言日趋成熟,成为了专业化的实用高 级语言
(C-51的特点 C语言作为一种非常方便的语言而得到广泛的支持 国内最通用的是eic51 C语言程序本身不依赖于机器硬件系统,基本上不 作修改就可将程序从不同的单片机中移植过来。 c提供了很多数学函数并支持浮点运算,开发效率 高,故可缩短开发时间,增加程序可读性和可维护 性
C语言作为一种非常方便的语言而得到广泛的支持, 国内最通用的是Keil C51. C语言程序本身不依赖于机器硬件系统,基本上不 作修改就可将程序从不同的单片机中移植过来。 C提供了很多数学函数并支持浮点运算,开发效率 高,故可缩短开发时间,增加程序可读性和可维护 性。 ㈠ C-51的特点
C51与ASM-51相比,有如下优点: 1.对单片机的指令系统不要求了解,仅要求对 8051的存贮器结构有初步了解; 2.寄存器分配、不同存贮器的寻址及数据类型 等细节可由编译器管理; 3.程序有规范的结构,可分成不同的函数,这 种方式可使程序结构化; 4.具有将可变的选择与特殊操作组合在一起的 能力,改善了程序的可读性; 5供的库包含许多标准子程序,具有较强的 6;电于是有方便的模块化编程技术,使已编好 程序可
C-51与ASM-51相比,有如下优点: 1. 对单片机的指令系统不要求了解,仅要求对 8051 的存贮器结构有初步了解; 2. 寄存器分配、不同存贮器的寻址及数据类型 等细节可由编译器管理; 3. 程序有规范的结构,可分成不同的函数,这 种方式可使程序结构化; 4. 具有将可变的选择与特殊操作组合在一起的 能力,改善了程序的可读性; 5. 提供的库包含许多标准子程序,具有较强的 数据处理能力; 6. 由于具有方便的模块化编程技术,使已编好 程序可容易地移植;
C51存储类型 存储类型寻址空间数据长度值域范围 data 片内直接寻址8 0~127 RAM idata 片内间接寻址8 0~255 RAM pdata 分页寻址 0~255 片外RAM
C51存储类型 存储类型 寻址空间 数据长度 值域范围 data 片内直接寻址 RAM 8 0~127 idata 片内间接寻址 RAM 8 0~255 pdata 分页寻址 片外 RAM 8 0~255
存储类型寻址空间数据长度值域范围 xdata 片外数据存16 0~65535 储(64K) code 片内统一编16 0~65535 址ROM (64K) bdata 片内可位寻1 0~127 址的RAM (16bvet)
存储类型 寻址空间 数据长度 值域范围 xdata 片外数据存 储 (64K) 16 0~65535 code 片内统一编 址ROM (64K) 16 0~65535 bdata 片内可位寻 址的RAM (16byet) 1 0~127
■C51的数据声明的一般格式如下 类型说明符修饰符标识符=初值 例如: unsigned char code flag=0x0f 就是声明一个无符号的har型变量Flag,并给 他赋初值为0xOf;并且声明他所在的存储空间 在片内统一编址的ROM中。 ■声明中,如果没有修饰符,则数据默认的存 储空间为data型,也就是在片内RAM中
◼ C51的数据声明的一般格式如下 ◼ [类型说明符][修饰符] 标识符[=初值]…… ◼ 例如:unsigned char code Flag = 0x0f; 就是声明一个无符号的char型变量Flag,并给 他赋初值为0x0f;并且声明他所在的存储空间 在片内统一编址的ROM中。 ◼ 声明中,如果没有修饰符,则数据默认的存 储空间为data型,也就是在片内RAM中
)C-51的程序结构 与一般C语言的结构相同,以main(函数为程序人 口,程序体中包含若干语句还可以包含若干函数。 C-51函数的一般格式 类型函数名(参数表) 数据说明部分 语句执行部分
㈡ C-51的程序结构 与一般C语言的结构相同,以main()函数为程序人 口,程序体中包含若干语句还可以包含若干函数。 C-51函数的一般格式 类型 函数名(参数表) { 数据说明部分 语句执行部分 }
C-51的数据类型 基本数据类型 类型符号 关键字 所占位数 数的表示范围 (signed)int 16 32768~32767 有「( signed)short 16 32768~32767 (signed) long -2147483648~2147483647 unsigned int 0~65535 无 unsigned short int 16 0~65535 unsigned long int 32 0~4294967295 有foat 32 3.4e-38~3.4e38 有dob 64 1.7e-308~1.7e308 字有c 128~127 管无 型 unsigned char 0~255
㈢ C-51的数据类型 基本数据类型 类型符号 关键字 所占位数 数的表示范围 整 型 字 符 型 实 型 有 无 (signed) int 16 -32768~32767 (signed) short 16 -32768~32767 (signed) long 32 -2147483648~2147483647 16 unsigned int 0~65535 32 0~4294967295 unsigned long int unsigned short int 16 0~65535 有 float 32 3.4e-38~3.4e38 有 double 64 1.7e-308~1.7e308 有 char 8 -128~127 无 unsigned char 8 0~255
C语言中的基本数据类型 型符号 关键字 所占位数 数的表示范围 (Signed)int 16 32768~32767 有 (Signed)short 32768~32767 整 (signed) long 32 2147483648~2147483647 型 unsigned int 16 0~65535 无 unsigned short int 16 0~65535 unsigned long int 32 0~4294967295 有foat 32 3.4e-38~3.4e38 型有 double 641.7e-308~1.7e308 有 chal 8-128 ~127 符 无 unsigned char 0~255
C语言中的基本数据类型 类型符号 关键字 所占位数 数的表示范围 整 型 字 符 型 实 型 有 无 (signed) int 16 -32768~32767 (signed) short 16 -32768~32767 (signed) long 32 -2147483648~2147483647 16 unsigned int 0~65535 32 0~4294967295 unsigned long int unsigned short int 16 0~65535 有 float 32 3.4e-38~3.4e38 有 double 64 1.7e-308~1.7e308 有 char 8 -128~127 无 unsigned char 8 0~255
(续)C-51的数据类型扩充定义 sfr;:特殊功能寄存器声明 sfr16:sfr的16位数据声明 sbit特殊功能位声明 bit位变量声明 例: sfr scon=0X98; sfr16 T2=0xcc. sbit OV= PSWA 2
㈢(续) C-51的数据类型扩充定义 sfr:特殊功能寄存器声明 sfr16:sfr的16位数据声明 sbit:特殊功能位声明 bit:位变量声明 例:sfr SCON = 0X98; sfr16 T2 = 0xCC; sbit OV = PSW^2;