第4章 C语言基础与C5程序设计ppt课件

上传人:资****亨 文档编号:130805205 上传时间:2020-05-01 格式:PPT 页数:67 大小:332KB
返回 下载 相关 举报
第4章 C语言基础与C5程序设计ppt课件_第1页
第1页 / 共67页
第4章 C语言基础与C5程序设计ppt课件_第2页
第2页 / 共67页
第4章 C语言基础与C5程序设计ppt课件_第3页
第3页 / 共67页
第4章 C语言基础与C5程序设计ppt课件_第4页
第4页 / 共67页
第4章 C语言基础与C5程序设计ppt课件_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《第4章 C语言基础与C5程序设计ppt课件》由会员分享,可在线阅读,更多相关《第4章 C语言基础与C5程序设计ppt课件(67页珍藏版)》请在金锄头文库上搜索。

1、 学习目标 熟记C51的关键字和数据类型 熟练应用C51的运算符和表达式 掌握C语言的程序结构 中断服务程序编写方法 绝对地址访问方法 理解变量的存储种类和存储类型 理解中断服务程序与调用子程序的区别 熟悉C51程序设计及应用技巧 了解C语言与汇编语言混合编程的方法 第4章C语言基础与C51程序设计 1 C51程序结构汇编语言虽然有执行效率高的优点 但其可读性和可移植性差 编程效率低 这些都使它的编程和维护极不方便 从而导致了整个系统的可靠性也较差 而使用C语言进行单片机应用系统的开发 有着汇编语言编程不可比拟的优势 C语言的特点 语言简洁 紧凑 使用方便 灵活 运算符丰富 数据结构丰富 具有

2、现代化语言的各种数据结构 可进行结构化程序设计 可以直接对计算机硬件进行操作 生成的目标代码质量高 程序执行效率高 可移植性好 4 1C51语言概述 C语言程序采用函数结构 每个C语言程序由一个或多个函数组成 在这些函数中至少应包含一个主函数main 也可以包含一个main 函数和若干个其它的功能函数 不管main 函数放于何处 程序总是从main 函数开始执行 执行到main 函数结束则结束 在main 函数中调用其它函数 其它函数也可以相互调用 但main 函数只能调用其它的功能函数 而不能被其它的函数所调用 功能函数可以是C语言编译器提供的库函数 也可以是由用户定义的自定义函数 在编制C

3、程序时 程序的开始部分一般是预处理命令 函数说明和变量定义等 C51的语法规定 程序结构及程序设计方法都与标准的C语言程序设计相同 但C51程序与标准的C程序在以下几个方面不一样 1 C51中定义的库函数和标准C语言定义的库函数不同 标准的C语言定义的库函数是按通用微型计算机来定义的 而C51中的库函数是按MCS 51单片机相应情况来定义的 2 C51中的数据类型与标准C的数据类型也有一定的区别 在C51中还增加了几种针对MCS 51单片机特有的数据类型 3 C51变量的存储模式与标准C中变量的存储模式不一样 C51中变量的存储模式是与MCS 51单片机的存储器紧密相关 4 C51与标准C的输

4、入输出处理不一样 C51中的输入输出是通过MCS 51串行口来完成的 输入输出指令执行前必须要对串行口进行初始化 5 C51与标准C在函数使用方面也有一定的区别 C51中有专门的中断函数 用C语言编写MCS 51单片机程序与用汇编语言编写MCS 51单片机程序不一样 用汇编语言编写MCS 51单片机程序必须要考虑其存储器结构 尤其必须考虑其片内数据存储器与特殊功能寄存器的使用以及按实际地址处理端口数据 用C语言编写的MCS 51单片机应用程序 则不用像汇编语言那样须具体组织 分配存储器资源和处理端口数据 但在C语言编程中 对数据类型与变量的定义 必须要与单片机的存储结构相关联 否则编译器不能正

5、确地映射定位 2 C语言与MCS 51单片机 现在支持MCS 51单片机的C语言编译器有很多种 如AmericanAutomation Avocet BSO TASKING DUNFIELDSHAREWARE KEIL Franklin等 各种编译器的基本情况相同 但具体处理时有一定的区别 其中KEIL Franklin以它的代码紧凑和使用方便等特点优于其他编译器 使用特别广泛 4 2C51语言的基本语法 我们要通过C51语言进行单片机应用程序的开发 首先就要掌握C51语言的语法 C51语言的语法主要包括 C51标识符和关键字 C51数据类型 变量的存储种类及存储类型 绝对地址访问 C51运算

