单片机与嵌入式系统5PPT课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
@DPTR ); CODE 寻址代码 (程序)区(MOVC
@A+DPTR);
单片机与嵌入式系统
23.11.2020
6
(2)举例说明
unsigned char data k,t,p;
//定义了k,t,p为无符号字符data 变量;
unsigned int k1,k2; //data 可省略
//定义了k1,k2为无符号整型data 变量;
23.11.2020
8
四、数据存储模式
存储模式决定了变量的默认存储类型、参数传递区 和无明确存储类型说明的变量的存储类型。
如果在变量定义时略去存储类型标志符,则编译器会自动选 择默认的存储类型。默认的存储类型进一步由:
Fra Baidu bibliotekSMALL,COMPACT和LARGE存储模式指令限制。
三种存储模式的含义,见表5-4所示。 SMALL:(低128字节……..); COMPACT : (分页片外存储器(最大256字节,默认
<3>C51 的可移植性好
<4>生成的代码质量高
目前使用C51开发系统最流行的是Keil C51软件平台
单片机与嵌入式系统
23.11.2020
1
5.2 标识符与关键字
<1> C51的标识符
C51的标识符基本同标准的C语言
<2>C51的关键字
C51的关键字有ANSI C标准的关键字,见表5-1所示; C51扩展的关键字,见表5-2所示 (这里略) 。
char data var1; /* 在data区定义字符型变量var1 */ int idata var2; /* 在idata区定义整型变量var2 */
int a=5; /* 定义变量a,同时赋以初值5,变量a由编 译模式确定默认存储区 */ char code var3[ ]=“Very Good!”;/ * 在code区定义字符 串数组rar3 */
5 用C语言设计51程序
5.1 C51语言特点 <1> C51吸取了汇编语言的精华
提供了对位、字节及地址的操作,使程序可以直接对内存及 指定寄存器进行控制;
吸取了宏汇编技术中的某些灵活的处理方法,提供宏代换 #define和文件蕴含#include的预处理命令;
<2>C51继承和发扬了高级语言的长处
char xdata * px ; /* 在xdata区定义一个指向对象类型为char的指针px, 指针px自身在默认存储区(由编译模式确定),长 度为
2字节(0~0xFFFF) */
单片机与嵌入式系统
23.11.2020
10
Char xdata * data pdx;/* 除了指针明确定位于内部 数据
单片机与嵌入式系统
23.11.2020
7
unsigned char code f_tab[10]; //定义了f_tab 为代码内的常数
f_tab[ ]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x67 };
//这时公阴极数码管的显示代码 ( MOVC A,@A+DPTR)
单片机与嵌入式系统
23.11.2020
2
5.3 C51程序设计的基本规则
5.3.1 数据类型与存储模式
一、C51数据类型
单片机与嵌入式系统
23.11.2020
3
无符号型(unsigned)、有符号型(signed)
二、 对C51变量的字节长度说明
char 占用1个字节;
int
占用2个字节;
long int 占用4个字节;
存储器区(data)之外,与上例完全相同,由于指定了存 储
器类型,所以与编译模式无关 */
extern bit data p_numb ; /* 在data区定义一个外 部位变量 */
单片机与嵌入式系统
23.11.2020
11
5.3.2 对硬件主要资源的定义
一、sfr 定义方法 sfr 特殊功能寄存器名 = 地址常数 ;
int idata y1[10]; //定义了y1为整型数组;
unsigned char bdata z1,z2;
//定义了z1,z2为可位寻址的字符变量
unsigned char pdata e1,e2;
//定义了e1,e2为页寻址的变量
dube xdata b[30]; //定义了变存在外部RAM中
例如,要显示 “4,5” ; #define sz_cps XBYTE[0x1fff] //定义外部存储器的口 #define sz_cpg XBYTE[0x3fff] //定义外部存储器的口 sz_cps =f_tab[4];//显示4 sz_cpg =f_tab[5];//显示5
单片机与嵌入式系统
<1>变量的存储种类有四种:
自动(auto)、
外部(extern)、
静态(static)和
寄存器(register)。
如果省略了存储种类选项,则该变量 为
自动(auto)变量。
单片机与嵌入式系统
23.11.2020
5
<2> 对51存储器的类型说明(见表5-3)
【在变量前加类型说明】
(1) 类型说明符 DATA 寻址片内低128字节,速度最快(MOV ); BDATA 寻址片内20H-2FH的单元(bit 位); IDATA 间接寻址片内256字节(MOV @Ri ); PDATA 页寻址外部RAM(MOVX @Ri ); XDATA 寻址外部64KRAM ( MOVX
的存储类型是pdata) ; LARGE:(最大64K,默认的存储类型是xdata );
单片机与嵌入式系统
23.11.2020
9
例如,
static unsigned char data x;/* 在片内数据存储器中定义一 个静态无符号字符型变量 x */
int y; /* 定义一个自动整型变量y,它的存储器类型由编译 模式确定 */
float 占用4个字节;
*
占用1到3字节(地址);
bit
占用1位(0或1);
sfr
占用1个字节(特殊功能寄存器);
sfr16 占用2个字节(特殊功能寄存器);
sbit 占用1位(定义位用);
单片机与嵌入式系统
23.11.2020
4
三、变量与数据存储模式
[存储种类] 数据类型 [存储器类型] 变量名表;
例如, sfr P0 = 0x80;//定义了I/O口P0,其地址为80H sfr P1 = 0x90;//定义了I/O口P1,其地址为90H
相关文档
最新文档