电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

单片机原理及接口技术 教学课件 ppt 作者 赵佩华 眭碧霞 第4章 单片机的C51程序设计

54页
  • 卖家[上传人]:E****
  • 文档编号:89483273
  • 上传时间:2019-05-25
  • 文档格式:PPT
  • 文档大小:90.50KB
  • / 54 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第4章 单片机的C51程序设计,机械工业出版社,第4章 单片机的C51程序设计,C51编程概述 C51数据类型及存储类型 C51的基本运算 C51的构造数据类型 C51的函数 汇编语言和C语言的混合编程,4.1 C51编程概述,概述 8051单片机支持四种语言:汇编、PL/M、C和BASIC。,4.1 C51编程概述,KEIL 8051开发工具 KEIL 8051开发工具可用于编译C源程序、汇编源程序,链接和定位目标文件及库, 创建HEX文件以及调试目标程序。,4.1 C51编程概述,C51程序开发过程 Cx51源程序是ASCII文件,可以用任何标准的ASCII文本编辑器来编写。例如记事本,写字板等。,4.1 C51编程概述,C51程序结构 C语言程序的组成结构如下所示: 全局变量说明 /*可被各函数引用*/ main() /*主函数*/ 局部变量说明 /*只在本函数引用*/ 执行语句(包括调用其他函数语句) fun1(形式参数表) /*函数1*/ 形式参数说明 ,4.2 C51数据类型及存储类型,C51的数据类型 C51的数据类型大体可以分为基本数据类型、构造数据类型、指针类型、空类

      2、型、位型变量等。,4.2 C51数据类型及存储类型,C51的数据存储类型 C51编译器允许的存储类型主要包括data,bdata、idata、pdata、xdata和code等,它们和单片机的不同存储区相对应。,4.2 C51数据类型及存储类型,C51对单片机主要资源的定义 使用关键字定义SFR 通过头文件访问SFR 对扩展I/O端口或片外RAM的直接访问 定义和使用位变量,4.3 C51的基本运算,C51的基本运算主要包括算数运算、关系运算、逻辑运算、位运算和赋值运算及其表达式等。,4.3 C51的基本运算,C51的算术运算 基本算术运算 自增、自减运算 算术表达式和运算符的优先级与结合性,4.3 C51的基本运算,C51的关系运算 关系运算符: 、 = 、= =、! = 关系表达式:用关系运算符将运算对象连接起来的式子为关系表达式,关系表达式的值为逻辑值,其结果只能取真和假两种值。,4.3 C51的基本运算,C51的逻辑运算 C51提供3种逻辑运算符:& 、| | 、! 逻辑表达式:用逻辑运算符将运算对象连接起来的式子称为逻辑表达式,逻辑表达式的值是逻辑量,即真或假。,4.3 C5

      3、1的基本运算,C51的位运算 位运算的操作对象是整型和字符型数据,不能是实型数据。 & (按位与)、| (按位或)、 (按位异或) 、 (按位取反)、 (左移)、 (右移),4.3 C51的基本运算,C51的赋值运算 赋值运算符:= 赋值表达式:变量名=表达式 赋值的类型转换规则:赋值运算中,赋值号两侧数据类型不一致时,系统自动将右边表达式值转换成左侧变量的类型,再赋给该变量。 复合赋值运算符:赋值符号前加上其他运算符构成复合赋值运算符。,4.4 C51的构造数据类型-数组,C51的构造数据类型有数组、指针和结构等。 在单片机系统中,数组的应用比较广泛,指针次之,结构则用得相对较少。,4.4 C51的构造数据类型-数组,数组 数组是同类型数据的有序集合。 数组用一个名字来标识,称为数组名。 数组中各元素的顺序用下标表示,下标为n的元素可以表示为数组名 n 。 改变 中的下标就可以访问数组中的不同元素。,4.4 C51的构造数据类型-数组,一维数组 由具有一个下标的数组元素组成的数组称为一维数组。 定义一维数组的一般形式如下: 类型说明符 数组名元素个数; 在定义数组时可以对数组进行整体

      4、初始化。定义后,若想对数组赋值,则只能对每个元素分别赋值。,4.4 C51的构造数据类型-数组,二维数组 具有两个或两个以上下标的数组称为二维数组或多维数组。 二维数组定义形式如下: 类型说明符 数组名行数 列数 ; 其中,数组名是一个标识符,行数和列数是常量表达式。 二维数组在定义时可以整体初始化,定义后,可单个赋值。,4.4 C51的构造数据类型-数组,字符数组 若数组的元素是字符型的,则该数组是一个字符数组。,4.4 C51的构造数据类型-指针,指针 C51支持“基于存储器”的指针和“一般”指针。 当定义一个指针变量时,若未给出它所指向的对象的存储类型,则该指针变量被认为是一般指针;若给出了它所指对象的存储类型,则该指针被认为是基于存储器的指针。,4.4 C51的构造数据类型-指针,基于存储器的指针 例如: char xdata * px; px指向一个存在片外RAM的字符变量,Px在默认的存储器中,占2字节。 char xdata * data py; py指向一个存在片外RAM的字符变量,py本身在RAM中,占用2字节。,4.4 C51的构造数据类型-指针,一般指针 函数调用

      5、过程中,函数的指针参数需要用一般指针。 一般指针的说明形式如下: 数据类型 *指针变量 如:char * pz; pz处于编译模式默认的存储区,长度为3字节。,4.4 C51的构造数据类型-结构,结构类型的定义 struct 结构名 结构成员说明;/和定义基本数据类型相似 例如,定义一个名为date的结构类型: struct date int month; int day; int year; ,4.4 C51的构造数据类型-结构,定义结构的变量 结构变量可以在定义结构时定义,也可以先定义结构类型,在定义该结构的变量。,4.4 C51的构造数据类型-结构,定义结构的变量 先定义结构date,再定义其结构的变量date 1和date2: date datel , date2; struct student int no; char name 20 ; int grade; wangxiao, liping ; / /定义结构时即定义结构的变量date 1和date2。,4.4 C51的构造数据类型-结构,结构类型变量的引用 使用成员运算符“ . “实现对结构成员的引用。 例如: date

      6、. year = 2003; date. month = 12; date. day = 25;,4.5 C51流程控制语句,C51 的选择语句有: if语句 switch/ case语句。,4.5 C51流程控制语句-if,if语句 C51提供3种形式的if语句: if(表达式) 语句; if(表达式)语句 ; else语句2; if(表达式1) 语句1; else if (表达式2) 语句2; else if (表达式3) 语句3; ,4.5 C51流程控制语句-if,if语句 如果一个if语句中又含有一个或多个if语句,则称为if语句嵌套。 在if语句嵌套中,应注意if与else的对应关系,else总是与它前面最近的一个if语句相对应。,4.5 C51流程控制语句- switch,switch/ case 语句 switch/ case是多分支选择语句,形式如下: switch (表达式) case常量表达式1 :语句1; break; case常量表达式2:语句2; break; case常量表达式n:语句n; break; default :语句n + 1 ; ,4.5 C5

      7、1流程控制语句- switch,说明 1. switch括号中的表达式的值与某一case后面的常量表达式的值相同时,就执行它后面的语句,遇到break语句则退出switch语句。 2. 若所有的case中的常量表达式的值都没有与表达式的值相匹配时,就执行default后面的语句。,4.5 C51流程控制语句- switch,说明 3. 每一个case的常量表达式必须是互不相同的,否则将出现混乱局面。 4. 各case和default出现的次序,不影响程序的执行结果。,4.5 C51流程控制语句,循环语句 循环程序主要有“当型”循环和“直到型”循环两种,C51对此提供了4种实现方法。,4.5 C51流程控制语句,循环语句 基于if和goto构成的循环 基于while语句构成的循环 基于do-while语句构成的循环 基于for语句构成的循环,4.5 C51流程控制语句,基于if和goto构成的循环 采用if和goto可以构成“当型“循环程序: loop: if(表达式) 语句 goto loop; loop是语句标号,或称为标识符,原则上任何一条语句都可以有标号,标号和语句用 “ :”号

      8、分开。,4.5 C51流程控制语句,基于if和goto构成的循环 采用if和goto可以构成“直到型“循环程序: loop: 语句; if(表达式) goto loop; ,4.5 C51流程控制语句,基于while语句构成的循环 while语句用来实现“当型“循环: while (表达式) 语句;/可以是复合语句 while语句首先计算表达式的值;若其值为非0,则执行内嵌语句,若其值为0,则退出while 循环。,4.5 C51流程控制语句,基于do-while语句构成的循环 do-while语句用来实现“直到型“循环: do 语句;/可以是复合语句 while (表达式) ;,4.5 C51流程控制语句,基于do-while语句构成的循环 do-while语句特点:先执行内嵌的语句;再计算表达式,如果表达式的值为非0,则继续执行内嵌的语句,直到表达式的值为0时结束循环。,4.5 C51流程控制语句,基于for语句构成的循环 for语句的一般形式为: for (表达式1 ;表达式2;表达式3) 语句; ,4.5 C51流程控制语句,基于for语句构成的循环 for语句执行过程:首先求

      9、解表达式1 ;其次求解表达式2,若其值非0,则执行内嵌语句;否则退出循环;最后求解表达式3,并回到第2步。 在for 语句中,可以没有表达式1、表达式2或表达式3,若三个表达式都没有,则相当于二个死循环。,4.5 C51流程控制语句,C51的中断控制 C51编译器支持在C51源程序中直接开放中断过程或中断函数,但中断函数是由中断系统自动调用的。 用户在主程序或函数中一般不能调用中断函数,否则容易导致混乱。,4.5 C51流程控制语句,C51的中断控制 中断函数定义: 返回值 函数名 interrupt n using r,4.5 C51流程控制语句,C51的中断控制 中断函数中, interrupt和using为关键字。 n为中断源编号。05分别对应外部中断0、定时器/计数器0中断、外部中断1、定时器/计数器1中断、串口中断和定时器/计数器2中断。 r为工作寄存器组,取值范围为03。若选择了寄存器组,则按程序员的安排编译,否则由编译器自动分配。,4.6 C51函数,函数的分类 从C 程序结构上划分:主函数main ( )和普通函数。,4.6 C51函数,函数的分类 普通函数可以分为:标准库函数、用户自定义函数。 标准库函数是由C编译系统提供的库函数。在C编译系统中将一些独立的功能模块编写成公用函数,并将它们集中存放在系统的函数库中,供程序设计时使用,称之为标准库函数。,4.6 C51函数,函数的分类 用户自定义函数是用户根据自己的需要编写的函数。从函数定义的形式上可以将其划分为无参数函数、有参数函数和空函数。,4.6 C51函数,函数的定义 函数定义形式: 返回值类型 函数名(形式参数列表) 函数体; ,4.6 C51函数,说明 1. 返回值可以是基本数据类型或指针类型。 2. 当函数没有返回值时,则使用标识符void进行说明。若没有指定函数的返回值类型,默认返回值则为整型类型。 3. 一个函数只能有一个返回值,该返回值通过函数中的return语句获得。,4.6 C51函数,说明 4. 函数名必须是合法标识符。 5. 形式参数列表包括了函数所需全部参数的定义。形式参数可以是基本数据类型的数据、指

      《单片机原理及接口技术 教学课件 ppt 作者 赵佩华 眭碧霞 第4章 单片机的C51程序设计》由会员E****分享,可在线阅读,更多相关《单片机原理及接口技术 教学课件 ppt 作者 赵佩华 眭碧霞 第4章 单片机的C51程序设计》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.