MCS-51单片机C51程序设计

上传人:飞****9 文档编号:132217696 上传时间:2020-05-13 格式:PPT 页数:148 大小:1.04MB
返回 下载 相关 举报
MCS-51单片机C51程序设计_第1页
第1页 / 共148页
MCS-51单片机C51程序设计_第2页
第2页 / 共148页
MCS-51单片机C51程序设计_第3页
第3页 / 共148页
MCS-51单片机C51程序设计_第4页
第4页 / 共148页
MCS-51单片机C51程序设计_第5页
第5页 / 共148页
点击查看更多>>
资源描述

《MCS-51单片机C51程序设计》由会员分享,可在线阅读,更多相关《MCS-51单片机C51程序设计(148页珍藏版)》请在金锄头文库上搜索。

1、16 46 1 单片机原理与接口技术 太原理工大学 电子工业出版社 第5章MCS 51单片机C51程序设计 制作张兴忠修审牛昱光 16 46 2 熟悉C51语法基础和程序结构 掌握C51结构化程序设计 掌握C51对单片机硬件的访问方法 掌握C51函数定义与调用 了解汇编语言和C51的混和编程 本章教学要求 第5章MCS 51单片机C51程序设计 16 46 3 5 1C51概述5 2C51语法基础5 2 1标识符和关键字5 2 2数据类型5 2 3运算符和表达式5 2 4程序结构 第5章MCS 51单片机C51程序设计 本章目录 5 3C51对MCS 51单片机的访问5 3 1存储类型5 3

2、2存储模式5 3 3对特殊功能寄存器的访问5 3 4对存储器和并行口的访问5 3 5位地址访问 16 46 4 5 4C51函数5 4 1函数的分类5 4 2函数的定义5 4 3函数的调用5 4 4对被调函数的说明5 4 5中断函数5 5C51结构化程序设计5 5 1顺序结构程序5 5 2选择结构程序 第5章MCS 51单片机C51程序设计 本章目录 5 5 3循环结构程序5 5 4查表程序5 6C51程序设计实例5 6 1单片机内 外部资源应用程序设计5 6 2C51语言和MCS 51汇编语言混合编程5 6 3编程优化的概念习题与思考题 16 46 5 5 1C51概述 C语言是一种通用的程

3、序设计语言 其代码率高 数据类型及运算符丰富 位操作能力强 适用于各种应用的程序设计 使用C语言进行单片机应用系统开发 具有编程灵活 调试方便 目标代码编译效率高的特点 C语言也是目前使用最广的单片机应用系统编程语言 由C语言编程的单片机应用程序 称为单片机C语言程序 MCS 51系列单片机开发系统的编译软件可以对51单片机C语言源程序进行编译 称为C51编译器 在C51编译软件中可进行51单片机C语言程序的调试 C51编译器 16 46 6 1 扩展了专门访问MCS 51单片机硬件的数据类型 2 存储类型按MCS 51单片机存储空间分类 3 存储模式遵循存储空间选定编译器模式 4 指针分为通

4、用指针和存储器指针 5 函数增加了中断函数和再入函数 5 1C51概述 C51特点 C51编译器针对MCS 51单片机硬件在下列几方面对ANSIC进行了扩展 16 46 7 使用具有C51编译扩展功能的C语言进行MCS 51单片机应用系统的开发编程 简称C51编程 C51编程具有以下特点 1 可管理内部寄存器和存储器的分配 编程时 无需考虑不同存储器的寻址和数据类型等细节问题 2 程序由若干函数组成 具有良好的模块化结构 可移植性好 便于项目维护管理 3 有丰富的子程序库可直接引用 从而大大减少用户编程工作量 提高编程效率 4 与汇编语言交叉编程 用汇编语言编写与硬件有关的程序 用C51编写与

5、硬件无关的运算程序 充分发挥两种语言的长处 提高开发效率 5 1C51概述 C51特点 16 46 8 C51编程和汇编语言编程过程一样 单片机C语言源程序经过编辑 编译 连接后生成目标程序 BIN和 HEX 文件 然后运行即可 调试51单片机C语言程序可用KeilC51编译器 注意 使用C51编程可以取代繁琐的汇编语言编程 但仍需要了解MCS 51单片机的硬件结构 所以对于单片机系统的开发应采用汇编语言与C51混合编程的方法更为有效 5 1C51概述 C51特点 16 46 9 5 2C51语法基础 标识符用来标识源程序中某个对象的名字 这些对象可以是语句 数据类型 函数 变量 数组等 标识

