51单片机原理与实践 C语言版 高卫东 第三章 C51程序设计基础
合集下载
c51程序设计基础doc - 第一讲 建立您的第一个C项目-推荐下载

C51 程序设计基础
3
C51 程序设计基础
出菜单,在这里可以做在项目中增加减少文件等操作。我们?quot;Add File to Group 'Source Group 1'"弹出文件窗口,选择刚刚保存的文件,按 ADD 按钮,关闭文件窗,程序文件已加到项目中了。这时在 Source Group1 文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击 它可以展开查看。
怀化职业技术学院电子电气工程系——自动化教研室 11/28/2006
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术通关,1系电过,力管根保线据护敷生高设产中技工资术艺料0不高试仅中卷可资配以料置解试技决卷术吊要是顶求指层,机配对组置电在不气进规设行范备继高进电中行保资空护料载高试与中卷带资问负料题荷试2下卷2,高总而中体且资配可料置保试时障卷,各调需类控要管试在路验最习;大题对限到设度位备内。进来在行确管调保路整机敷使组设其高过在中程正资1常料中工试,况卷要下安加与全强过,看度并22工且22作尽22下可22都能22可地护以缩1关正小于常故管工障路作高高;中中对资资于料料继试试电卷卷保破连护坏接进范管行围口整,处核或理对者高定对中值某资,些料审异试核常卷与高弯校中扁对资度图料固纸试定,卷盒编工位写况置复进.杂行保设自护备动层与处防装理腐置,跨高尤接中其地资要线料避弯试免曲卷错半调误径试高标方中高案资等,料,编试要5写、卷求重电保技要气护术设设装交备备置底4高调、动。中试电作管资高气,线料中课并敷3试资件且、设卷料中拒管技试试调绝路术验卷试动敷中方技作设包案术,技含以来术线及避槽系免、统不管启必架动要等方高多案中项;资方对料式整试,套卷为启突解动然决过停高程机中中。语高因文中此电资,气料电课试力件卷高中电中管气资壁设料薄备试、进卷接行保口调护不试装严工置等作调问并试题且技,进术合行,理过要利关求用运电管行力线高保敷中护设资装技料置术试做。卷到线技准缆术确敷指灵设导活原。。则对对:于于在调差分试动线过保盒程护处中装,高置当中高不资中同料资电试料压卷试回技卷路术调交问试叉题技时,术,作是应为指采调发用试电金人机属员一隔,变板需压进要器行在组隔事在开前发处掌生理握内;图部同纸故一资障线料时槽、,内设需,备要强制进电造行回厂外路家部须出电同具源时高高切中中断资资习料料题试试电卷卷源试切,验除线报从缆告而敷与采设相用完关高毕技中,术资要资料进料试行,卷检并主查且要和了保检解护测现装处场置理设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
单片机基础与应用(C语言版)第3章 C51程序设计基础

第3章 C51程序设计基础
教学内容 认识C51语言 C51数据类型 C51运算符 C51程序结构 C51函数 C51数组
认识C语言
C语言程序以函数形式组织程序结构,C程序中的函数与其他语言中 所描述的“子程序”或“过程”的概念是一样的。
C程序
预编译命令 主函数
函数1 … … 函数i
函数定义
C程序基本结构
浮点型常量可分为十进制表示形式和指数表示形式两种,如0.888、 3345.345、125e3、-3.0e-3。 字符型常量是用单引号括起来的单一字符,如‘a’、‘9’等。 字符串型常量是用双引号括起来的一串字符,如“test”、“OK”等。 位类型的值是一个二进制数。如1或0。
变量
变量是一种在程序执行过程中其值能不断变化的量。
+ =、a-*==、b*+=5 等价于 a = a * (b + 5) 、%x=%、=/=3 等价于 x = x%3
算术运算符
+(加法运算) -(减法运算) * (乘法运算符) /(除法运算符) % (求余运算符,或称模运算符)如: ++ (变量自加1) -- (变量自减1)
4 % 2=0
注意
两个整数相除结果为整数,如8/5的结果为1,舍去小数部分。 如果参加运算的两个数中有一个数为实数,则结果是实型。 求余运算要求%两侧都是整型数据。
一个变量由变量名和变量值组成,变量名是存储单元 地址的符号表示,而变量的值就是该单元存放的内容。
变量必须先定义后使用,用标识符作为变量名,并指 出所用的数据类型和存储模式,这样编译系统才能为变 量分配相应的存储空间。
变量
void delay(unsigned char i) //延时函数1 {
教学内容 认识C51语言 C51数据类型 C51运算符 C51程序结构 C51函数 C51数组
认识C语言
C语言程序以函数形式组织程序结构,C程序中的函数与其他语言中 所描述的“子程序”或“过程”的概念是一样的。
C程序
预编译命令 主函数
函数1 … … 函数i
函数定义
C程序基本结构
浮点型常量可分为十进制表示形式和指数表示形式两种,如0.888、 3345.345、125e3、-3.0e-3。 字符型常量是用单引号括起来的单一字符,如‘a’、‘9’等。 字符串型常量是用双引号括起来的一串字符,如“test”、“OK”等。 位类型的值是一个二进制数。如1或0。
变量
变量是一种在程序执行过程中其值能不断变化的量。
+ =、a-*==、b*+=5 等价于 a = a * (b + 5) 、%x=%、=/=3 等价于 x = x%3
算术运算符
+(加法运算) -(减法运算) * (乘法运算符) /(除法运算符) % (求余运算符,或称模运算符)如: ++ (变量自加1) -- (变量自减1)
4 % 2=0
注意
两个整数相除结果为整数,如8/5的结果为1,舍去小数部分。 如果参加运算的两个数中有一个数为实数,则结果是实型。 求余运算要求%两侧都是整型数据。
一个变量由变量名和变量值组成,变量名是存储单元 地址的符号表示,而变量的值就是该单元存放的内容。
变量必须先定义后使用,用标识符作为变量名,并指 出所用的数据类型和存储模式,这样编译系统才能为变 量分配相应的存储空间。
变量
void delay(unsigned char i) //延时函数1 {
单片机原理与应用及C51编程技术课件第三章 单片机汇编程序设计

