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

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

48页
  • 卖家[上传人]:E****
  • 文档编号:89495192
  • 上传时间:2019-05-25
  • 文档格式:PPTX
  • 文档大小:890.94KB
  • / 48 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第六章 数组与指针,【任务实例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 数组的概念 将一组排列有序的、个数有限的变量作为一个整体,用一个统一的名字来表示,则这些有序变量的全体称为数组。或者说,数组是用一个名字代表顺序排列的一组元素,顺序号就是下标变量的值。而简单变量是没有序的,无所谓谁先谁后,数组中的单元是有排列顺序的。 在同一数组中,构成该

      2、数组的成员称为数组单元或叫数组元素。数组里面的每一个数据用数组单元名来标识。在嵌入式C语言中,引用数组中的某一单元,要指出数组名和用括号括起来的数组单元在数组中的位置(顺序号)的下标。因此,数组单元又称“带下标的变量”,简称“下标变量”。例如: desinb中,desin 是数组名。该数组可以存放b个数据,即32个数据,分别用下标变量表示:desin 0, desin 1,desin 32。 数组的主要优点在于其组织数据的方式可以使数据易于处理,也有利于数据的存储。 2数组的维数 数组下标的个数称为数组是数组的维数。具有一个下标的数组是一维数组,相应有两个下标的数组为二维数组,依次类推。 一般来讲,数组元素下标的个数就是该数组的维数;反之,一个数组的维数一旦确定,那么它的元素下标的个数也就随之确定了。例如: desin b 为一维数组,3一维数组的定义 一维数组是最简单的数组,用来存放类型相同的数据,数据的存放是线性连续的。 (1)定义一维数组的格式 定义一维数组的格式为: 类型标识符 数组名常量表达式 , ; (2)对一维数组的使用有以下几点说明 定义一个数组,数组名是标识符,命名规

      3、则同标识符命名规则。 数组的类型,即数组元素的类型,可以是基本类型(整型、实型和字符型等),也可以是指针类型、结构体类型或共用体类型。 定义数组时,必须使用下标常量表达式,表示数组中有多少个元素,即数组的长度。它可以是常量或符号常量,但是不能是变量。,4. 一维数组的引用 使用数组必须先定义,后引用。嵌入式C语言规定,不能引用整个数组,只能逐个引用元素。元素引用方式为: 数组名下标 下标可以是整型常量或整型表达式,例如:a3=a2+a3*2; 在引用时应注意以下几点: (1)由于数组元素本身等价于同一类型的一个变量,它的使用与同类型的普通变量是相同的。 (2)在引用数组元素时,下标可以是整型常数或表达式,表达式内允许变量存在。引用数组时,下标从0开始(下界为0),数组的最大下标(上界)是数组长度减1。下标的取值范围是0,数组长度-1的整型值。 (3)对于一维数组来说,在嵌入式C语言中不能引用整个数组,只能引用单个数组元素。 (4)数组名后方括号内是数组下标,下标表示该元素是数组的第几个元素。数组名后面的方括号内的内容只有在数组定义时才是数组的长度,其他时候都是数组下标。 是下标运算符,

      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,波特率:串行通讯传送的字

      5、符是按位传送的,每一位的宽度(位信号持续时间)由数据传送速率确定。波特率就是数据传送速率的规定。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。可同时发送、接收效据。发送缓冲器

      6、只能写入不能读出,接收缓冲器只能读出不能写入,两个缓冲器占用同一个地址(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位数据位(低位在先)和一位停止

      7、位。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,6

      8、7 ; 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;s

      9、core01=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****分享,可在线阅读,更多相关《嵌入式C语言程序设计教程 教学课件 ppt 作者 李红 第六章》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党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.