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

合集下载

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

单片机C51程序设计基础-2012PPT课件
空间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)

c51程序设计基础ppt课件

c51程序设计基础ppt课件
sfr16 data bdata idata pdata xdata code interrupt reentrant using _at_ small compact large
用途 位标量声明 位标量声明 特殊功能寄存器声明 特殊功能寄存器声明 存储器类型说明 存储器类型说明 存储器类型说明 存储器类型说明 存储器类型说明 存储器类型说明 中断函数说明 再入函数说明 寄存器组选择 绝对地址说明 存储模式选择 存储模式选择 存储模式选择
系统头文件用尖括号
精选课件ppt
23
例1:利用MCS-51单片机的P1 引脚P1.0 引接一只 LED,送“0”点亮,送“1”灭。则要求点亮,程序如下:
精选课件ppt
24
例1:利用MCS-51单片机的P1 引脚P1.0 引接一只 LED,送“0”点亮,送“1”灭。则要求点亮,程序如下:
#include “reg51.h”
四字节
1~3字节 位 单字节 双字节 位
值域 0~255 -128~+127 0~65535 -32768~+32767 0~4294967295 -2147483648 ~ +2147483647 ±1.175494E-38~ ±3.402823E+38 对象的地址 0或1 0~255 0~65535 0或1
由于ANSI C是一般C的基础,所以某些 “单片机C语言”可能会舍去部分ANSI C中的标准,以简化编译。 但反过来,某些“单片机C语言”还会增 加一些单片机特有的语言特性,以方便 针对单片机的编程
精选课件ppt
6
二、C51基础知识
1、标识符 2、关键字 3、 C51编译器所支持的数据类型 4、C51对内部资源的定义 5、常量 6、变量 7、数组 8、运算符 9、C51绝对地址访问 10、 C51的基本语句 11、中断服务程序

第一章C51程序设计基础精品PPT课件

第一章C51程序设计基础精品PPT课件
现汇编语言的大部分功能,可以直接对硬件进行操作。因 此有人把它称为中级语言。
3
江阴职业技术学院电子工程系
(二)C51和汇编比较
下面结合8051介绍单片机C语言的优越性:
不懂得单片机的指令集,也能够编写完美的单片机程序;
无须懂得单片机的具体硬件,也能够编出符合硬件实际 的专业水平的程序;
不同函数的数据实行覆盖,有效利用片上有限的RAM空 间;
for (b=0; b<255; b++)
LED2 = 0;
//255次设P1.1口为低电平,点亮LED
LED2 = 1;
//设P1.1口为高电平,熄灭LED
for (a=0; a<30000; a++); //空循环
}while(1);
}
观察:如果把a改成char类型,会有什么效果?
14
江阴职业技术学院电子工程系
19
江阴职业技术学院电子工程系
说明:
sfr关键子后面是一个要定义的名字,可任意选取,但要符合标识符的 命名规则,最好有一定的含义,如P1口可以用P1。等号后面必须是常 数(特殊寄存器直接地址),不允许有带运算符的表达式,而且该常数 必须在特殊功能寄存器的地址范围之内(80H-FFH),具体可查看教 材8051内部RAM地址表。
由此可见,在C51程序设计过程中,在满足数据要求的情况 下,应尽可能使用unsigned char变量和bit变量。signed char变 量虽然也只占用一个字节,但需要进行额外的操作来测试代 码的符号位,因此会降低代码执行效率。
17
江阴职业技术学院电子工程系
7、 sfr特殊功能寄存器
sfr也是一种扩充数据类型,点用一个内存单元,值域为 0~255。利用它可以访问51单片机内部的所有特殊功能寄 存器。

单片机C51语言及程序设计PPT课件