6、符由字符串 数字和下划线等组成 应该注意的是第一个字符必须是字母或下划线 不能用数字开头 如 1 a 是错误的 编译时会有错误提示 在C51编译器中 只支持标识符的前32位为有效标识 C51语言是区分大小写的一种高级语言 如 a 1 和 A 1 是两个完全不同的标识符 5 2 1标识符和关键字 标识符 16 46 10 C51中有些库函数的标识符是以下划线开头的 所以一般不要以下划线开头命名用户自定义标识符 标识符在命名时应当简单 含义清晰 这样有助于阅读理解程序 关键字则是编程语言保留的特殊标识符 它们具有固定的名称和含义 在程序编写中不允许将关键字另做他用 C51中的关键字除了有ANSIC

7、标准的32个关键字外 还根据MCS 51单片机的特点扩展了相关的关键字 C51关键字如表5 1所示 在C51的文本编辑器中编写C程序 系统可以把保留关键字以不同颜色显示 如int关键字的默认颜色为天蓝色 5 2 1标识符和关键字 关键字 16 46 11 5 2 1标识符和关键字 关键字列表 16 46 12 5 2 1标识符和关键字 关键字列表 16 46 13 5 2 1标识符和关键字 关键字列表 16 46 14 5 2 2数据类型 C51具有ANSIC的所有标准数据类型 其基本数据类型包括 char int short long float和double 对C51编译器来说 short

8、类型和int类型相同 double类型和float类型相同 C51的数据类型 16 46 15 除此之外 为了更加有利地利用MCS 51的结构 C51还增加了一些特殊的数据类型 包括bit sbit sfr sfr16 数据类型如表5 2所示 5 2 2数据类型 C51的数据类型 16 46 16 char类型的长度是1B 通常用于定义处理字符数据的变量或常量 unsignedchar类型用字节中所有的位表示数值 可以表达的数值范围是0 255 signedchar类型用字节中最高位表示数据的符号 0表示正数 1表示负数 负数用补码表示 能表示的数值范围是 128 127 unsignedch

9、ar常用于处理ASCII字符或用于处理小于或等于255的整型数 1 char字符类型 5 2 2数据类型 char字符类型 16 46 17 2 int整型 int整型长度为2B 用于存放一个双字节数据 signedint表示的数值范围是 32768 32767 字节中最高位表示数据的符号 0表示正数 1表示负数 unsignedint表示的数值范围是0 65535 5 2 2数据类型 int整型 16 46 18 long长整型长度为4B 用于存放一个四字节数据 分有符号long长整型signedlong和无符号long长整型unsignedlong 默认值为signedlong类型 sig

10、nedint表示的数值范围是 2147483648 2147483647 字节中最高位表示数据的符号 0表示正数 1表示负数 unsignedlong表示的数值范围是0 4294967295 3 long长整型 5 2 2数据类型 long长整型 16 46 19 4 float浮点型 float浮点型在十进制中具有7位有效数字 是符合IEEE 754标准 32 的单精度浮点型数据 占用4B 具有24位精度 5 2 2数据类型 float浮点型 16 46 20 5 指针型 指针型本身就是一个变量 在这个变量中存放着指向另一个数据的地址 这个指针变量要占据一定的内存单元 对不同的处理器长度也不

11、尽相同 在C51中它的长度一般为1 3个字节 5 2 2数据类型 指针型 16 46 21 bit位标量是C51编译器的一种扩充数据类型 利用它可定义一个位标量 它的值是一个二进制位 不是0 就是1 类似一些高级语言中的boolean型数据的True和False 6 bit位标量 5 2 2数据类型 bit位标量 16 46 22 7 sfr特殊功能寄存器 sfr是一种C51扩充数据类型 占用一个内存单元 值域为0 255 利用它可以访问MCS 51单片机内部的所有特殊功能寄存器 如用sfrP1 0 x90定义一个特殊功能寄存器变量 P1 0 x90是指51单片机的P1端口地址90H 变量P1

