程序设计中使用指针可以使程序简洁紧凑高效有效地课件.pptx

上传人:小飞机 文档编号:3958315 上传时间:2023-03-29 格式:PPTX 页数:28 大小:1.63MB
返回 下载 相关 举报
程序设计中使用指针可以使程序简洁紧凑高效有效地课件.pptx_第1页
第1页 / 共28页
程序设计中使用指针可以使程序简洁紧凑高效有效地课件.pptx_第2页
第2页 / 共28页
程序设计中使用指针可以使程序简洁紧凑高效有效地课件.pptx_第3页
第3页 / 共28页
程序设计中使用指针可以使程序简洁紧凑高效有效地课件.pptx_第4页
第4页 / 共28页
程序设计中使用指针可以使程序简洁紧凑高效有效地课件.pptx_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《程序设计中使用指针可以使程序简洁紧凑高效有效地课件.pptx》由会员分享,可在线阅读,更多相关《程序设计中使用指针可以使程序简洁紧凑高效有效地课件.pptx(28页珍藏版)》请在三一办公上搜索。

1、C程序设计中使用指针可以:使程序简洁、紧凑、高效有效地表示复杂的数据结构动态分配内存得到多于一个的函数返回值,C语言知识(161页):指针,1,谢谢欣赏,2019-7-13,1、变量与地址,如变量声明如下(默认存储在内存):,i,编译(对于全局变量)或函数调用(对于全局变量)时根据变量的类型为其分配地址,具体地址,我们不必关心。首地址就是该变量的地址,首地址就是该变量的地址,就像院长只知道我院有多少学生宿舍,但并不关心哪个学生住哪个宿舍一样。,一个字符型变量分配一字节(char)内存单元,一个整型(int)变量分配两字节内存单元,一个长整型变量分配4字节内存单元。,2,谢谢欣赏,2019-7-

2、13,如变量声明如下(定义在外存):,i,首地址就是该变量的地址,编译(对于全局变量)或函数调用(对于全局变量)时根据变量的类型为其分配地址,具体地址,我们不必关心。首地址就是该变量的地址,3,谢谢欣赏,2019-7-13,i,j,k,2、指针,通过变量名获取变量值,是变量的基本使用方法直接访问。,通过对变量地址的访问,获取变量的值间接访问。要访问变量的地址就涉及到了指针。,就本质而言,指针就是地址。,以定义在外部存储器变量为对象,具体说明指针的概念,例,间接访问,使用于访问数组、字符串(有序存储的“一串数据”,“一片存储区”)。,4,谢谢欣赏,2019-7-13,指针变量,指针变量的定义,指

3、针变量是用来存储地址值的变量。首先,指针变量本身也是变量,其次,指针变量的值只能是地址(16bit,占2两个字节)。,类型名*指针变量名;,例如:,指针(变量)将来只能指向整型变量,即:指针变量的类型,应和它指向的对象类型匹配一致,“*”是指针(变量)的标示符,指针(变量)是k,而不是*k!,一般不赋初值,无实际意义,5,谢谢欣赏,2019-7-13,指针变量的指向指针变量赋值,就是获取指向“某变量地址”的过程。,例如:,0 x78122是1E04,指针变量k,指向整型变量i,k的值就是i的地址,“&”“取地址”运算符,“*k”是变量i。“k”是变量i的地址,不必关心k的地址,6,谢谢欣赏,2

4、019-7-13,第7章 AD转换器的控制,7.1.1 AD转换器,7.1 概述,AD转换器即ADC(Analog to Digital Converter),是能将模拟量转换为数字量的器件。,7.1.2 AD转换分辨率(分解度),常用转换结果的二进制数的位数来表示。位数越大,分辨率越高。,例:模拟量的变化范围:0V-5V,AD转换器分辨率是8位。,5V/28=5V/2560.02V=20mV,经8位AD转换器,能区别的最小输入电压(也就是数字量1对应的电压)为:,经12位AD转换器,能区别的最小输入电压为:,5V/212=5V/40690.0012V=1.2mV,7,谢谢欣赏,2019-7-