3.2.6 变址寻址 变址寻址是指操作数的地址由基址寄存器的地址加 上变址寄存器的地址得到。
它是以数据指针寄存器DPTR或程序计数器PC为基 址,累加器A为变址,两者相加得存储单元的地址, 所访问的存储器为程序存储器。
MOVC A,@A+DPTR MOVC A, @A+PC
•变址寻址
设指令执行前数据指针寄存器DPTR的值为 2000H,累加器A的值为05H,程序存储器 2005H单元的内容为30H,则指令执行后,累加器 A中的内容为30H。示意图如图所示。
MOV A,R0
其功能是把R0寄存器中的数送给累加器A。
Hale Waihona Puke 2021/1/57
3.2.3 直接寻址
直接寻址是指数据在存储器单元中,在指令中直 接提供存储器单元的地址。
这种寻址方式针对的是片内数据存储器和特殊 功能寄存器。例如:
MOV A,20H
直接寻址方式的寻址范围包括: 1.低128单元。在指令中直接以单元地址形式给 出。 2.专用寄存器。专用寄存器除了以单元地址形式 给出外,还可以以寄存器符号形式给出。 直接寻址是访问专用寄存器的唯一方法。 例如指令:
INC direct
;direct← (direct)+ 1
INC @Ri ;(Ri)←((Ri))+ 1
INC DPTR
;DPTR← (DPTR) + 1
其中,ADD和ADDC指令在执行时要影响CY、 AC、OV和P标志位。而INC指令除了INC A要 影响P标志位外,对其它标志位都没有影响。
在MCS-51单片机中,常用ADD和ADDC配 合使用实现多字节加法运算。
2021/1/5
2
§3.1 51系列单片机指令系统概述
《C51编程基础》课件

3 中断寄存器
详细介绍和配置C51中断相关的寄存器,实 现中断程序的注册和响应。
4 中断编程实现
编写中断程序的代码,充分利用中断功能实 现各种实时性要求的应用场景。
串口编程
1 串口的基本原理
学习串口通信的基本原理和通讯流程,理解 其在C51编程中的应用。
2 串口的寄存器
介绍串口通信相关的寄存器和控制字,帮助 您配置并控制串口通信。
了解GPIO的基本概念和作用,学习如何使用GPIO进行输入和输出控制。
2 GPIO配置和初始化
掌握如何配置和初始化GPIO口,使其适应不同的应用场景和需求。
3 GPIO读写操作
学习如何读取和写入GPIO口的状态,实现与外部设备的数据交互。
定时器/计数器编程
1 定时器/计数器的基本原理
了解定时器/计数器的工作原理和应用场景,理解它们在C51编程中的重要性。
C51芯片介绍
内部结构和寄存器
详细介绍C51芯片的内部结构 和各类寄存器,以及如何使用 这些寄存器进行硬件控制。
最小系统电路图
展示C51芯片最小系统的电路 图,帮助您理解C51芯片的原 理和工作方式。
引脚定义和初始化
介绍C51芯片引脚的定义和初 始化方法,使您能够将芯片与 外部电路连接并正确配置。
3 串口的配置和初始化
掌握配置和初始化串口的方法,实现与外部 设备之间的数据传输。
4 串口数据传输实现
编写程序代码,实现串口间的数据传输,用 于与其他设备进行通信。
《C51编程基础》PPT课 件
C51编程基础PPT课件,旨在介绍C51编程的基础知识和技巧。通过这套课件, 您将掌握C语言基础、C51芯片的特性和编程方法,并了解常见的硬件应用场 景。
C51单片机应用与C语言程序设计第三章讲解精品PPT课件

