5单片机C51程序设计基础精品PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/* 设置按键 */
5.2 C51运算符、表达式及其规则
5.2.1 (复合)赋值运算符 例如: count=5; total1=total2=0;
Total=Total+3; Total+=3;
5.2.2 算术运算符
5.2.3 自增和自减运算符 例如: --Couter; Couter--; ++Amount; Amount++;
Large模式,所有缺省变量可放在多达64KB的外部RAM区。 优点在于空间大,可存变量多, 缺点是速度较前两种模式要慢。
表5.2 51单片机存储类型及存储区
类型关键字 data bdata idata xdata pdata code
存储区
DATA BDATA IDATA XDATA PDATA CODE
③ 直接用一个整数常量作为绝对地址,例如:
sbit TF0= 0x8D; sbit TR0= 0x8C; sbit IE0= 0x89;
5.1.4 8051并行接口及位变量的C51定义 REG51.h和REG52.h这两个头文件
sfr P0 sfr P1 sfr P2 sfr P3
= 0x80; = 0x90; = 0xA0; = 0xB0;
signed unsigned
16位 32位
0~255 -128 ~ +127
单片机特有的数据类型
bit sbit sfr sfr16
位变量,值为0或1 声明可位寻址空间的一个位
特殊功能寄存器,8位 特殊功能寄存器,16位
数据类型 bit char unsigned char short unsigned short int unsigned int long unsigned long float double sbit sfr sfr16
sbit KEY_SET= KEYS ^ 3;
② 用一个整数常量作为基地址 ^ 后一个整数常量作为指定位, 例如:
地址0x88对应的是TCON寄存器, 第5位表示定时器0计数溢出标志位, 第4位表示定时器0计数允许位, 第1位表示定时器0中断允许位: sbit TF0= 0x88 ^ 5; sbit TR0= 0x88 ^ 4; sbit IE0= 0x88 ^ 1; sbit EA= 0xA8 ^ 7; // 指定0xA8的第7位为EA,即全局中断允许
描述
单片机内部RAM空间的低128字节,可在一个周期内直接寻址。 DATA区中可以字节、位混合寻址的16字节位寻址区。 内部RAM256字节,必须采用间接寻址。 片外RAM,地址范围64KB,使用DPTR间接寻址。 片外RAM的低256字节,可通过P0口的地址对其寻址。 程序存储区,内容只读,使用DPTR寻址。
①用已声明的sfr寄存器名 ^ 整数常量,例如:
sfr KEYS = 0x80;
// 声明KEYS为特殊功能寄存器,地址为0x80。
sbit KEY_UP = KEYS ^ 1;
// 指定KEYS的第1位连接UP按键。
sbit KEY_DOWN= KEYS ^ 2; // 指定KEYS的第2位连接DOWN按键。
第5章 单片机C51程序设计基础
5.1 C51数据与运算
5.1.1 C51的数据类型 C语言中有如下几个基本数据类型:
Char: 单字节,可以存放一个字符。 Int: 整数,对大多数单片机开发软件而言是双字节大小 float: 单精度浮点数。 double :双精度浮点数。
关键字:
short int data; long int adder;
(1)设置位: 设置某位为1,而其他位保持不变,可以使用位逻辑或运算 char c; c = c | 0x40;
num1=4; num2=8; a=++num1; b=num2++;
放前后都一样 放前后不一样
5.2.4 关系运算符
5.2.5 逻辑运算符
5.2.6 位运算符
& 运算的规则是当两个位都为1时,结果为1,否则为0; | 运算的规则是当两个位都为0时,结果为0,否则为1; ^ 运算的规则是当两个位相同时,结果为0,否则为1; ~ 运算的规则是当为1时结果为0,当为0时,结果为1。
AT89X51.H头文件
sbit P0_0 = 0x80; sbit P0_1 = 0x81; sbit P0_2 = 0x82;
Βιβλιοθήκη Baidu
sfr SEGDATA = P0; sbit SEL0 = P1 ^ 0; sbit SEL1 = P1 ^ 1;
… sbit KEY_SET = P1 ^ 7;
/* 数码管数据端口 */ /* 数码管0片选端口 */ /* 数码管1片选端口 */
表5.1 C51数据类型
位宽 字节数
数值范围
1
0~1
8
1
-128~+127
8
1
0~255
16
2
-32768~+32767
16
2
0~65535
16
2
-32768~+32767
16
2
0~65535
32
4
-2147483648~+2147483647
32
4
32
4
64
8
0~4294967295 ±1.175494E-38~±3.402823E+38(6位数字) ±1.175494E-38~±3.402823E+38(10位数字)
5.1.3 8051特殊功能寄存器的C51定义
(1)sfr:声明字节寻址的特殊功能寄存器,例如: sfr P0 = 0x80;
(2)sfr16 该关键字对于一些8051派生系列单片机, 可以声明其内两个连续地址的特殊功能寄存器(SFR), 例如: sfr16 T2 = 0xCC;
(3)sbit:声明可位寻址的特殊功能寄存器和别的可位寻址目标。 “=”号后将绝对地址赋给变量名,其声明形式又有以下3种:
1
0~1
8
1
0~255
16
2
0~65535
5.1.2 C51的存储类型
3种存储模式 :
Small模式,所有缺省变量参数均装入内部RAM。 优点是速度快, 缺点在于空间有限,仅适用于小规模程序设计。
Compact模式,所有缺省变量均位于外部RAM区的一页 (256个字节),具体哪一页可由P2口指定 (在STARTUP.A51文件中说明,也可用pdata指定)。 优点是可用空间较Small宽裕, 速度比Small慢但比Large要快。
5.2 C51运算符、表达式及其规则
5.2.1 (复合)赋值运算符 例如: count=5; total1=total2=0;
Total=Total+3; Total+=3;
5.2.2 算术运算符
5.2.3 自增和自减运算符 例如: --Couter; Couter--; ++Amount; Amount++;
Large模式,所有缺省变量可放在多达64KB的外部RAM区。 优点在于空间大,可存变量多, 缺点是速度较前两种模式要慢。
表5.2 51单片机存储类型及存储区
类型关键字 data bdata idata xdata pdata code
存储区
DATA BDATA IDATA XDATA PDATA CODE
③ 直接用一个整数常量作为绝对地址,例如:
sbit TF0= 0x8D; sbit TR0= 0x8C; sbit IE0= 0x89;
5.1.4 8051并行接口及位变量的C51定义 REG51.h和REG52.h这两个头文件
sfr P0 sfr P1 sfr P2 sfr P3
= 0x80; = 0x90; = 0xA0; = 0xB0;
signed unsigned
16位 32位
0~255 -128 ~ +127
单片机特有的数据类型
bit sbit sfr sfr16
位变量,值为0或1 声明可位寻址空间的一个位
特殊功能寄存器,8位 特殊功能寄存器,16位
数据类型 bit char unsigned char short unsigned short int unsigned int long unsigned long float double sbit sfr sfr16
sbit KEY_SET= KEYS ^ 3;
② 用一个整数常量作为基地址 ^ 后一个整数常量作为指定位, 例如:
地址0x88对应的是TCON寄存器, 第5位表示定时器0计数溢出标志位, 第4位表示定时器0计数允许位, 第1位表示定时器0中断允许位: sbit TF0= 0x88 ^ 5; sbit TR0= 0x88 ^ 4; sbit IE0= 0x88 ^ 1; sbit EA= 0xA8 ^ 7; // 指定0xA8的第7位为EA,即全局中断允许
描述
单片机内部RAM空间的低128字节,可在一个周期内直接寻址。 DATA区中可以字节、位混合寻址的16字节位寻址区。 内部RAM256字节,必须采用间接寻址。 片外RAM,地址范围64KB,使用DPTR间接寻址。 片外RAM的低256字节,可通过P0口的地址对其寻址。 程序存储区,内容只读,使用DPTR寻址。
①用已声明的sfr寄存器名 ^ 整数常量,例如:
sfr KEYS = 0x80;
// 声明KEYS为特殊功能寄存器,地址为0x80。
sbit KEY_UP = KEYS ^ 1;
// 指定KEYS的第1位连接UP按键。
sbit KEY_DOWN= KEYS ^ 2; // 指定KEYS的第2位连接DOWN按键。
第5章 单片机C51程序设计基础
5.1 C51数据与运算
5.1.1 C51的数据类型 C语言中有如下几个基本数据类型:
Char: 单字节,可以存放一个字符。 Int: 整数,对大多数单片机开发软件而言是双字节大小 float: 单精度浮点数。 double :双精度浮点数。
关键字:
short int data; long int adder;
(1)设置位: 设置某位为1,而其他位保持不变,可以使用位逻辑或运算 char c; c = c | 0x40;
num1=4; num2=8; a=++num1; b=num2++;
放前后都一样 放前后不一样
5.2.4 关系运算符
5.2.5 逻辑运算符
5.2.6 位运算符
& 运算的规则是当两个位都为1时,结果为1,否则为0; | 运算的规则是当两个位都为0时,结果为0,否则为1; ^ 运算的规则是当两个位相同时,结果为0,否则为1; ~ 运算的规则是当为1时结果为0,当为0时,结果为1。
AT89X51.H头文件
sbit P0_0 = 0x80; sbit P0_1 = 0x81; sbit P0_2 = 0x82;
Βιβλιοθήκη Baidu
sfr SEGDATA = P0; sbit SEL0 = P1 ^ 0; sbit SEL1 = P1 ^ 1;
… sbit KEY_SET = P1 ^ 7;
/* 数码管数据端口 */ /* 数码管0片选端口 */ /* 数码管1片选端口 */
表5.1 C51数据类型
位宽 字节数
数值范围
1
0~1
8
1
-128~+127
8
1
0~255
16
2
-32768~+32767
16
2
0~65535
16
2
-32768~+32767
16
2
0~65535
32
4
-2147483648~+2147483647
32
4
32
4
64
8
0~4294967295 ±1.175494E-38~±3.402823E+38(6位数字) ±1.175494E-38~±3.402823E+38(10位数字)
5.1.3 8051特殊功能寄存器的C51定义
(1)sfr:声明字节寻址的特殊功能寄存器,例如: sfr P0 = 0x80;
(2)sfr16 该关键字对于一些8051派生系列单片机, 可以声明其内两个连续地址的特殊功能寄存器(SFR), 例如: sfr16 T2 = 0xCC;
(3)sbit:声明可位寻址的特殊功能寄存器和别的可位寻址目标。 “=”号后将绝对地址赋给变量名,其声明形式又有以下3种:
1
0~1
8
1
0~255
16
2
0~65535
5.1.2 C51的存储类型
3种存储模式 :
Small模式,所有缺省变量参数均装入内部RAM。 优点是速度快, 缺点在于空间有限,仅适用于小规模程序设计。
Compact模式,所有缺省变量均位于外部RAM区的一页 (256个字节),具体哪一页可由P2口指定 (在STARTUP.A51文件中说明,也可用pdata指定)。 优点是可用空间较Small宽裕, 速度比Small慢但比Large要快。