5、13,7.2.3 AD转换时间,即完成一次AD转换所用的时间,输出的数字量为:,NA/D转换器的位数,参考电压,模拟输入电压,8,谢谢欣赏,2019-7-13,7.2 ADC0809,7.2.1 ADC0809介绍,8路模拟通道输入,8位,8路通道,转换时间100s,参考电压输入,8位数字量输出,模拟通道地址输入,转换结束输出端,转换启动信号输入,时钟输入端,地址锁存输入,输出允许输入,9,谢谢欣赏,2019-7-13,ADC0809时序,完成一次A/D,最多需要10个时钟(8位逐次渐进A/D)不必关心!,先准备好地址,再锁存地址,启动转换之前及转换期间,模拟量必须稳定,EOC=1,表示转换结

6、束,ENABLE=0,数据线为“高阻”,ENABLE=0,数据线为“高阻”,10,谢谢欣赏,2019-7-13,功能要求:用ADC0809实现一路A/D数模转换,并用LCD显示。,7.2.2 ADC0809应用实例1(查询),1、硬件连接(电路),从时序图可以看到,ALE上升沿锁存地址,START下降沿启动A/D必须先锁存地址,再启动A/D,因而这两个信号可以“合并”。,11,谢谢欣赏,2019-7-13,显示电路未画出,要求较高时要用专用基准源,价格较高,上拉电阻,12,谢谢欣赏,2019-7-13,2.软件,I/O口定义,13,谢谢欣赏,2019-7-13,编程:就是实现时序图,14,谢谢

7、欣赏,2019-7-13,功能要求:ADC0809实现八路A/D数模转换(数据采集)。,7.2.3 ADC0809应用实例1(总线、中断、指针),将ADC0809视为内存单元利用数据总线/地址总线交换信息(控制/读取数据),电路,15,谢谢欣赏,2019-7-13,16,谢谢欣赏,2019-7-13,时序是由单片机执行读外部数据存储器时“自动”完成,AT89C51读外部数据存储器的时序,高阻,P0口先输出存储器的低8位地址A7.0,P2口输出存储器的高8位地址A15.8,P0口从存储器读数据,将A7.0锁存在74HC573中,17,谢谢欣赏,2019-7-13,AT89C51写外部数据存储器的

8、时序,高阻,P0口先输出存储器的低8位地址,P2口输出存储器的高8位地址,写:通知外存,存储数据,将A7.0锁存在74HC573中,锁存地址后P0口输出数据,时序是由单片机执行写外部数据存储器时“自动”完成,18,谢谢欣赏,2019-7-13,时钟电路未画,低8位地址锁存,固定接法!,或非门,19,谢谢欣赏,2019-7-13,地址:0 x7ff8-0 x7fffP2:01111111P0:11111000-11111111,不使用的“位”统统置1,一是,可以减小功耗;二是不影响这些位做输入,20,谢谢欣赏,2019-7-13,写操作,只有P2.7(A15)和/WR(写)信号起作用?,目的(1

9、)将已锁存在74HC573的低三位地址锁存(上升沿)到ADC0809;(2)启动(下降沿)ADC0809,21,谢谢欣赏,2019-7-13,读操作,只有P2.7(A15)和/RD(写)信号起作用,只是为ADC0809的/OE提供一个正脉冲(高电平期间将结果送到数据线上,22,谢谢欣赏,2019-7-13,程序,23,谢谢欣赏,2019-7-13,24,谢谢欣赏,2019-7-13,25,谢谢欣赏,2019-7-13,不必设置优先级。50mS定时器0中断一次,中断20次即一秒,启动一次A/D,转换时间约0.02mS,转换结束产生外部中断0,等待(1秒)再次启动,因而不会同时产生中断,26,谢谢欣赏,2019-7-13,27,谢谢欣赏,2019-7-13,主函数初始化后,”就没事做啦”(待机),28,谢谢欣赏,2019-7-13,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号