《06.项目六模拟量输入输出设计与实现.ppt》由会员分享,可在线阅读,更多相关《06.项目六模拟量输入输出设计与实现.ppt(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、项目六项目六模拟量输入输出设计与实现模拟量输入输出设计与实现单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现教学目的教学目的u掌握模掌握模/数、数数、数/模转换芯片与单片机的连接模转换芯片与单片机的连接方法及典型应用。方法及典型应用。u掌握用查询方式、中断方式完成模掌握用查询方式、中断方式完成模/数、数数、数/模转换程序的编写方法。模转换程序的编写方法。单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输
2、入输出设计与实现模模/数、数数、数/模转换模转换u模拟量模拟量模拟量模拟量I/OI/O接口的作用接口的作用接口的作用接口的作用n n实际工业生产环境实际工业生产环境实际工业生产环境实际工业生产环境连续变化的连续变化的连续变化的连续变化的模拟量模拟量模拟量模拟量 例如:电压、电流、压力、温度、位移、流量例如:电压、电流、压力、温度、位移、流量例如:电压、电流、压力、温度、位移、流量例如:电压、电流、压力、温度、位移、流量 n n计算机内部计算机内部计算机内部计算机内部离散的离散的离散的离散的数字量数字量数字量数字量二进制数、十进制数二进制数、十进制数二进制数、十进制数二进制数、十进制数n n工业
3、生产过程的闭环控制工业生产过程的闭环控制工业生产过程的闭环控制工业生产过程的闭环控制模拟量模拟量D/A传感器传感器执行元件执行元件A/D数字量数字量数字量数字量模拟量模拟量模拟量输入模拟量输入(数据采集数据采集)模拟量输出模拟量输出(过程控制过程控制)计算机计算机单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现模拟量模拟量I/O通道的组成通道的组成模拟接口电路的任务模拟接口电路的任务模拟电路的任务模拟电路的任务0010110110101100工工业业生生产产过过程程传传感感器器放大放大滤波
4、滤波多路转换多路转换&采样保持采样保持A/D转换转换放大放大驱动驱动D/A转换转换输出输出接口接口 计计算算机机执行执行机构机构输入输入接口接口物理量物理量变换变换信号信号处理处理信号信号变换变换I/O接口接口输入通道输入通道输出通道输出通道单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现工作模块工作模块15 模数转换模数转换LED显示显示 u模拟量由电位器模拟产生;模拟量由电位器模拟产生;模拟量由电位器模拟产生;模拟量由电位器模拟产生;u使用使用使用使用ADC0808/ADC0809AD
5、C0808/ADC0809ADC0808/ADC0809ADC0808/ADC0809模数转换器模数转换器模数转换器模数转换器,将电位器将电位器将电位器将电位器上的模拟量(模拟电压)转换为数字量;上的模拟量(模拟电压)转换为数字量;上的模拟量(模拟电压)转换为数字量;上的模拟量(模拟电压)转换为数字量;u把转换结果送到把转换结果送到把转换结果送到把转换结果送到8 8 8 8个个个个LEDLEDLEDLED进行显示(既二进制进行显示(既二进制进行显示(既二进制进行显示(既二进制显示)。显示)。显示)。显示)。单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学
6、系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现模数转换显示电路模数转换显示电路单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现ADC0809模数转换器模数转换器 uuADC0809ADC0809ADC0809ADC0809是是是是8 8 8 8通道通道通道通道8 8 8 8位的,以位的,以位的,以位的,以逐次逼近逐次逼近逐次逼近逐次逼近原理进行模原理进行模原理进行模原理进行模数转换数转换数转换数转换 的器件;的器件;的器件;的器件;uu内部有一个内部有一个内部有一个内部
7、有一个8 8 8 8通道模拟多路开关通道模拟多路开关通道模拟多路开关通道模拟多路开关,它可以根据地址码锁存,它可以根据地址码锁存,它可以根据地址码锁存,它可以根据地址码锁存 译码后的信号,译码后的信号,译码后的信号,译码后的信号,只选通只选通只选通只选通8 8 8 8路模拟输入信号中的一个进行路模拟输入信号中的一个进行路模拟输入信号中的一个进行路模拟输入信号中的一个进行A/DA/DA/DA/D 转换转换转换转换;uuA/DA/DA/DA/D转换后的数据转换后的数据转换后的数据转换后的数据由由由由 三态锁存器输出三态锁存器输出三态锁存器输出三态锁存器输出;uu片内没有时钟,片内没有时钟,片内没有
8、时钟,片内没有时钟,需需需需 外接时钟信号外接时钟信号外接时钟信号外接时钟信号。单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现ADC0809主要特性主要特性8 8路路8 8位位A AD D转换器,即分辨率转换器,即分辨率8 8位;位;具有转换起停控制端;具有转换起停控制端;转换时间为转换时间为100s100s;单个单个5V5V电源供电;电源供电;模拟输入电压范围模拟输入电压范围0 05V5V,不需零点和满,不需零点和满刻度校准;刻度校准;工作温度范围为工作温度范围为-40-408585摄
9、氏度;摄氏度;低功耗,约低功耗,约15mW15mW。单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现ADC0809外部特性一外部特性一uADC0809ADC0809ADC0809ADC0809芯片有芯片有芯片有芯片有28282828条引脚,采用双列直插式封装条引脚,采用双列直插式封装条引脚,采用双列直插式封装条引脚,采用双列直插式封装IN0IN0IN0IN0IN7IN7IN7IN7:8 8 8 8路模拟量输入端;路模拟量输入端;路模拟量输入端;路模拟量输入端;D0D0D0D0D8D8D8D
10、8:8 8 8 8位数字量输出端;位数字量输出端;位数字量输出端;位数字量输出端;ADDAADDAADDAADDA、ADDBADDBADDBADDB、ADDCADDCADDCADDC:3 3 3 3位地址输位地址输位地址输位地址输 入线,用于选通入线,用于选通入线,用于选通入线,用于选通8 8 8 8路模拟输入中路模拟输入中路模拟输入中路模拟输入中 的一路;的一路;的一路;的一路;CLKCLKCLKCLK:时钟脉冲输入端;:时钟脉冲输入端;:时钟脉冲输入端;:时钟脉冲输入端;REF(+)REF(+)REF(+)REF(+)、REF(-)REF(-)REF(-)REF(-):基准电压;:基准电压
11、;:基准电压;:基准电压;VccVccVccVcc:电源,单一:电源,单一:电源,单一:电源,单一5V5V5V5V;GNDGNDGNDGND:地;:地;:地;:地;单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现通道选择表通道选择表 地址码地址码CBA选择的通道选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与
12、实现模拟量输入输出设计与实现ADC0809外部特性二外部特性二ALEALEALEALE:地址锁存允许信号,输入,高电平有效。地址锁存允许信号,输入,高电平有效。地址锁存允许信号,输入,高电平有效。地址锁存允许信号,输入,高电平有效。STARTSTARTSTARTSTART:A A A AD D D D转换启动脉冲输入端,输入一个正脉转换启动脉冲输入端,输入一个正脉转换启动脉冲输入端,输入一个正脉转换启动脉冲输入端,输入一个正脉冲(至少冲(至少冲(至少冲(至少100ns100ns100ns100ns宽)使其启动(脉冲上升沿使宽)使其启动(脉冲上升沿使宽)使其启动(脉冲上升沿使宽)使其启动(脉冲上
13、升沿使0809080908090809复位,下降沿启动复位,下降沿启动复位,下降沿启动复位,下降沿启动A/DA/DA/DA/D转换)。转换)。转换)。转换)。EOCEOCEOCEOC:A A A AD D D D转换结束信号,输出,当转换结束信号,输出,当转换结束信号,输出,当转换结束信号,输出,当A A A AD D D D转换结束转换结束转换结束转换结束时,此端输出一个高电平(转换期间一直为低电时,此端输出一个高电平(转换期间一直为低电时,此端输出一个高电平(转换期间一直为低电时,此端输出一个高电平(转换期间一直为低电平)。平)。平)。平)。OEOEOEOE:数据输出允许信号,输入,高电平
14、有效。当:数据输出允许信号,输入,高电平有效。当:数据输出允许信号,输入,高电平有效。当:数据输出允许信号,输入,高电平有效。当A A A AD D D D转换结束时,此端输入一个高电平,才能打开转换结束时,此端输入一个高电平,才能打开转换结束时,此端输入一个高电平,才能打开转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。输出三态门,输出数字量。输出三态门,输出数字量。输出三态门,输出数字量。单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现ADC0809工作过程工作过程首先
15、输入首先输入首先输入首先输入3 3 3 3位地址,并使位地址,并使位地址,并使位地址,并使ALE=1ALE=1ALE=1ALE=1,将地址存入地址锁存器中;,将地址存入地址锁存器中;,将地址存入地址锁存器中;,将地址存入地址锁存器中;此地址经译码选通此地址经译码选通此地址经译码选通此地址经译码选通8 8 8 8路模拟输入之一到比较器;路模拟输入之一到比较器;路模拟输入之一到比较器;路模拟输入之一到比较器;STARTSTARTSTARTSTART上升沿将逐次逼近寄存器复位;上升沿将逐次逼近寄存器复位;上升沿将逐次逼近寄存器复位;上升沿将逐次逼近寄存器复位;下降沿启动下降沿启动下降沿启动下降沿启动
16、 A A A AD D D D转换,之后转换,之后转换,之后转换,之后EOCEOCEOCEOC输出信号变低,指示转换输出信号变低,指示转换输出信号变低,指示转换输出信号变低,指示转换正在进行;正在进行;正在进行;正在进行;直到直到直到直到A A A AD D D D转换完成,转换完成,转换完成,转换完成,EOCEOCEOCEOC变为高电平,指示变为高电平,指示变为高电平,指示变为高电平,指示A A A AD D D D转换结束,转换结束,转换结束,转换结束,结果数据已存入锁存器,这个信号可用作中断申请;结果数据已存入锁存器,这个信号可用作中断申请;结果数据已存入锁存器,这个信号可用作中断申请;
17、结果数据已存入锁存器,这个信号可用作中断申请;当当当当OEOEOEOE输入高电平输入高电平输入高电平输入高电平 时,输出三态门打开,转换结果的数字时,输出三态门打开,转换结果的数字时,输出三态门打开,转换结果的数字时,输出三态门打开,转换结果的数字量输出到数据总线上。量输出到数据总线上。量输出到数据总线上。量输出到数据总线上。单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现模数转换显示程序模数转换显示程序uu模数转换显示流程图模数转换显示流程图模数转换显示流程图模数转换显示流程图uu模数转
18、换显示程序模数转换显示程序模数转换显示程序模数转换显示程序开始开始初始化初始化启动启动A/DA/D转换转换A/DA/D转换转换完完 成成?数据输出数据输出延时延时结束结束单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现技能训练技能训练6-1 采用中断方式完成模数转换采用中断方式完成模数转换u设计要求设计要求n工作模块工作模块工作模块工作模块1515是采用查询方式完成模数转换是采用查询方式完成模数转换是采用查询方式完成模数转换是采用查询方式完成模数转换LEDLED显示的,如何采用中断方式实现
19、模数转显示的,如何采用中断方式实现模数转显示的,如何采用中断方式实现模数转显示的,如何采用中断方式实现模数转换换换换LEDLED显示。显示。显示。显示。n中断方式模数转换电路设计中断方式模数转换电路设计中断方式模数转换电路设计中断方式模数转换电路设计 n中断方式模数转换程序设计中断方式模数转换程序设计中断方式模数转换程序设计中断方式模数转换程序设计 单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现中断方式模数转换电路设计中断方式模数转换电路设计 n n把转换完成的状态信号(把转换完成的状态
20、信号(把转换完成的状态信号(把转换完成的状态信号(EOCEOC)作为中断请求信号,经过)作为中断请求信号,经过)作为中断请求信号,经过)作为中断请求信号,经过反相器后送到单片机的反相器后送到单片机的反相器后送到单片机的反相器后送到单片机的INT0INT0引脚,电路其它部分与工作引脚,电路其它部分与工作引脚,电路其它部分与工作引脚,电路其它部分与工作模块模块模块模块1515一样。一样。一样。一样。单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现工作模块工作模块16 数字电压表设计与实现数字电
21、压表设计与实现 n使用使用使用使用AT89S52AT89S52单片机,采用动态显示的方式,把单片机,采用动态显示的方式,把单片机,采用动态显示的方式,把单片机,采用动态显示的方式,把8 8通道模数转换器通道模数转换器通道模数转换器通道模数转换器ADC0808ADC0808采样的电压值的大小经采样的电压值的大小经采样的电压值的大小经采样的电压值的大小经单片机处理后由数码管显示出来,量程为单片机处理后由数码管显示出来,量程为单片机处理后由数码管显示出来,量程为单片机处理后由数码管显示出来,量程为0-5V0-5V,显示格式:显示格式:显示格式:显示格式:X.XXXX.XXX。单片机应用技术项目教程(
22、单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现数字电压表电路设计数字电压表电路设计 n由于需要显示多位,因此数码管采用了较节省由于需要显示多位,因此数码管采用了较节省由于需要显示多位,因此数码管采用了较节省由于需要显示多位,因此数码管采用了较节省I/OI/O口线的动态显示方式。口线的动态显示方式。口线的动态显示方式。口线的动态显示方式。单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现数字电压表程序设计数字电
23、压表程序设计 n数码管显示电压值实现分析数码管显示电压值实现分析数码管显示电压值实现分析数码管显示电压值实现分析n n模数转换采用的是模数转换采用的是模数转换采用的是模数转换采用的是8 8位的位的位的位的ADC0808ADC0808,因此其分辨力为,因此其分辨力为,因此其分辨力为,因此其分辨力为5*1/25*1/28 8 V V,即,即,即,即19.6mV19.6mV。为了得到各位待显示的数字的。为了得到各位待显示的数字的。为了得到各位待显示的数字的。为了得到各位待显示的数字的大小,采取了除法和取余相结合的方式:大小,采取了除法和取余相结合的方式:大小,采取了除法和取余相结合的方式:大小,采取
24、了除法和取余相结合的方式:n ndat3=tmp/10000;dat3=tmp/10000;/最高位最高位最高位最高位n ndat2=tmp/1000%10;dat2=tmp/1000%10;n ndat1=tmp/100%10;dat1=tmp/100%10;n ndat0=tmp/10%10;dat0=tmp/10%10;/最低位最低位最低位最低位 n数字电压表控制数字电压表控制数字电压表控制数字电压表控制C C语言程序语言程序语言程序语言程序 单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设
25、计与实现C语言结构体类型语言结构体类型 n结构体与前面介绍过的数组一样,是一种构造类结构体与前面介绍过的数组一样,是一种构造类结构体与前面介绍过的数组一样,是一种构造类结构体与前面介绍过的数组一样,是一种构造类型的数据,它是将若干个不同类型的数据变量有型的数据,它是将若干个不同类型的数据变量有型的数据,它是将若干个不同类型的数据变量有型的数据,它是将若干个不同类型的数据变量有序地组合在一起而形成的一种数据的集合体。序地组合在一起而形成的一种数据的集合体。序地组合在一起而形成的一种数据的集合体。序地组合在一起而形成的一种数据的集合体。n组成该集合体的各个数据变量称为结构成员。组成该集合体的各个数
26、据变量称为结构成员。组成该集合体的各个数据变量称为结构成员。组成该集合体的各个数据变量称为结构成员。n整个集合体使用一个单独的结构变量名。整个集合体使用一个单独的结构变量名。整个集合体使用一个单独的结构变量名。整个集合体使用一个单独的结构变量名。n一般来说结构中的各个变量之间是存在某些关系一般来说结构中的各个变量之间是存在某些关系一般来说结构中的各个变量之间是存在某些关系一般来说结构中的各个变量之间是存在某些关系的,如时间数据中的时、分、秒等。的,如时间数据中的时、分、秒等。的,如时间数据中的时、分、秒等。的,如时间数据中的时、分、秒等。单片机应用技术项目教程(单片机应用技术项目教程(C语言版
27、)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现结构体类型的定义结构体类型的定义 n定义一个结构体类型的一般形式为:定义一个结构体类型的一般形式为:定义一个结构体类型的一般形式为:定义一个结构体类型的一般形式为:structstruct 结构体名结构体名结构体名结构体名 成员项列表成员项列表成员项列表成员项列表;n n其中其中其中其中“structstruct”是关键字,作为定义结构体类型的标是关键字,作为定义结构体类型的标是关键字,作为定义结构体类型的标是关键字,作为定义结构体类型的标志;志;志;志;n n“结构体名结构体名结构体名结构体名”
28、由用户自行定义;由用户自行定义;由用户自行定义;由用户自行定义;n n“成员列表成员列表成员列表成员列表”为该结构体中的各个成员,由于结构体为该结构体中的各个成员,由于结构体为该结构体中的各个成员,由于结构体为该结构体中的各个成员,由于结构体可以由不同类型的数据组成,因此对结构体中各成员可以由不同类型的数据组成,因此对结构体中各成员可以由不同类型的数据组成,因此对结构体中各成员可以由不同类型的数据组成,因此对结构体中各成员都要进行数据类型的说明。都要进行数据类型的说明。都要进行数据类型的说明。都要进行数据类型的说明。单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系
29、计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现结构体类型变量的定义结构体类型变量的定义 n结构体定义好以后,就可以指明该结构体的具体结构体定义好以后,就可以指明该结构体的具体结构体定义好以后,就可以指明该结构体的具体结构体定义好以后,就可以指明该结构体的具体对象,即定义该种类型的变量,结构体类型变量对象,即定义该种类型的变量,结构体类型变量对象,即定义该种类型的变量,结构体类型变量对象,即定义该种类型的变量,结构体类型变量的定义主要有如下三种方式:的定义主要有如下三种方式:的定义主要有如下三种方式:的定义主要有如下三种方式:n n先定义结构体类型,再定义变量名先定
30、义结构体类型,再定义变量名先定义结构体类型,再定义变量名先定义结构体类型,再定义变量名 n n在定义结构体类型的同时定义结构体变量名在定义结构体类型的同时定义结构体变量名在定义结构体类型的同时定义结构体变量名在定义结构体类型的同时定义结构体变量名 n n直接定义结构体变量直接定义结构体变量直接定义结构体变量直接定义结构体变量 单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现先定义结构体类型,再定义变量名先定义结构体类型,再定义变量名n n定义一个表示时间的结构体类型。定义一个表示时间的结构
31、体类型。定义一个表示时间的结构体类型。定义一个表示时间的结构体类型。structstruct time time unsigned char hour;unsigned char hour;unsigned char minute;unsigned char minute;unsigned char second;unsigned char second;n n定义好一个结构体后,就可以用它来定义结构体变量。定义好一个结构体后,就可以用它来定义结构体变量。定义好一个结构体后,就可以用它来定义结构体变量。定义好一个结构体后,就可以用它来定义结构体变量。n n一般格式为:一般格式为:一般格式为:一
32、般格式为:structstruct 结构体名结构体名结构体名结构体名 结构体变量名结构体变量名结构体变量名结构体变量名1 1,结构体变量名,结构体变量名,结构体变量名,结构体变量名2 2,.结构体变量名结构体变量名结构体变量名结构体变量名n n;n n用结构体用结构体用结构体用结构体timetime来定义时间的结构体变量:来定义时间的结构体变量:来定义时间的结构体变量:来定义时间的结构体变量:structstruct time time1;time time1;n n结构体变量结构体变量结构体变量结构体变量time1time1具有具有具有具有structstruct time time类型的结
33、构,可以使用该结构体中类型的结构,可以使用该结构体中类型的结构,可以使用该结构体中类型的结构,可以使用该结构体中的数据。的数据。的数据。的数据。单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现定义结构体类型的同时定义结构体变量名定义结构体类型的同时定义结构体变量名n一般格式为:一般格式为:一般格式为:一般格式为:structstruct 结构体名结构体名结构体名结构体名 成员列表成员列表成员列表成员列表 结构体变量名结构体变量名结构体变量名结构体变量名1 1,结构体变量名,结构体变量名,结
34、构体变量名,结构体变量名2 2,.结构体变量名结构体变量名结构体变量名结构体变量名n n;单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现直接定义结构体变量直接定义结构体变量 n一般格式如下:一般格式如下:一般格式如下:一般格式如下:structstruct 成员列表成员列表成员列表成员列表 结构体变量名结构体变量名结构体变量名结构体变量名1 1,结构体变量名,结构体变量名,结构体变量名,结构体变量名2 2,.结构体变量名结构体变量名结构体变量名结构体变量名n;n;n第三种方法直接省略了结
35、构体名,一般不提倡。第三种方法直接省略了结构体名,一般不提倡。第三种方法直接省略了结构体名,一般不提倡。第三种方法直接省略了结构体名,一般不提倡。单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现结构体变量的引用结构体变量的引用 n定义了一个结构体变量之后,就可以对它进行引定义了一个结构体变量之后,就可以对它进行引定义了一个结构体变量之后,就可以对它进行引定义了一个结构体变量之后,就可以对它进行引用,既可以进行赋值、存取和运算。用,既可以进行赋值、存取和运算。用,既可以进行赋值、存取和运算。
36、用,既可以进行赋值、存取和运算。n结构体变量的引用是通过对其成员的引用来实现结构体变量的引用是通过对其成员的引用来实现结构体变量的引用是通过对其成员的引用来实现结构体变量的引用是通过对其成员的引用来实现的。的。的。的。n n引用结构体变量中的成员引用结构体变量中的成员引用结构体变量中的成员引用结构体变量中的成员格式为:格式为:格式为:格式为:结构体变量名结构体变量名结构体变量名结构体变量名.成员名成员名成员名成员名n n其中其中其中其中“.”.”是引用结构体成员的运算符。例如:是引用结构体成员的运算符。例如:是引用结构体成员的运算符。例如:是引用结构体成员的运算符。例如:n ntime1.ho
37、ur=20,time1.hour=20,表示给结构体变量表示给结构体变量表示给结构体变量表示给结构体变量time1time1中的成员中的成员中的成员中的成员hourhour赋值。赋值。赋值。赋值。n n对结构体变量中的各个成员可以像普通变量一样进行对结构体变量中的各个成员可以像普通变量一样进行对结构体变量中的各个成员可以像普通变量一样进行对结构体变量中的各个成员可以像普通变量一样进行赋值、存取和运算。赋值、存取和运算。赋值、存取和运算。赋值、存取和运算。单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输
38、出设计与实现结构体变量的初始化结构体变量的初始化 n对结构体变量可以在定义的时候进行初始化;对结构体变量可以在定义的时候进行初始化;对结构体变量可以在定义的时候进行初始化;对结构体变量可以在定义的时候进行初始化;n也可以在定义后对各个成员单独进行初始化。也可以在定义后对各个成员单独进行初始化。也可以在定义后对各个成员单独进行初始化。也可以在定义后对各个成员单独进行初始化。n例如:例如:例如:例如:n ntime1.hour=20;/time1.hour=20;/结构体成员赋初值结构体成员赋初值结构体成员赋初值结构体成员赋初值n ntime1.minute=35;time1.minute=35;
39、n ntime1.second=55;time1.second=55;单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现结构体变量需要注意的地方结构体变量需要注意的地方 n结构体类型与结构体变量是两个不同的概念。结构体类型与结构体变量是两个不同的概念。结构体类型与结构体变量是两个不同的概念。结构体类型与结构体变量是两个不同的概念。n n定义一个结构体类型时只给出了该结构体的组织形式,定义一个结构体类型时只给出了该结构体的组织形式,定义一个结构体类型时只给出了该结构体的组织形式,定义一个结构体
40、类型时只给出了该结构体的组织形式,并没有给出具体的组织成员,因此结构体不占用任何并没有给出具体的组织成员,因此结构体不占用任何并没有给出具体的组织成员,因此结构体不占用任何并没有给出具体的组织成员,因此结构体不占用任何存储空间。存储空间。存储空间。存储空间。n n结构体变量则是一个结构体中的具体对象,会给结构结构体变量则是一个结构体中的具体对象,会给结构结构体变量则是一个结构体中的具体对象,会给结构结构体变量则是一个结构体中的具体对象,会给结构体变量分配存储空间,因此可以对结构体变量名进行体变量分配存储空间,因此可以对结构体变量名进行体变量分配存储空间,因此可以对结构体变量名进行体变量分配存储
41、空间,因此可以对结构体变量名进行赋值、存取和运算。赋值、存取和运算。赋值、存取和运算。赋值、存取和运算。n一个结构体中的成员还可以是另外一个结构体类一个结构体中的成员还可以是另外一个结构体类一个结构体中的成员还可以是另外一个结构体类一个结构体中的成员还可以是另外一个结构体类型中的变量,既可以形成结构体的嵌套。型中的变量,既可以形成结构体的嵌套。型中的变量,既可以形成结构体的嵌套。型中的变量,既可以形成结构体的嵌套。单片机应用技术项目教程(单片机应用技术项目教程(C语言版)语言版)计算机科学系计算机科学系 项目六项目六 模拟量输入输出设计与实现模拟量输入输出设计与实现结构体数组结构体数组 n一个
42、结构体变量中可以存放一组数据(如:字符一个结构体变量中可以存放一组数据(如:字符一个结构体变量中可以存放一组数据(如:字符一个结构体变量中可以存放一组数据(如:字符显示数据结构有显示内容、段码数据等数据)。显示数据结构有显示内容、段码数据等数据)。显示数据结构有显示内容、段码数据等数据)。显示数据结构有显示内容、段码数据等数据)。如果显示为如果显示为如果显示为如果显示为0 09 9,就要有,就要有,就要有,就要有0 09 9的段码数据,显然的段码数据,显然的段码数据,显然的段码数据,显然应该用数组,这就是结构体数组。应该用数组,这就是结构体数组。应该用数组,这就是结构体数组。应该用数组,这就是结构体数组。n结构体数组与以前介绍过的数值型数组不同之处结构体数组与以前介绍过的数值型数组不同之处结构体数组与以前介绍过的数值型数组不同之处结构体数组与以前介绍过的数值型数组不同之处在于每个数组元素都是一个结构体类型的数据,在于每个数组元素都是一个结构体类型的数据,在于每个数组元素都是一个结构体类型的数据,在于每个数组元素都是一个结构体类型的数据,它们都分别包括各个成员项。它们都分别包括各个成员项。它们都分别包括各个成员项。它们都分别包括各个成员项。