12、即指51单片机的P1端口 在后面的语句中可以用P1 255 对P1端口的所有引脚置高电平 之类的语句操作特殊功能寄存器 5 2 2数据类型 sfr特殊功能寄存器 16 46 23 8 sfr1616位特殊功能寄存器 sfr16也是一种C51扩充数据类型 用于定义存在于MCS 51单片机内部RAM的16位特殊功能寄存器 如定时器T0和T1 sfr16型数据占用2个内存单元 取值范围为0 65535 5 2 2数据类型 16位特殊功能寄存器 16 46 24 sbit也是一种C51扩充数据类型 利用它可以访问芯片内部RAM中的可寻址位或特殊功能寄存器中的可寻址位 定义方法有如下三种 1 sbit位

13、变量名 位地址将位的绝对地址赋给位变量 位地址必须位于80H FFH 特殊功能寄存器的位地址 之间 9 sbit可寻址位 5 2 2数据类型 sbit可寻址位 16 46 25 2 sbit位变量名 特殊功能寄存器名 位位置当可寻址位位于特殊功能寄存器中时 可采用这种方法 位位置是一个0 7之间的常数 3 sbit位变量名 字节地址 位位置这种方法是以一个常数 字节地址 作为基地址 该常数必须在80H FFH 特殊功能寄存器的字节地址 之间 位位置是一个0 7之间的常数 9 sbit可寻址位 5 2 2数据类型 sbit可寻址位 16 46 26 MCS 51单片机中的特殊功能寄存器及其可寻址

14、位 已被预先定义放在文件reg51 h中 在程序的开头只需加上 include或 include即可 另外 bit还可访问MCS 51单片机片内20H 2FH范围内的位对象 C51编译器提供了一个bdata存储器类型 允许将具有bdata类型的对象放入MCS 51单片机片内可位寻址区 5 2 2数据类型 reg51 h 16 46 27 sbit和bit的区别 sbit定义特殊功能寄存器中的可寻址位 而bit则定义了一个普通的位变量 一个函数中可包含bit类型的参数 函数返回值也可为bit类型 5 2 2数据类型 sbit和bit 16 46 28 5 2 3运算符和表达式 C51算术运算符有

15、五种 加法运算符或正号 减法运算符或负号 乘法运算符 除法运算符 模 求余 运算符优先级 先乘除 后加减 先括号内 再括号外 结合性 自左至右方向 模运算即求余数 如7 3 结果是7除以3所得余数1 1 C51的算术运算符 算术运算符 16 46 29 C51关系运算符有六种 大于 大于等于 相等 不相等优先级 前四个高 后两个 和 级别低 结合性 自左至右方向 关系表达式的结果是逻辑值 真 或 假 C51中以 1 代表真 0 代表假 2 C51关系运算符 5 2 3运算符和表达式 关系运算符 16 46 30 C51逻辑运算符有三种 逻辑与 逻辑或 逻辑非优先级 逻辑非 最高 结合性 和 自

16、左至右方向 自右至左方向 运算符的两边为关系表达式 逻辑表达式和关系表达式的值相同 以 0 代表假 以 1 代表真 3 C51逻辑运算符 5 2 3运算符和表达式 逻辑运算符 16 46 31 C51按位操作运算符有六种 按位与 按位或 按位异或 位取反 位右移注 移位操作为补零移位 位运算符只能对整形和字符型运算 不能对实型数据运算 如 chara 0 x0f 表达式a a值为0 xf0 如 chara 0 x22 表达式a 2值为0 x88 即a值左移两位 移位后空白位补0 4 位操作运算符 5 2 3运算符和表达式 16 46 32 自增1 自减1自增 自减运算符可以在变量的前面或后面使用 如 i或 I 意为在使用i之前 先使i值加1或减1 如 i 或i 意为在使用变量i之后 再使i值加1或减1 例如 定义整型变量 inti 6 并有j i 则j值为7 i值也为7 而如有j i 则j值为6 i值为7 5 自增 自减运算符 5 2 3运算符和表达式 运算符 16 46 33 6 赋值运算符 赋值将 右边的值赋给 左边的变量 注 不是相等运算符 5 2 3运算符和表达式 赋值运算符

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号