第三章.ppt

大学单片机接口技术(C51版)-张道德-课件PPT

收藏

资源目录
跳过导航链接。
大学单片机接口技术C51版-张道德-课件PPT.zip
单片机接口技术(C51版)-张道德-PPT演示文稿
教案资料.ppt---(点击预览)
单片机接口技术(C51版)-张道德-PPT课件文件
文稿ppt_ppt.txt---(点击预览)
文稿ppt_ppt.jpg---(点击预览)
文稿ppt.ppt---(点击预览)
单片机接口技术(C51版)-张道德-大学教学资料
(课件资料)《单片机接口技术(C51版)》-张道德-电子教案
压缩包内文档预览:(预览前20页/共27页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:21836282    类型:共享资源    大小:16.08MB    格式:ZIP    上传时间:2019-09-06 上传人:QQ24****1780 IP属地:浙江
25
积分
关 键 词:
大学 单片机 接口 技术 c51 张道德 课件 ppt
资源描述:
大学单片机接口技术(C51版)-张道德-课件PPT,大学,单片机,接口,技术,c51,张道德,课件,ppt
内容简介:
单片机接口技术(C51版),第三章 数组,内容概述,数组是一种构造类型的数据,通常用来处理具有相同属性的一批数据。本章主要介绍一维数组、二维数组、多维数组以及字符数组的定义、初始化、引用及应用。,教学目标,1理解数组的概念,能定义、初始化一维数组,利用一维数组进行简单的程序设计。 2能定义、初始化二维数组,利用二维数组进行相关的程序设计。在此基础上理解三维数组以及多维数组的定义与使用方法。 3理解字符数组的概念,能定义、初始化字符数组,能利用一维数组进行字符串的处理。,C51语言还提供了构造类型的数据,它们有:数组类型、结构体类型、共用体类型。构造类型数据是由基本类型数据按一定规则组成的,因此有的书称它们为“导出类型”。,3.1 一维数组,3.1.1 一维数组的定义 一维数组的定义方式为: 类型说明符 数组名常量表达式; 例如: int a10; 它表示数组名为a,此数组有10个元素。,说明: 1) 数组名的定名规则和变量名相同,遵循标识符定名规则; 2) 数组名后是用方括弧括起来的常量表达式,不能用圆括弧,下面用法不对:int a(10); 3) 常量表达式表示元素的个数,即数组长度。例如,在a10中,10表示a数组有10个元素,下标从0开始,这10个元素是,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9。注意不能使用数组元素a10; (4) 常量表达式中可以包括常量和符号常量,不能包含变量。也就是说,C51不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。,例如,下面这样定义数组是不行的: int n; scanf(“%d“,,3.1.2 一维数组元素的引用,数组必须先定义,后使用。C51语言规定只能逐个引用数组元素而不能一次引用整个数组。 数组元素的表示形式为: 数组名下标 下标可以是整型常量或整型表达式。例如: a0=a5+a7-a2*3,例3-1-1 数组元素的引用,#include #includer void main(void ) int i,a10; #ifndef MONITOR51 /* 需要串口输出时请作如下设置*/ SCON = 0x50; /* 方式 1, 允许接收 */ TMOD |= 0x20; /* TMOD:定时器1方式2 */ TH1 = 221; /* 1200bps 16MHz */ TR1 = 1; /* 启动定时器1 */ TI = 1; /*Keil C自带的puchar()函数需要设置TI1*/ #endif for (i=0; i=0; i-) printf(“%d “,ai); ,3.1.3 一维数组的初始化,对数组元素的初始化可以用以下方法实现: 1)在定义数组时对数组元素赋以初值。 例如: int a10=0,1,2,3,4,5,6,7,8,9; 2) 可以只给一部分元素赋值。 例如: int a10=0,1,2,3,4; 定义a数组有10个元素,但花括弧内只提供5个初值,这表示只给前面5个元素赋初值,后5个元素值为0。,3) 如果想使一个数组中全部元素值为0,可以写成 int a10=0,0,0,0,0,0,0,0,0,0; 不能写成 int a10=0*10; 4) 在对全部数组元素赋初值时,可以不指定数组长度。例如: int a5=1,2,3,4,5; 可以写成 int a=1,2,3,4,5,3.1.4 一维数组应用举例,例3-1-2 已知某课程的平时、实习、测验和期末成绩,求该课程的总评成绩。其中平时、实习、测验和期末分别占10、20、20、50。 #include #include void main(void) int i=1,j; char con_key=x20; / x20 空格键的ASCII码 float score5,ratio4=0.1,0.2,0.2,0.5; /*定义成绩、比例系数数组*/ #ifndef MONITOR51 /* 需要从串口1输出时请作如下设置*/ SCON = 0x50; /* 方式 1, 允许接收 */ TMOD |= 0x20; /* TMOD:定时器1方式2 */ TH1 = 221; /* 1200bps 16MHz */ TR1 = 1; /* 启动定时器1 */ TI = 1; /*Keil C自带的puchar()函数需要设置TI1*/ #endif,while(con_key=x20) printf(“输入第%2d个学生的成绩n“, i+); printf(“平时 实习 测验 期末成绩n“); score4=0; /* score4:存储总评成绩*/ for(j=0; j4; j+) scanf(“%f“, ,3.2 二维数组,3.2.1 二维数组的定义 二维数组定义的一般形式为 类型说明符 数组名常量表达式常量表达式 例如: float a34,b510; 不能写成 float a3,4,b5,10;,3.2.2二维数组元素的引用,引用二2维数组元素的形式为: 数组名行下标表达式列下标表达式 1 “行下标表达式”和“列下标表达式”,都应是整型表达式或符号常量。 2 “行下标表达式”和“列下标表达式”的值,都应在已定义数组大小的范围内。假设有数组x34,则可用的行下标范围为02,列下标范围为03。 3 对基本数据类型的变量所能进行的操作,也都适合于相同数据类型的二维数组元素。,3.2.3 二维数组的初始化,1 按行赋初值 数据类型 数组名行常量表达式列常量表达式第0行初值表,第1行初值表,最后1行初值表; 赋值规则:将”第0行初值表”中的数据,依次赋给第0行中各元素;将“第1行初值表”中的数据,依次赋给第1行各元素;以此类推。 2 按二维数组在内存中的排列顺序给各元素赋初值 数据类型 数组名行常量表达式列常量表达式初值表; 赋值规则:按二维数组在内存中的排列顺序,将初值表中的数据,依次赋给各元素。 如果对全部元素都赋初值,则“行数”可以省略。 注意:只能省略“行数”。,3.2.4 二维数组应用举例,例3-2-1 有M个学生,学习N门课程,已知所有学生的各科成绩,编程:分别求每个学生的平均成绩和每门课程的平均成绩。,#define NUM_std 5 /*定义符号常量人数为5*/ #define NUM_course 4 /*定义符号常量课程为4*/ #include main() int i,j; static xdata float scoreNUM_std+1NUM_course+1=78,85,83,65, 88,91,89,93, 72,65,54,75, 86,88,75,60, 69,60,50,72; for(i=0;iNUM_std;i+) for(j=0;jNUM_course;j+) scoreiNUM_course += scoreij;/*求第i个人的总成绩*/ scoreNUM_stdj += scoreij; /*求第j门课的总成绩*/ scoreiNUM_course /= NUM_course;/*求第i个人的平均成绩*/ ,for(j=0;jNUM_course;j+) scoreNUM_stdj /= NUM_std; /*求第j门课的平均成绩*/ /*输出表头*/ printf(“学生编号 课程1 课程2 课程3 课程4 个人平均n“); /*输出每个学生的各科成绩和平均成绩*/ for(i=0;iNUM_std;i+) printf(“学生%dt“,i+1); for(j=0;jNUM_course+1;j+) printf(“%6.1ft“,scoreij); printf(“n“); /*输出1条短划线*/ for(j=0;j8*(NUM_course+2);j+) printf(“-“); printf(“n课程平均“); /*输出每门课程的平均成绩*/ for(j=0;jNUM_course;j+) printf(“%6.1ft“,scoreNUM_stdj); printf(“n“); ,3.3字符数组,用来存放字符量的数组称为字符数组。 字符数组类型说明的形式与前面介绍的数值数组相同。 例如: char c10; char c510;/即为二维字符数组。字符数组也允许在类型说明时作初始化赋值。 static char c=c, ,p,r,o,g,r,a,m;/ 当对全体元素赋初值时也可以省去长度说明,例3-3-1 定义一个二维数组,在放字符串“BASIC”、“DBASE”,并输出。 #include void main(void) int i,j; char a5=B,A,S,I,C,d,B,A,S,E; for(i=0;i=1;i+) for(j=0;j=4;j+) printf(“%c“,aij); printf(“n“); ,字符串在语言中没有专门的字符串变量, 通常用一个字符数组来存放一个字符串。 字符串总是以0作为串的结束符。因此当把一个字符串存入一个数组时, 也把结束符0存入数组,并以此作为该字符串是否结束的标志。 有了0标志后,就不必再用字符数组的长度来判断字符串的长度了。,C51语言允许用字符串的方式对数组作初始化赋值。例如: static char c=c, ,p,r,o,g,r,a,m; 可写为: static char c=“C program“; 或去掉写为: sratic char c=“C program“; 用字符串方式赋值比用字符逐个赋值要多占一个字节, 用于存放字符串结束标志0。,除了上述用字符串赋初值的办法外,还可用printf函数和scanf函数一次性输出输入一个字符数组中的字符串, 而不必使用循环语句逐个地输入输出每个字符。 void main() static char c=“BASICndBASE“; printf(“%sn“,c); 注意在本例的printf函数中,使用的格式字符串为“%s”, 表示输出的是一个字符串。而在输出表列中给出数组名则可。 不能写为: printf(“%s“,c);,3.4 多维数组,多维数组的一般说明格式是: 类型 数组名第n维长度第n-1维长度第1维长度; 例如: int m32; /*定义一个整数型的二维数组*/ char c223; /*定义一个字符型的三维数组*/,数组m32共有3*2=6个元素, 顺序为: m00, m01, m10, m11, m20, m21; 数组c223共有2*2*3=12个元素, 顺序为: c000, c001, c002, c010, c011, c012, c100, c101, c102,
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:大学单片机接口技术(C51版)-张道德-课件PPT
链接地址:https://www.renrendoc.com/p-21836282.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!