任务三 用函数调用简化运动程序
• main函数是不能被其它函数调用的,那它的返回值类型int是怎么 回事呢?
– 其实不难理解,main函数执行完之后,它的返回值是给操作系统的。 虽然在main函数体内并没有什么语句来指出返回值的大小,但系统默 认的处理方式是:当main函数成功执行,它的返回值为1;否则为0。
© 2008 Open-Tech. All rights reserved. 2021/1/31
任务一 基本巡航动作
• 命令组合,让机器人向前走、左转、右转和向后走。
– 源程序请参照教材第39页的ForwardLeftRightBackward.c。
• 尝试1个轮子不动,另一个轮子全速旋转,从而以一个轮子 为支点,原地旋转。
© 2008 Open-Tech. All rights reserved. 2021/1/31
任务三 用函数调用简化运动程序
• 下边的Forward函数可以使机器人向前运动1.5秒。该函数是无形参、无 返回值的函数,没有太大的使用价值。
void Forward(void) {
int i; for(i=1;i<=65;i++)
void Forward(int PulseCount,int Velocity) /* Velocity should be between 0 and 200 */ {
• 无论机器人要执行何种动作,都离不开前面讨论的各种基本动作。为了 各种应用程序方便使用这些基本动作程序,你可以将这些基本动作放在 函数中,供其它函数调用来简化程序。
© 2008 Open-Tech. All rights reserved. 2021/1/31
任务三 用函数调用简化运动程序
单片机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单片机的 三个逻辑存储空间: 片内数据存储器,片外数据存储器和程序存储器。
.
.
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程序的设计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" };
第3章 单片机C51语言程序设计基础dgmecPPT课件

3.3.2 关键字
关键字是C51语言重要的组成部分,是C51编译器已定 义保留的专用特殊标识符,有时也称为保留字。这些 关键字通常有固定的名称和功能,如int、float、if、 for、do、while、case等。
3.4 C51的变量类型
数据类型是C51语言最基本的组成部分。在C51中,每 个变量在使用之前必须定义其符型变量就是用来存放单个字符的变量类型。字符 型变量的定义格式是“类型说明符 变量标识符,变量标识 符…”。
C51语言中的数据类型分为基本数据类型和聚合数据类 型,首先介绍基本数据类型。
3.4.1 C51的数据类型
C51的基本数据类型有整型(int)、浮点型(float)、字 符型(char)、无值型(void)。
在基本数据类型中,除void类型外,其前面均可以有各种 修饰符。修饰符用来改变基本类型的意义,以便更准确地 适应各种情况的需求。常用的修饰符有signed(有符号)、 unsigned(无符号)、long(长型符)、short(短型符)。 在C51语言中的所有数据类型的字长和取值范围,参见书中 表3-2所示。
3.2.1 注释
任何编程语言都支持注释语句。注释语句只对代码 起到功能描述的作用,在实际的编译链接过程中不起 作用。C51语言中可以通过两种方式来表示注释内容: 用“//”符号开头来注释一行,如“//变量声明”。 用“/*”符号开头,并以“*/”符号结束来对C51源程 序中的任何部分进行注释,如“/*声明整型变量ch */”。
3.2.2 命名
在进行程序设计时,经常需要自定义一些函数或者变 量。一般来说,只要符合C51命名规范即可通过编译。但是, 为了便于源程序的理解和交流,在进行命名时应注意如下 几点:
自定义函数或者变量的名称最好能反映该函数或变量的功 能用途。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.2.2 存储类型及存储区
【存储种类】 数据类型 【存储类型】 变量名 51系列单片机有三个逻辑存储空间: 片内数据存储器,片外数据存储器和程序存储器。
FFH 8052
80H
3.2.2 存储类型及存储区
【存储种类】
存储器类型 code data idata bdata xdata pdata
数据类型
3.3 C51对51单片机内部资源的控制
2、sfr16:定义16位特殊功能寄存器
8051芯片可以将两个8位SFR作为一个16位寄存器来访 问。条件是这两个SFR必须处在相邻地址上,并且 是低字节在高字节地址的前面。 C51提供了sfr16数据类型来进行16位特殊功能寄存器 的声明,声明时低字节地址被用来作为sfr16的地 址。
3.2.1 C51的数据类型
(2)int 整型
整型长度为两个字节,用于存放一个双字节数据。分有符 号int整型数signed int和无符号整型数unsigned int,默认值 为signed int类型。signed int表示的数值范围是-32768~ +32767,字节中最高位表示数据的符号,"0"表示正数,"1"表 示负数。unsigned int表示的数值范围是0~65535。
3.2.1 C51的数据类型
(4)float 浮点型
浮点型符合IEEE-754标准的单精度浮点型数据,占用四个 字节(32位二进制数)。
(5)指针型
指针型本身就是一个变量,在这个变量中存放指向另一个数 据的地址。这个指针变量要占据一定的内存单元,对不同的处理 器长度也不尽相同,在C51中它的长度一般为1~3个字节。指针 变量也具有类型。
单片机与接口技术
任课教师:郑旭丹
第三章 C51程序设计基础
主要内容
3.1 C语言与MCS-51单片机 3.2 C51的数据类型和存储模式 3.3 C51对单片机内部资源的控制 3.4 C51的基本运算和控制语句 3.5 C51的构造数据类型 3.6 C51函数
3.7 C51的其他问题
3.1 C51特点
P0,P1,P2,P3是sfr声明的特殊功能寄存器的名称。
3.3 C51对51单片机内部资源的控制
reg51.h和reg52.h是定义51单片机和52单片机特殊功 能寄存器和位寄存器的,这两个头文件大部分内容一样, 52单片机比51多一个定时器T2,所以reg52.h也多几 行定义T2寄存器的内容。
(3)long 长整型
长整型长度为四个字节,用于存放一个四字节数据。分有符 号long长整型signed long和无符号长整型unsigned long,默认 值为signed long类型。signed int表示的数值范围是- 2147483648~+2147483647,字节中最高位表示数据的符号,"0" 表示正数,"1"表示负数。unsigned long表示的数值范围是0~
3.1.1 C51语言概述
随着单片机硬件性能的不断提高和应 用技术的不断发展,开发者越来越注重 目标系统的开发成效,而开发成效在很 大程度上取决于程序本身的编写效率。 为了适应这种要求,出现了单片机高级 语言—C语言。
3.1 C51特点
3.1.1 C51语言概述
使用C语言进行51单片机编程是单片机系统开发的发展方 向,C语言是通用计算机程序设计语言,但现在也广泛用于单片 机开发,C语言与汇编语言相比具有使用容易、可移植性好、可 以直接操作硬件的特点,特别是在单片机上采用操作系统,则 必须采用C语言编程。 对于初学单片机来说,采用C语言入门单片机也是一个好的 选择,使用C语言可以避免汇编语言需要记忆大量指令的缺点, 快速学会单片机。
3.2.1 C51的数据类型
(6)bit 位变量
位标量是C51编译器的一种扩充数据类型,利用它可定义一 个位标量,但不能定义位指针,也不能定义位数组。它的值是 一个二进制位,不是0就是1,类似一些高级语言中的Boolean类 型中的True和False。与51单片机有关的位操作必须定位在片内 RAM中的位寻址空间。
3.7 C51的其他问题
3.3 C51对51单片机内部资源的控制
1、 sfr:定义8位特殊功能寄存器
sfr可以用来定义8051单片机的8位特殊功能寄存器。
sfr占用一个字节内存单元,取值范围是0 ~ 255。
sfr定义特殊功能寄存器SFR,语法规则如下:
sfr 或 sfr16 sfr_name = 字节地址常数; 特殊功能寄存器名称是一个合法的C标识符。等号后 的地址必须是数值常量,不允许使用带运算符的表 达式。
signed char类型用字节中最高位字节表示数据的符号,"0" 表示正数,"1"表示负数,负数用补码表示。所能表示的数值范 围是-128~+127。unsigned char常用于处理ASCII字符或用于 处理小于或等于255的整型数。
unsigned char类型用字节中所有的位来表示数值,所可表达 的数值范围是0~255;非常适合51单片机使用,因为51单片机 每次处理8位数据。
3.2.2 存储类型及存储区
【存储种类】
FFH 8052
数据类型
【存储类型】
256B
变量名
80H
idata区 data区
xdata区 bdata区
256B 256B 256B
code 区
每一个256字 节都是pdata区
3.2.3
【存储种类】
存储模式
数据类型 【存储类型】 变量名
如果在变量声明时未声明变量的存储器类型,则该变量的存 储器类型,由程序的存储模式来决定。
Keil软件是一个简单易学的单片机C语言开发工具,Keil软 件具有使用简单,功能强的特点。Keil软件加上C语言,是开发 51单片机的利器,也是初学单片机必须掌握的单片机开发手段。
3.1 C51特点
3.1.1 C51与标准C的差别
(1)C51中定义的库函数和标准C语言定义的库函数不同。标准 的C语言定义的库函数是按通用微型计算机来定义的,而C51中的库 函数是按MCS-51单片机相应情况来定义的; (2)C51中的数据类型与标准C的数据类型也有一定的区别,在 C51中还增加了几种针对MCS-51单片机特有的数据类型; (3)C51变量的存储模式与标准C中变量的存储模式不一样,C51 中变量的存储模式是与MCS-51单片机的存储器紧密相关; (4)C51与标准C的输入输出处理不一样,C51中的输入输出是通 过MCS-51串行口来完成的,输入输出指令执行前必须要对串行口进 行初始化; (5)C51与标准C在函数使用方面也有一定的区别,C51中有专门 的中断函数。
主要内容
3.1 C语言与MCS-51单片机 3.2 C51的数据类型和存储模式 3.3 C51对单片机内部资源的控制 3.4 C51的基本运算和控制语句 3.5 C51的构造数据类型 3.6 C51函数
3.7 C51的其他问题
3.2.1 C51的数据类型
c语言中数据有常量和变量之分。 在程序运行过程中,数值不改变的量称为常量。 包括:整型常量、字符型常量、字符串型常量、符 号常量。 符号常量的定义: #difine False 0x0; //用预定义语句可以定义常量 #difine TRUE 0x1; //这里定义TRUE为1, False为0
【存储种类】 数据类型 【存储类型】 变量名
① 自动变量(auto)——在函数内部定义的变量,退出函 数后,分配给该变量的存储单元即自行消失(局部变量)。 ② 外部变量(extern)——在函数外部定义的变量,可始 终保持变量的数值(全局变量)。
【强调】一个外部变量只能被定义一次,在定义文储类型】
大小 64KB 128B 256B 16B 64KB 256B
变量名
描述 用来说明常量 访问速度快
存储区域 程序存储区 直接寻址的内部数据存 储区 间接寻址的内部数据区 位寻址的内部数据存储 区 外部数据存储或 分页的外部数据存储区
可访问整个内部数据区域 可使用位寻址或字节寻址来访问 这一区域 使用DPTR来访问外部数据存储 器 利用R0,R1来访问分页的外部数 据存储器
(7)sfr 特殊功能寄存器 特殊功能寄存器也是一种扩充数据类型,占用一个内存单元, 值域为0~255。利用它可以访问51单片机内部的所有特殊功能寄存 器。 例如sfr P1= 0x90这一语句定义P1标识符代表单片机P1端口在 片内的寄存器(地址0x90),在后面的语句中可以用P1= 255(对 P1端口的所有引脚臵高电平)之类的语句来操作特殊功能寄存器。
3.2.1 C51的数据类型
(8)sbit 可寻址 位
sbit是C51中的一种扩充数据类型,利用它可以访问芯片内 部的RAM中的可寻址位或特殊功能寄存器中的可寻址位。 例如,sfr P0 = 0x80; //因P0端口的寄存器是 可位寻址的,所以我们可以定义 sbit P0_1 = P0^1; //P0_1为P0口中的P0.1引脚 同样我们可以用P1.1的地址去写,如sbit P1_1 = 0x91; 这样在以后的程序语句中就可以用P1_1来对P1口的引脚1进行读 写操作了。 以上所述的数据类型中,只有bit与unsigned char两种数 据类型可以直接转换成机器指令。在编写C51程序时,应尽可能 使用无符号字符变量,以及位变量。
char 字符 int 整型 long 长整型 浮点 指针 位标量 特殊寄存器 16位特殊 可寻址位
bit sfr sfr16 sbit
3.2.1 C51的数据类型
(1)char字符型
char类型的长度是一个字节,通常用于定义处理字符数据的 变量或常量。分无符号字符类型unsigned char和有符号字符类 型signed char,默认值为signed char类型。