6、符和表达式 与标准的C语言相比 C51针对于单片机的关键字 数据类型及绝对地址访问方式增加的部分 在本节中都将进行详细的介绍 标识符用来标识源程序中某个对象的名字 这些对象可以是语句 数据类型 函数 变量 数组等 C语言是区分大小写的一种高级语言 如果要定义一个变量 可以写作 a 如果程序中有 A 那么这两个是完全不同定义的标识符 标识符是由字母 数字和下划线等组成的字符串 应该注意的是第一个字符必须是字母或下划线 关键字则是编程语言保留的特殊标识符 它们具有固定名称和含义 在程序编写中不允许将关键字另作他用 C51中的关键字除了有ANSIC标准的32个关键字外 还根据C51单片机的特点扩展了

7、相关的关键字 4 2 1C51的标识符和关键字 表4 1C51编译器的扩展关键字 C51的数据类型分为基本数据类型和组合数据类型 情况与标准C中的数据类型基本相同 但其中char型与short型相同 float型与double型相同 另外 C51中还有专门针对于MCS 51单片机的特殊功能寄存器型和位类型 4 2 2C51的数据类型 1 字符型char有signedchar和unsignedchar之分 默认为signedchar 它们的长度均为一个字节 用于存放一个单字节的数据 对于signedchar 它用于定义带符号字节数据 其字节的最高位为符号位 0 表示正数 1 表示负数 补码表示

8、所能表示的数值范围是 128 127 对于unsignedchar 它用于定义无符号字节数据或字符 可以存放一个字节的无符号数 其取值范围为0 255 unsignedchar可以用来存放无符号数 也可以存放西文字符 一个西文字符占一个字节 在计算机内部用ASCII码存放 2 int整型分singedint和unsignedint 默认为signedint 它们的长度均为2个字节 用于存放一个双字节数据 对于signedint 用于存放两字节带符号数 补码表示 数的范畴为 32768 32767 对于unsignedint 用于存放两字节无符号数 数的范围为0 65535 3 long长整型分

9、singedlong和unsignedlong 默认为signedlong 它们的长度均为四个字节 用于存放一个四字节数据 对于signedlong 用于存放四字节带符号数 补码表示 数的范畴为 2147483648 2147483647 对于unsignedlong 用于存放四字节无符号数 数的范围为0 4294967295 4 float浮点型float型数据的长度为四个字节 格式符合IEEE 754标准的单精度浮点型数据 包含指数和尾数两部分 最高位为符号位 1 表示负数 0 表示正数 其次的8位为阶码 最后的23位为尾数的有效数位 由于尾数的整数部分隐含为 1 所以尾数的精度为24位

10、5 指针型指针型本身就是一个变量 在这个变量中存放的指向另一个数据的地址 这个指针变量要占用一定的内存单元 对不同的处理器其长度不一样 在C51中它的长度一般为1 3个字节 6 特殊功能寄存器型这是C51扩充的数据类型 用于访问MCS 51单片机中的特殊功能寄存器数据 它分sfr和sfr16两种类型 其中 sfr为字节型特殊功能寄存器类型 占一个内存单元 利用它可以访问MCS 51内部的所有特殊功能寄存器 sfr16为双字节型特殊功能寄存器类型 占用两个字节单元 利用它可以访问MCS 51内部的所有两个字节的特殊功能寄存器 在C51中对特殊功能寄存器的访问必须先用sfr或sfr16进行声明 7

11、 位类型这也是C51中扩充的数据类型 用于访问MCS 51单片机中的可寻址的位单元 在C51中 支持两种位类型 bit型和sbit型 它们在内存中都只占一个二进制位 其值可以是 1 或 0 区别 用bit定义的位变量在C51编译器编译时 在不同的时候位地址是可以变化的 而用sbit定义的位变量必须与MCS 51单片机的一个可以寻址位单元或可位寻址的字节单元中的某一位联系在一起 在C51编译器编译时 其对应的位地址是不可变化的 sfrP0 0 x80 因P0口的寄存器是可位寻址的 sbitP0 0 P0 0 所以P0 0为P0中的P0 0引脚 除了以上定义方式外 还可以用P0 0的地址去写 如