单片机C51语言及程序设计PPT课件
* 括号项——可以缺省(但需有缺省值)
.
9
【存储类别】 数据类型 【存储器类型】 变量名
共有四个说明符: 1、auto(自动型)——变量的作用范围在定义它的函数体或
语句块内。执行结束后,变量所占内存即被释放。 2、extern(外部型) ——在一个源文件中被定义为外部型的
变量,在其它源文件中需要通过extern说明方可使用。 3、static(静态型) ——利用static可使变量定义所在的函数
【存储类别】 数据类型 【存储器类型】 变量名
三种编译模式分别对应于三种缺省存储类型:
C51编译器可根据当前采取的编译模式自动认定默认的存 储类型
约定:若无特殊声明,一般均为“SMALL编译模式”
.
22
【存储类别】 数据类型 【存储器类型】 变量名
变量名可以由字母、数字和下划线三种字符组成,且第一个 字符必须为字母或下划线,变量名长度随编译系统而定。 变量名具有字母大小写的敏感性,如SUM和sum代表不同的 变量。
计算表达式或数据类型的字节数
静态变量
结构类型数据
构成Switch选择结构
重新进行数据类型定义
联合类型数据
无符号数数据
无类型数据
该变量在程序执行中可被隐含地改变
. 构成while和do…while循环结构
6
Keil C51编译器除了有ANSI C标准的32个关键字外,还根据51单片机的特点扩 展了相应的关键字。在Keil C51开发环境的文本编辑器中编写C程序,系统可 以把保留字以不同的颜色显示,缺省颜色为蓝色。下表为Keil C51编译器扩展
51单片机的 三个逻辑存储空间: 片内数据存储器,片外数据存储器和程序存储器。
.

《单片机及C51基础》课件

《单片机及C51基础》课件

3
混合编程
混合编程是一种编程方式,将C语言和汇编语言 混合使用,可以充分发挥各自的优势,提高程序 的性能和可维护性。
03 C51单片机开发 环境
Keil软件介绍
是一款由德国Keil公司开发的集成开发环境(IDE),专门用于嵌入式系统开发,特别是针对微控制 器(MCU)和嵌入式系统。
提供了一套完整的开发工具,包括编译器、链接器、调试器和仿真器等,用于编译、链接、调试和仿 真C51单片机的程序。
定时器/计数器概念
定时器/计数器是单片机内部或外部 的一个功能模块,用于产生定时或计 数的功能。
定时器/计数器作用
在C51单片机中,定时器/计数器主要 用于时间测量、产生定时中断、PWM 波形输出等。
C51单片机的定时器/计数器类型
定时器/计数器类型
C51单片机内部通常包含两个定时器/计数 器,即Timer0和Timer1。
《单片机及C51基础》PP C51单片机介绍 • C51单片机开发环境 • C51单片机编程基础 • C51单片机的中断系统 • C51单片机的定时器/计数器 • C51单片机的串行通信
01 单片机简介
单片机的定义
01
单片机是一种集成电路芯片,它 集成了中央处理器、存储器、输 入输出接口等计算机的主要部件 ,形成一个微型的计算机系统。
中断函数
用于处理单片机外部事件,如定时器中断、 串口中断等。
05 C51单片机的中 断系统
中断的概念与作用
中断的概念
中断是CPU在执行程序过程中,出现紧急事件需要处理时,暂时停止当前的工 作,转去处理突发事件,处理完毕后再回到原来被中断的地方继续执行。
中断的作用
实现实时处理、分时操作、故障处理、外设和CPU通信。

单片机高级语言C51程序的设计ppt课件

单片机高级语言C51程序的设计ppt课件

