单片机C51程序设计基础-2012PPT课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
空间64KB,通过数据指针DPTR间接寻址。
一、C51变量定义格式
C51: [存储属性] 数据类型 [存储类型] 变量名表
3)数据类型—确定存储单元长度
一、C51变量定义格式
C51: [存储属性] 数据类型 [存储类型] 变量名表 3)数据类型—确定存储单元长度
C语言已有基本数据类型: Char: 单字节,可以存放一个字符。 Int: 整数,对大多数单片机开发软件而言是双字节大小 float: 单精度浮点数。 double :双精度浮点数。 Signed、unsigned限定:char、int类型 Short、long限定:int类型
特点: a) C语言是函数式语言,函数是程序
基本组成 b) C程序必须,且只有一个main c) 不论位置,程序总从主程序开始 d) 所有变量必须先定义(规定数据类
型),再使用 e) 每个语句必须用分号“;”结束 f) 使用库函数,必须使用“文件包含”
一、标准C语言
2、函数定义
函数返回值类型 函数名(形式参数) 形式参数说明 {
第五章 单片机C51程序设计基础
精选PPT课件
1
第五章 单片机C51程序设计基础
0、标准C语言 一、C51变量定义格式 二、 C51 运算符、表达式及其规则 三、 C51 流程控制语句 四、C51构造数据类型 五、函数 六、 C51库函数 七、C51模块化程序设计
标准C语言
1、C语言程序的基本结构
1、算术运算符:﹢﹣ * / % 2、自增减运算符: ++ - -
先计算 再自+
先自+ 再计算
例:若 int x=3, y;求 y=x++ - 1,y=++x-1,y=x--+1后的(x,y)
结果:(4,2) (4,3) (2,4)
3、复合赋值运算符: += -= *= /= %=
4、关系运算 > < >= <= == !=
REG51.h和REG52.h这两个头文件 AT89X51.H头文件
sfr P0 = 0x80; sfr P1 = 0x90; sfr P2 = 0xA0; sfr P3 = 0xB0; 为提高程序可读性,可重定义
sbit P0_0 = 0x80; sbit P0_1 = 0x81; sbit P0_2 = 0x82;
可以声明其内两个连续地址的特殊功能寄存器(SFR)。 例如: sfr16 T2 = 0xCC;
(3)sbit:声明可位寻址的特殊功能寄存器标志位。 “=”号后将绝对地址赋给变量名,声明形式有以下3种:
① 用已声明的sfr寄存器名 ^ 指定位;
例如: sbit KEY_UP = P0^ 1; // 指定P0的第1位连接UP按键。
5、逻辑运算符:&& , || , !
6、位操作:&(与),|(或),^(异或) ,~(取反), <<(位左移),>>(位右移)
② 用寄存器地址 ^ 指定位; 例如: sbit KEY_UP=0x80^1;
③ 直接用寄存器标志位地址 。 例如: sbit KEY_UP=、单片机特殊功能寄存器的C51定义
(4) 8051并行接口及位变量的C51定义
程序头包含定义SFR的头文件后,可直接使用
sfr SEGDATA = P0; sbit SEL0 = P1 ^ 0; sbit SEL1 = P1 ^ 1;
/* 数码管数据端口 */ /* 数码管0片选端口 */ /* 数码管1片选端口 */
… sbit KEY_SET = P1 ^ 7; /* 设置按键 */
二、C51运算符、表达式及规则
(extern) (static) 固定地址。始终存在,若为多文件程序,仅在
所定义的模块文件可访问
一、C51变量定义格式
C51: [存储属性] 数据类型 [存储类型] 变量名表 2)存储类型—确定变量存储区 显式声明 unsigned char data x 默认存储类型
一、C51变量定义格式
局部变量说明 函数体语句 }
一、C51变量定义格式
1、keil C 和 ANSI C 的异同 2、变量定义格式 3、单片机特有的数据类型
一、C51变量定义格式
1、keil C 和 ANSI C 的异同
C51主要针对51系列单片机的结构进行程序设计
2、变量定义格式
C语言: [存储属性] 数据类型 变量名表
(普林斯顿型存储结构)
C51: [存储属性] 数据类型 [存储类型] 变量名表(哈佛型存储结构)
例: static unsigned char data x
1)存储属性—指定变量存放区域的属性。(确定生命周期) 内部变量 (auto) 堆栈中。仅在函数调用时存在,退出消失(默认值) (static) 固定地址。始终存在,函数体内可访问。 (register) 直接使用硬件寄存器,效率高 外部变量 (global) 固定地址,始终存在,并可访问(默认值)
单片机特有的数据类型:
bit
位变量,值为0或1
sbit
声明可位寻址空间的一个位
sfr
特殊功能寄存器,8位
sfr16
特殊功能寄存器,16位
一、C51变量定义格式
3、单片机特殊功能寄存器的C51定义 (1)sfr:声明字节寻址的特殊功能寄存器。
例如: sfr P0 = 0x80; (2)sfr16:该关键字对于一些8051派生系列单片机,
C51: [存储属性] 数据类型 [存储类型] 变量名表 2)存储类型—确定变量存储区
显式声明: auto unsigned char data x; unsigned char data x; unsigned char x;
默认存储类型:由Cx51编译器存储模式决定 SMALL模式:默认存储类型为 data. 快速、高效 COMPACT模式:默认存储类型为 pdata. 片外RAM256B,通过@R0/R1间接寻址。 LARGE模式:默认存储类型为 xdata.
#include <> 预处理命令
char fun1( ); 函数说明
float fun2( );
int x
; 全局变量说明
Viod main( ) 主函数
{
声明部分
函数体
执行部分
}
char fun1( ) 功能函数1
{ 声明部分
函数体
执行部分 }
float fun2( ) 功能函数2
{ …}
函数体
相关文档
最新文档