电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPTX文档下载
分享到微信 分享到微博 分享到QQ空间

嵌入式C语言程序设计教程 教学课件 ppt 作者 李红 第六章

  • 资源ID:89495192       资源大小:890.94KB        全文页数:48页
  • 资源格式: PPTX        下载积分:10金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要10金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

嵌入式C语言程序设计教程 教学课件 ppt 作者 李红 第六章

第六章 数组与指针,【任务实例1】 P1口连接8位发光管,8位发光管会依次点亮。 参考程序: #include void main(void) Const unsigned char desin32=0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x0,0xE7,0xDB,0xBD,0x7E,0xFF; unsigned int a; unsigned char b; do for (b=0;b32;b+) for (a=0;a30000;a+); P1=desinb; while(1); ,【知识点】 1 数组的概念 将一组排列有序的、个数有限的变量作为一个整体,用一个统一的名字来表示,则这些有序变量的全体称为数组。或者说,数组是用一个名字代表顺序排列的一组元素,顺序号就是下标变量的值。而简单变量是没有序的,无所谓谁先谁后,数组中的单元是有排列顺序的。 在同一数组中,构成该数组的成员称为数组单元或叫数组元素。数组里面的每一个数据用数组单元名来标识。在嵌入式C语言中,引用数组中的某一单元,要指出数组名和用括号括起来的数组单元在数组中的位置(顺序号)的下标。因此,数组单元又称“带下标的变量”,简称“下标变量”。例如: desinb中,desin 是数组名。该数组可以存放b个数据,即32个数据,分别用下标变量表示:desin 0, desin 1,desin 32。 数组的主要优点在于其组织数据的方式可以使数据易于处理,也有利于数据的存储。 2数组的维数 数组下标的个数称为数组是数组的维数。具有一个下标的数组是一维数组,相应有两个下标的数组为二维数组,依次类推。 一般来讲,数组元素下标的个数就是该数组的维数;反之,一个数组的维数一旦确定,那么它的元素下标的个数也就随之确定了。例如: desin b 为一维数组,3一维数组的定义 一维数组是最简单的数组,用来存放类型相同的数据,数据的存放是线性连续的。 (1)定义一维数组的格式 定义一维数组的格式为: 类型标识符 数组名常量表达式 , ; (2)对一维数组的使用有以下几点说明 定义一个数组,数组名是标识符,命名规则同标识符命名规则。 数组的类型,即数组元素的类型,可以是基本类型(整型、实型和字符型等),也可以是指针类型、结构体类型或共用体类型。 定义数组时,必须使用下标常量表达式,表示数组中有多少个元素,即数组的长度。它可以是常量或符号常量,但是不能是变量。,4. 一维数组的引用 使用数组必须先定义,后引用。嵌入式C语言规定,不能引用整个数组,只能逐个引用元素。元素引用方式为: 数组名下标 下标可以是整型常量或整型表达式,例如:a3=a2+a3*2; 在引用时应注意以下几点: (1)由于数组元素本身等价于同一类型的一个变量,它的使用与同类型的普通变量是相同的。 (2)在引用数组元素时,下标可以是整型常数或表达式,表达式内允许变量存在。引用数组时,下标从0开始(下界为0),数组的最大下标(上界)是数组长度减1。下标的取值范围是0,数组长度-1的整型值。 (3)对于一维数组来说,在嵌入式C语言中不能引用整个数组,只能引用单个数组元素。 (4)数组名后方括号内是数组下标,下标表示该元素是数组的第几个元素。数组名后面的方括号内的内容只有在数组定义时才是数组的长度,其他时候都是数组下标。 是下标运算符,引用数组元素时,根据数组的首地址和下标数,计算出该元素的实际地址,取出该地址的内容进行操作。 5数组元素的地址 数组元素的地址:数组元素的地址也可用元素前面加取地址运算符的方式来获得,形式如下: &数组名下标,【任务实例2】 在计算机屏幕上显示max=90字符。 参考程序: #include #include “stdio.h“ void main(void) int max,i ; int a10=1,5,3,8,12,90,65,55,45,34; SCON = 0x50; /串口方式1,允许接收 TMOD = 0x20; /定时器1定时方式2 TCON = 0x40; /设定时器1开始计数 TH1 = 0xE8; /11.0592MHz 1200波特率 TL1 = 0xE8; TI = 1; TR1 = 1; /启动定时器 max=a0; /*假设最大值为第一个元素*/ for(i=1;i10;i+) if(maxai) max=ai ; /*经过比较,可能会推翻最初的假设*/ printf(“max=%d“,max); /*输出最大值*/ ,微软用户1,波特率:串行通讯传送的字符是按位传送的,每一位的宽度(位信号持续时间)由数据传送速率确定。波特率就是数据传送速率的规定。1波特表示每秒传送1位(bit),即: 1波特 = 1位/秒 (1bps) 9600波特即表示每秒传送9600位(bit)。 接口形式:异步串行通讯接口有三类:RS232c(RS232A,RS232D)RS449,RS422,RS423和RS48520mA电流环各类接口具有不同的电气和机械标准。不同类型接口间不能实现通讯。相互通讯的双方必须采用同样的接口。,2、AT89S51的串行通讯功能 AT89S51/52单片机与大多数MCS51单片机一样,有一个全双工的串行通讯接口。全双工就是同时可以发送和接收数据。因此,它有两个通讯端口,由P3.0和P3.1的第二功能实现。P3.0 (RXD)是串行通讯接收端口,P3.1(TXD)是串行通讯发送端口。 AT89S51/52中的串行接口有4种工作方式,以供不同场合使用。波特率可由软件设置,由片内的定时器计数器产生。接收、发送均可工作在查询方式或中断方式,使用十分灵活。 串行接口中有个物理上独立的接收、发送缓冲器SBUF。可同时发送、接收效据。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,两个缓冲器占用同一个地址(99H)。对SBUF写就表示把数据装入发送缓冲器,读SBUF即表示读取接收缓冲器。 控制串行口的控制寄存器共有二个;特殊功能寄存器SCON和PCON。串行口控制寄存器SCON:,SM0、SM1:控制串行口的工作方式。(其功能详见串行口工作方式部分)SM2:允许方式2和方式3进行多机通讯的控制位。REN:允许串行接收控制位。由软件置位时允许接收,由软件清零时禁止接收。TB8:是工作在方式2和方式3时要发送的第9位数据。RB8:是工作在方式2和方式3时,接收到的第9位数据。在方式1,如果SM20,RB8接收到的是停止位。在方式0,不使用RB。TI:发送中断标志位。由片内硬件在方式0串行发送第8位结束时置位,或在其它方式串行发送停止位的开始时置位。必须由软件清零。RI:接收中断标志位。由片内硬件在方式0串行接收到第8位结束时置位,或在其它方式串行接收到停止位的中间时置位。必须由软件清零。SCON的所有位复位时被清零。,当选择方式1,串行口为8位异步通讯接口时。一帧信息为10位:1位起始位,8位数据位(低位在先)和一位停止位。TXD为发送端,RXD为接收端,波特率可以依据T1的溢出率设计。 方式1发送: 串行口以方式1发送时,数据由TXD端输出,CPU执行一条写入SBUF的指令就启动串行口发送,发送完一帧信息时,发送中断标志TI置1。方式1接收:当REN1时,接收器便以所选波特率的16倍速率采样RXD引脚状态,当采样到RXD端从1到0的跳变时就启动接收器接收。如果判定起始位有效,接收器开始接收本帧的其余信息(一帧信息为10位)。在方式1接收中,若接收到的停止位为1,则接收数据有效,数据进入SBUF、停止位进入RB8、RI置1。接收控制器再次采样RXD的负跳变,以便接收下一帧数据。如果停止位不为1,信息将丢失。中断标志RI必须由用户的软件清零。,【知识点】 1 一维数组的初始化 数组的初始化是指在定义数组时给全部数组元素或部分数组元素赋值。一维数组初始化的形式为: 存储类型 数据类型 数组名数组长度=初值列表; 内的各个初值之间用逗号分隔,数值类型必须与数组类型一致。系统将按初值的排列顺序,顺次给数组元素赋值。如下面定义语句: int a10= 78,98,67,87,-56,-67,67,0,-98,67 ; char c5='c', 'h', 'i', 'n', 'a' ; 当中所列初值的数量必须小于等于数组长度。当初值数量小于数组长度时,数值型数组的后面没有初值的元素由系统自动赋值为0。 2. 数组大小的指定 可以通过赋初值定义数组的大小。在对全部数组元素赋初值时,可以不指定数组的长度,系统会自动计算长度。 例如: int a =1, 2, 3, 4, 5 ; 等价于 int a5=1, 2, 3, 4, 5 ; 又如: int a =0, 0, 0, 0, 0 ;等价于 int a5=0 ;,7任务二 二维数组 【任务实例1】 在计算机屏幕显示“每位同学的成绩,计算三门课程的平均分及课程的平均分并显示”。 参考程序: #include #include “stdio.h“ #define N 40 void main(void) xdata int ave3,scoreN4,sum; int i,j,n; SCON = 0x50; TMOD = 0x20; TCON = 0x40; TH1 = 0xE8; TL1 = 0xE8; TI = 1; TR1 = 1; n=3; score00=10;score01=20;score02=30; score10=20;score11=30;score12=40; score20=60;score21=80;score22=100; for(i=0;in;i+) /*计算每个学生的平均成绩*/ sum=0; for(j=0;j3;j+) sum=sum+scoreij; scorei3= sum/3; for(j=0;j3;j+) /*计算每门课的平均成绩*/ sum=0; for(i=0;in;i+) sum=sum+scoreij; avej= sum/n; for(i=0;in;i+) printf(“%d “,i+1); /*左对齐,输出学生编号*/ for(j=0;j4;j+) printf(“%d “, scoreij); /*左对齐输出*/ printf(“n“); printf(“PJCJ “); /*一个汉字占两个字符的位置,后面添加2个空格*/ for (j = 0; j 3; j+) printf(“%d“, avej); /*左对齐输出*/ ,【知识点】 1二维数组的定义 定义二维数组的一般格式为: 类型标识符 数组名常量表达式1常量表达式2 ; 在二维数组的定义中,数组名后面紧跟两个方括号括起来两个下标。常量表达式1的值指明了二维数组的行数,常量表达式2的值指明了二维数组的列数。行下标值和列下标值的乘积,是数组元素的个数。 例如:float score404; 定义了一个实型二维数组score,共有40*4=160个元素,可以称为40行4列的数组。 对于以上定义的数组有以下几点说明,这些说明同样适合其他二维数组。 (1)二维数

注意事项

本文(嵌入式C语言程序设计教程 教学课件 ppt 作者 李红 第六章)为本站会员(E****)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.