二.C51言语的标识符和关键字
C51扩展的关键字
三.C51的数据类型及运算符
1.根本数据类型的长度
2.C51言语的扩展
3.特殊功能存放器的数据类型
4.DATA 存储类型
5.BDATA 存储类型
6.IDATA 存储类型
7.PDATA和XDATA 存储类型
8.PDATA和XDATA 比较
本章目录3
六.函数 1.函数格式 2.重入函数 3.中断效力函数
七.C51程序设计举例 1.例1---求数学式 2.例2---简单控制 3.例3---延时 4.例4---运用定时器0定时---查询方式 5.例5---运用定时器0定时---中断方式 6.例6---利用定时器1计数 7.C51开发环境 7.1.伟福模拟软件 7.2. uVision3集成开发环境 7.3. C51编译练习程序TEXT.C
例8-5
例8-7(1)
• 按课本图7-14输出正弦波
例8-7(2)
例8-8(1)
例8-8(2)
例8-8(3)
例8-8(4)
十.加一减一综合实际C51程序设计
用如下的电路图,实现:按“加一〞按钮 显示加“1〞,按“加二〞按钮显示加“2〞, 按“减一〞按钮显示减“1〞,按“减二〞按 钮显示减“2〞;计数的最大值为19,最小值 为0;按“清0〞按钮显示“0〞〔清0〕。
电路图
程序〔1〕
#include"reg51.h"//头文件 #include"math.h"//头文件 unsigned char code disp_code[10]={
0x3F, //"0" 0x06, //"1" 0x5B, //"2" 0x4F, //"3" 0x66, //"4" 0x6D, //"5" 0x7D, //"6" 0x07, //"7" 0x7F, //"8" 0x6F, //"9" };

单片机原理与C51程序设计基础教程chap02简明教程PPT课件

单片机原理与C51程序设计基础教程chap02简明教程PPT课件

单片机原理与C51语言程序设计基础教程
一、单片机的内 部结构
1、中央处理器
② 累加器A 累加器A是CPU中最繁忙、使用频度最高的一个特殊功能寄存器,简称为 ACC或,也是ALU的输出; ● CPU中的数据传送大多数都通过累加器,累加器A是一个非常重要 的数据中转站。
单片机原理与C51语言程序设计基础教程
一、单片机的内 部结构
1、中央处理器
④ 程序状态字 程序状态字PSW(Program Status Words)是一个8位的专用寄存器,用于 存储程序运行中的各种状态信息。它被逐位定义,可以位寻址,
单片机原理与C51语言程序设计基础教程
一、单片机的内 部结构
单片机原理与C51语言程序设计基础教程
一、单片机的内 部结构
2、存储器结构
51单片机内部有一个8位的面向控制、功能强大的微处理器,其主要 功能是运算和控制整个系统协调工作。它由运算器和控制器两部分组成。 1. 运算器 运算器主要实现对操作数的算术运算、逻辑运算和位操作。主要包括算术 逻辑运算部件(ALU)、累加器A、寄存器B、程序状态字PSW、暂存器、布 尔外理器以及十进制调整电路等部件。
1、中央处理器
⑤ 暂存器 用以暂存进入运算器之前的数据。 ⑥ 布尔处理器 布尔处理器(位处理器)是51单片机ALU所具有的一种功能。单片机指令 系统的位处理指令集(17条位操作指令),存储器中的位地址空间,以及 借用程序状态寄存器PSW中的进位标志CY做为位操作“累加器”,构成了 51单片机内的布尔处理器。它可对直接寻址的位(bit)变量进行位处理, 如置位、清零、取反、测试转移以及逻辑“与”、“或”等位操作,使用 户在编程时可以利用指令完成原来单凭复杂的硬件逻辑锁完成的功能,并 可方便地设置标志等。 ⑦十进制调整电路 顾名思义,用来进行十进制调整的电路。

单片机C51程序设计 数码管显示ppt课件