12、sbitP0 0 0 x80 在C51语言程序中 有可能会出现在运算中数据类型不一致的情况 C51允许任何标准数据类型的隐式转换 隐式转换的优先级顺序如下 bit char int long floatsigned unsigned也就是说 当char型与int型进行运算时 先自动对char型扩展为int型 然后与int型进行运算 运算结果为int型 C51除了支持隐式类型转换外 还可以通过强制类型转换符 对数据类型进行人为的强制转换 C5l编译器除了能支持以上这些基本数据类型之外 还能支持一些复杂的组合型数据类型 如数组类型 指针类型 结构类型 联合类型等这些复杂的数据类型 在后面将相继介绍

13、 4 3 1常量常量是指在程序执行过程中其值不能改变的量 在C51中支持整型常量 浮点型常量 字符型常量和字符串型常量 一 整型常量整型常量也就是整型常数 根据其值范围在计算机中分配不同的字节数来存放 在C51中它可以表示成以下几种形式 十进制整数 如234 56 0等 十六进制整数 以0 x开头表示 如0 x12表示十六进制数12H 长整数 在C51中当一个整数的值达到长整型的范围 则该数按长整型存放 在存储器中占四个字节 另外 如一个整数后面加一个字母L 这个数在存储器中也按长整型存放 如123L在存储器中占四个字节 补充 C51的运算量 二 浮点型常量浮点型常量也就是实型常数 有十进制表

14、示形式和指数表示形式 十进制表示形式又称定点表示形式 由数字和小数点组成 如0 123 34 645等都是十进制数表示形式的浮点型常量 指数表示形式为 数字 数字 e 数字例如 123 456e 3 3 123e2等都是指数形式的浮点型常量 三 字符型常量字符型常量是用单引号引起的字符 如 a 1 F 等 可以是可显示的ASCII字符 也可以是不可显示的控制字符 对不可显示的控制字符须在前面加上反斜杠 组成转义字符 利用它可以完成一些特殊功能和输出时的格式控制 常用的转义字符如下表所示 四 字符串型常量字符串型常量由双引号 括起的字符组成 如 D 1234 ABCD 等 注意字符串常量与字符常

15、量是不一样 一个字符常量在计算机内只用一个字节存放 而一个字符串常量在内存中存放时不仅双引号内的字符一个占一个字节 而且系统会自动的在后面加一个转义字符 0 作为字符串结束符 因此不要将字符常量和字符串常量混淆 如字符常量 A 和字符串常量 A 是不一样的 4 3 2变量变量是在程序运行过程中其值可以改变的量 一个变量由两部分组成 变量名和变量值 在C51中 变量在使用前必须对变量进行定义 指出变量的数据类型和存储模式 以便编译系统为它分配相应的存储单元 定义的格式如下 存储种类 数据类型说明符 存储器类型 变量名1 初值 变量名2 初值 一 数据类型说明符在定义变量时 必须通过数据类型说明符

16、指明变量的数据类型 指明变量在存储器中占用的字节数 可以是基本数据类型说明符 也可以是组合数据类型说明符 还可以是用typedef定义的类型别名 在C51中 为了增加程序的可读性 允许用户为系统固有的数据类型说明符用typedef起别名 格式如下 typedefc51固有的数据类型说明符别名 定义别名后 就可以用别名代替数据类型说明符对变量进行定义 别名可以用大写 也可以用小写 为了区别一般用大写字母表示 例 typedef的使用 typedefunsignedintWORD typedefunsignedcharBYTE BYTEa1 0 x12 WORDa2 0 x1234 二 变量名变量名是C51区分不同变量 为不同变量取的名称 在C51中规定变量名可以由字母 数字和下划线三种字符组成 且第一个字母必须为字母或下划线 变量名有两种 普通变量名和指针变量名 它们的区别是指针变量名前面要带 号 4 2 3变量的存储种类和存储类型变量是一种在程序执行过程中 其数值不断变化的量 C51规定变量必须先定义后使用 C51对变量定义的格式如下 存储种类 数据类型 存储器类型 变量名表 1 存储

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

当前位置:首页 > 高等教育 > 大学课件

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