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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

③ 直接用一个整数常量作为绝对地址,例如:
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;
Large模式,所有缺省变量可放在多达64KB的外部RAM区。 优点在于空间大,可存变量多, 缺点是速度较前两种模式要慢。
表5.2 51单片机存储类型及存储区
类型关键字 data bdata idata xdata pdata code
存储区
DATA BDATA IDATA XDATA PDATA CODE
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要快。
①用已声明的sfr寄存器名 ^ 整数常量,例如:
sfr KEYS = 0x80;
// 声明KEYS为特殊功能寄存器,地址为0x80。
sbit KEY_UP = KEYS ^ 1;
// 指定KEYS的第1位连接UP按键。
sbit KEY_DOWN= KEYS ^ 2; // 指定KEYS的第2位连接DOWN按键。
/* 设置按键 */
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++;
描述
单片机内部RAM空间的低128字节,可在一个周期内直接寻址。 DATA区中可以字节、位混合寻址的16字节位寻址区。 内部RAM256字节,必须采用间接寻址。 片外RAM,地址范围64KB,使用DPTR间接寻址。 片外RAM的低256字节,可通过P0口的地址对其寻址。 程序存储区,内容只读,使用DPTR寻址。
表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位数字)
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,即全局中断允许
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
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。
5.1.3 8051特殊功能寄存器的C51定义
(1)sfwenku.baidu.com:声明字节寻址的特殊功能寄存器,例如: sfr P0 = 0x80;
(2)sfr16 该关键字对于一些8051派生系列单片机, 可以声明其内两个连续地址的特殊功能寄存器(SFR), 例如: sfr16 T2 = 0xCC;
(3)sbit:声明可位寻址的特殊功能寄存器和别的可位寻址目标。 “=”号后将绝对地址赋给变量名,其声明形式又有以下3种:
(1)设置位: 设置某位为1,而其他位保持不变,可以使用位逻辑或运算 char c; c = c | 0x40;
AT89X51.H头文件
sbit P0_0 = 0x80; sbit P0_1 = 0x81; sbit P0_2 = 0x82;
sfr SEGDATA = P0; sbit SEL0 = P1 ^ 0; sbit SEL1 = P1 ^ 1;
… sbit KEY_SET = P1 ^ 7;
/* 数码管数据端口 */ /* 数码管0片选端口 */ /* 数码管1片选端口 */
第5章 单片机C51程序设计基础
5.1 C51数据与运算
5.1.1 C51的数据类型 C语言中有如下几个基本数据类型:
Char: 单字节,可以存放一个字符。 Int: 整数,对大多数单片机开发软件而言是双字节大小 float: 单精度浮点数。 double :双精度浮点数。
关键字:
short int data; long int adder;
相关文档
最新文档