单片机C51程序设计 数码管显示ppt课件
#define WR573(dat)\ {\
P0 = d);\ LE573 = 0;\ }
中断源的符号、称号及产生的条件
INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。 INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。 T0:定时器/计数器0中断,由T0计满回零引起。 T1:定时器/计数器l中断,由T1计满回零引起。 TI/RI:串行I/O中断,串行端口完成一帧字符发送/接纳后引起。
定时/计数器编程运用
初始化程序应完成如下任务: 1.对TMOD赋值,以确定T0和T1的任务方式。 2.计算初值,并将其写入TH0、TL0或TH1、TL1。 3.中断方式时,那么对IE赋值,开放中断。 4.使TR0或TR1置位,启动定时/计数器定时或计数。
TR1:定时器1控制位,置位时定时器1任务 TR0:定时器0控制位,置位时定时器0任务
定时器初值 计算
设单片机晶振频率为6MHZ,求方式1时的定时器初 值.
定时时间=(2X-初值)×机器周期 X由定时器任务方式决议,分别为13、16、8. 机器周期=12/单片机晶振频率 fosc。 由以上公式可知:定时lms所需的机器周期为2us.个数 为500D,即0lF4H,任务方式为1(16位方式)时定时初 值是01F4H.
动态显示
动态显示的特点是将一切位数码管的段选线 并联在一同,由位选线控制是哪一位数码管有 效。选亮数码管采用动态扫描显示。所谓动态 扫描显示即轮番向各位数码管送出字形码和相 应的位选,利用发光管的余辉和人眼视觉暂留 作用,使人的觉得好似各位数码管同时都在显 示。动态显示的亮度比静态显示要差一些,所 以在选择限流电阻时应略小于静态显示电路中 的。
JBCflag ? C002 DECval C002: RET

第四章C51程序设计语言PPT课件

第四章C51程序设计语言PPT课件
第1页/共55页
★C51程序示例:
#include <reg51.h> main ( ) { int x,y,z;
if(x>y) z=x; else z=y; }
/*文件包含,51寄存器说明 */ /* 主函数 */ /* 变量定义 */ /* 比较大小,求最大值 */
第2页/共55页
C语言编程与汇编语言编程相比的优势
第11页/共55页
4.1.4 变量的存储种类(属性)
变量是一种在程序执行过程中,其数值不断变 化的量。同ANSI C一样,C51规定变量必须先定义 后使用。C51对变量的进行定义的格式如下:
[存储种类] 数据类型 [存储器类型] 变量名表 其中,存储种类(属性)和存储器类型是可选 项。 存储种类是指变量在程序执行过程中的作用范围。 变量的存储种类有四种,分别为: 自动(auto)——默认值,变量为函数内有效。 外部(extern)——变量对所有函数有效。 静态(static) 寄存器(register)——编译系统自动生成。
2)在大量使用data区域的内存变量时,容易产生堆栈溢出, 从而产生不可预测的错误。
2 )与汇编语言编程相比,代码规模和速度还有差距。
第3页/共55页
4.1.2 C51的标识符、常量和关键字
标识符用来标识源程序中某个对象的名字,这些对象 可以是语句、数据类型、函数、变量、数组等。
标识符区分大小写,第一个字符必须是字母或下划线。 C51中有些库函数的标识符是以下划线开头的,所以 一般不要以下划线开头命名标识符。 常量:凡以数字0开头的数字序列,一律作为八进制数 处理;凡以0x开头,后面跟若干数字的,一律作为十六进制 数处理;其它作为十进制数处理。
第18页/共55页

第5章单片机C51程序设计

第5章单片机C51程序设计

字节地址
0
1
2
3
浮点数内容 SEEEEEEE EMMMMMMM MMMMMMMM MMMMMMMM 符号和阶码 尾数高位 尾数低位
14
字节地址
0
1
2
3
浮点数内容 SEEEEEEE EMMMMMMM MMMMMMMM MMMMMMMM 符号和阶码 尾数高位 符号位S:1表示负数,0表示正数。 尾数低位
data
bdata
idata
pdata xdata code
用Ri间接访问的片内扩展RAM或片外扩展RAM低 256B
用DPTR间接访问的片内扩展RAM或片外扩展RAM (64KB) 程序存储器ROM空间(64KB)
20
5.2.3 常量和变量
数据有常量和变量之分。
1.常量
常量就是在程序运行过程中其值不能被改变的量,可以为 字符,字符串,转义字符,十进制数或十六进制数(用0x打头 表示)、浮点数等直接常量,也可以定义符号型常量,定义方 式如下: 用宏定义语句定义常量,例如: #define PI 3.1415926 //定义PI为常量3.1415926
长整型
浮点型 位类型
特殊位类型 8位特殊功能寄存器型
16位特殊功能寄存器型Fra biblioteksbit sfr
sfr16
1位 8位
16位
0或1 0-255
0-65535
11
1、字符型char
长度为1个字节。默认为signed char。 “1”表示负数,补码表示,所能表示的数值范围是-128~+127。 对于unsigned char,其取值范围为0~255。也可以存放西文 字符,在计算机内部用ASCII码存放。

单片机C51程序设计.ppt

单片机C51程序设计.ppt

单片机C51程序设计
C51对外部I/O的访问
假定LCD的端口地址为8000H~8003H则:
#include <absacc.h> // LCD Registers addresses #define LCD_CMD_WR XBYTE[8000] #define LCD_DATA_WR XBYTE[8001] #define LCD_BUSY_RD XBYTE[8002] #define LCD_DATA_RD XBYTE[8003]
数据的存储器模式
指针变量的说明
long xdata * px;
char xdata * data pd; // 指向xdata, 但指针在data
int * px; // 指向idata的整型变量的指针 unsigned int * px; // 指向idata的无符号整型变量的指针
单片机C51程序设计
#include <absacc.h> //LCD Registers addresses #define LCD_CMD_WR XBYTE[8000] #define LCD_DATA_WR XBYTE[8001] #define LCD_BUSY_RD XBYTE[8002] #define LCD_DATA_RD XBYTE[8003] (假定某LCD的端口地址为8000H~8003H)
单片机C51程序设计
主讲 聂雄
单片机C51程序设计
概述 C51程序结构 C51数据类型 数据的存储类型和存储器模式 C51对SFR、可寻址位、存储器和I/O口定义 C51运算符 函数 C语言编程实例 中断程序函数的格式
单片机C51程序设计
概述
C语言是一种通用的程序设计语言,其代码 效率高,数据类型及运算符丰富,并具有很 好看程序结构,适用于各种应用的程序设计。

第5章 C51程序设计.ppt

第5章 C51程序设计.ppt

⒊ 关系运算符
用于两个数据之间进行比较判断 。 运算的结果只能有两种: 条件满足,运算结果为1(真); 条件=”与赋值运算符“=”的区别。
⒋ 逻辑运算符
用于求条件表达式整体之间逻辑运算的逻辑值。 条件表达式的值只有两种:1(非0或真)或0(假)。 运算结果也只有两种:1(真)或0(假)。
【例5-11】 用while(1)无限循环语句改编例5-7程序。 解:编程如下:
Keil C51软件调试和Proteus ISIS虚拟仿真调试同例5-7。
while循环(当型)
do-while循环(直到型)
Keil C51软件调试:编译链接并进入调试状态后,全速运行, 可看到:n=101,sum=5050 。
⒉ 复合语句
由若干条单语句组合而成的语句称为复合语句。
5.3.2 选择语句
根据给定的条件是否成立选择相应的操作。 具有一定的逻辑分析能力和选择决策能力, 按结构可分为单分支选择结构和多分支选择结构, 主要有if语句和switch语句。
⒈ if语句
分为3种形式:
⑴ 条件成立就选择,否则就不选择。 if (条件表达式) 内嵌语句; ⑵ 不论条件成立与否,总要选择一个。 if (条件表达式) 内嵌语句1; else 内嵌语句2; ⑶ 串行多分支结构。 if (条件表达式1 ) 内嵌语句1; else if (条件表达式2 ) 内嵌语句2; … else if (条件表达式n ) 内嵌语句n; else 内嵌语句(n+1);
5.2.3 运算符和表达式
⒈ 赋值运算符
变量=表达式
⒉ 算术运算符
①++i和--i:变量先加(减)1,后使用; i++和i--:变量先使用,后加(减)1。 ②除法运算的结果与参与运算数据的类型有关。 若两个数据都是整数,运算结果也为整数,余数舍去。 ③求余运算时要求参与运算的数据都是整型, 运算结果为两数相除的余数。

第5章 MCS51单片机C51程序设计.ppt

第5章 MCS51单片机C51程序设计.ppt

4.float浮点型
float浮点型在十进制中具有7位有效数 字,是符合IEEE-754标准(32)的单精度浮 点型数据,占用4B。具有24位精度。
2019年10月28日星期一
机械电子工程教研室:郑东强
返回目录
19
5.2.2 数据类型
-----*指针型
5.*指针型
指针型本身就是一个变量,在这个变量中存 放着指向另一个数据的地址。这个指针变量要占 据一定的内存单元,对不同的处理器长度也不尽
2019年10月28日星期一
机械电子工程教研室:郑东强
返回目录
3
本章目录
第5章 MCS-51单片机C51程序设计
5.4 C51函数 5.4.1 函数的分类 5.4.2 函数的定义 5.4.3 函数的调用 5.4.4 对被调函数的说明 5.4.5 中断函数 5.5 C51结构化程序设计 5.5.1 顺序结构程序 5.5.2 选择结构程序
单片机原理与接口技术
第5章 MCS-51单片机 C51程序设计
2019年10月28日星期一
机械电子工程教研室:郑东强
返回目录
1
本章教学要求
第5章 MCS-51单片机C51程序设计
熟悉C51语法基础和程序结构; 掌握C51结构化程序设计; 掌握C51对单片机硬件的访问方法; 掌握C51函数定义与调用; 了解汇编语言和C51的混和编程。
2019年10月28日星期一
机械电子工程教研室:郑东强
返回目录
17
5.2.2 数据类型
3.long长整型
----long长整型
long长整型长度为4B,用于存放一个四字节数据。
分 有 符 号 long 长 整 型 signed long 和 无 符 号 long 长 整 型 unsigned long,默认值为signed long类型。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第5章 单片机C51程序设计基础
5.1 C51数据与运算
5.1.1 C51的数据类型 C语言中有如下几个基本数据类型:
Char: 单字节,可以存放一个字符。 Int: 整数,对大多数单片机开发软件而言是双字节大小 float: 单精度浮点数。 double :双精度浮点数。
关键字:
short int data; long int adder;
描述
单片机内部RAM空间的低128字节,可在一个周期内直接寻址。 DATA区中可以字节、位混合寻址的16字节位寻址区。 内部RAM256字节,必须采用间接寻址。 片外RAM,地址范围64KB,使用DPTR间接寻址。 片外RAM的低256字节,可通过P0口的地址对其寻址。 程序存储区,内容只读,使用DPTR寻址。
③ 直接用一个整数常量作为绝对地址,例如:
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;
表5.1 C51数据类型
位宽 字节数数值范围 Nhomakorabea1
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种:
①用已声明的sfr寄存器名 ^ 整数常量,例如:
sfr KEYS = 0x80;
// 声明KEYS为特殊功能寄存器,地址为0x80。
sbit KEY_UP = KEYS ^ 1;
// 指定KEYS的第1位连接UP按键。
sbit KEY_DOWN= KEYS ^ 2; // 指定KEYS的第2位连接DOWN按键。
(1)设置位: 设置某位为1,而其他位保持不变,可以使用位逻辑或运算 char c; c = c | 0x40;
Large模式,所有缺省变量可放在多达64KB的外部RAM区。 优点在于空间大,可存变量多, 缺点是速度较前两种模式要慢。
表5.2 51单片机存储类型及存储区
类型关键字 data bdata idata xdata pdata code
存储区
DATA BDATA IDATA XDATA PDATA CODE
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,即全局中断允许
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片选端口 */
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。
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++;
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
相关文档
最新文档