25124-目7并行与串行扩展实践

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

项目7并行与串行扩展实践任务14制作交通指示灯任务15制作数字电压表任务16制作波形发生器任务17保存设定数据任务18制用数字温度计任务14制作交通指示灯【相关知识】1.单片机的三总线·单片机的三总线形成电路如图7-1所示。图7-1单片机的三总线电路·数据总线:由P0口的8根线构成,P0.0~P0.7分别对应数据总线中的D0~D7。·控制总线:由、、3根线构成。·地址总线:共16根,分别为A0~A15。RDWRPSEN·74LS373的控制逻辑如表7-2所示。2.C51对外部端口的访问方法①根据硬件电路找出端口的地址。②在程序的开头处将存储器访问宏的宏定义头文件absacc.h包含到程序文件中。③在程序的开头处用下列宏定义语句定义外部端口。④在程序中,把“端口名”视作无符号字符型变量的变量名。3.可编程并行接口芯片8255A的使用方法(1)引脚功能·8255A的封装形式为DIP40,其引脚分布如图7-3所示,8255A的内部结构示意图如图7-4所示。①数据线引脚。②I/O线引脚。③控制线引脚。④地址线引脚。⑤电源线引脚。(2)8255A与单片机的接口电路①接口电路。·8255A与单片机的接口电路如图7-5所示。·在图7-6所示电路中,8255A的引脚接在地址总线的A15线上,A1引脚接在地址总线的A9线上,A0引脚接在地址总线的A8线上。CS(3)8255A的控制命令①工作方式命令字。·工作方式命令字的格式及各位的含义如图7-7所示。②PC口置位/复位命令字。·PC口置位/复位命令被写入8255A的命令口,命令字的格式及其各位的含义如图7-8所示。1、清0或者取反也可以用以下方法实现·将PC口的输出状态读出,经按位操作运算后,再将运算结果写入PC口。(4)8255A的工作方式①方式0。②方式1。③方式2。【任务实施】1.搭建硬件电路·用8255A的PA口作交通灯的控制口,任务14的硬件电路如图7-9所示。2.编写软件程序(1)流程图·根据硬件电路,8255A在各时间段输出表7-5所示的控制数据时,可实现任务14中的交通灯控制。·系统程序中,main函数的流程图如图7-10所示,T0定时中断服务函数的流程图如图7-11所示。图7-11T0中断服务函数的流程图(2)程序代码·任务14的程序代码如下:任务15制作数字电压表【相关知识】1.A/D转换器的基本知识·A/D转换器(简称ADC)的功能是将连续的模拟信号转换成数字信号。·分辨率:表示输出数字量增减1所需要的输入模拟量的变化值,它反映了ADC能够分辨最小的量化信号的能力。·转换时间:指从启动ADC进行AD转换开始到转换结束并得到稳定的数字量输出为止所需要的时间。2.SPI接口芯片TLC1549的应用特性·转换结果以串行方式输出,输出值为:AINoutREF1023VDV(1)TLC1549的引脚功能及其与单片机的接口电路·其中DIP封装形式的引脚分布如图7-13所示。·各引脚的功能如表7-6所示,TLC1549与单片机的接口电路如图7-14所示。(2)TLC1549的工作方式·TLC1549具有6种工作方式,其特点如表7-7所示。(3)TLC1549的操作时序·TLC1549的6种工作方式的操作时序如图7-16~图7-21所示。(4)TLC1549的访问程序·从TLC1549中按方式1读取数据的流程图如图7-22所示。图7-22方式1读转换结果流程图3.滑动平均值滤波·滑动平均值滤波程序的流程图如图7-23所示。4.标度转换·标度转换的作用是,将ADC的输出值转换成被测物理量的实际值,以便于后续程序的处理。·例如采用图7-24所示电路测量输入电压Vx,则标度转换的作用是,将A/D转换值变换成对应的Vx值。【任务实施】1.搭建硬件电路·任务15的硬件电路如图7-25所示。2.编写软件程序(1)流程图·根据硬件电路,测量电压Vx与A/D转换值adval之间的关系为Vx=adval×5000/1023(mV)·任务15的流程图如图7-26所示。(2)程序代码·任务15的程序代码如下:任务16制作波形发生器【相关知识】1.D/A转换器的基础知识·在选择DAC芯片时,常涉及到以下3个技术参数。(1)分辨率(2)转换时间(3)满刻度误差2.带有SPI接口的D/A转换器MAX515的使用特性(1)MAX515的引脚功能及其与单片机的接口电路·各引脚的功能如表7-11所示,MAX515与单片机的接口电路如图7-35所示。(2)应用特性·MAX515的内部结构如图7-36所示、工作时序如图7-37所示。·图7-37中各参数的含义如表7-12所示。【任务实施】1.搭建硬件电路2.编写软件程序(1)流程图·等腰三角波的波形图如图7-40所示。·三角波发生器的流程图如图7-41所示。图7-41三角波发生器的流程图·对图7-41所示流程图进行改进方法是,引入一个标志位updown,用updown标识程序的状态。·改进后的流程图如图7-42所示。图7-42三角波发生器的改进后流程图·如果T1时间与T2时间不相等,可以按以下方法对图7-42所示的流程图作进一步的改造,其流程图如图7-43所示。图7-43循环周期为T0时间的三角发生器流程图·图7-43与图7-41相比,两者功能一样,但按图7-43所示的流程图编写的程序可以用定时中断实现软件延时,一方面可以减轻CPU的负担,另一方面可以方便使用CPU睡眠技术提高程序的抗干扰性。(2)程序代码·任务16的程序代码如下:任务17保存设定数据【相关知识】1.I2C总线(1)I2C接口芯片与单片机的接口电路①带有I2C接口的单片机扩展I2C接口芯片。·带有I2C接口的单片机扩展I2C接口芯片的电路如图7-52所示。②不带I2C接口的单片机扩展I2C接口芯片。·不带I2C接口的单片机扩展I2C接口芯片的电路如图7-53所示。(2)I2C接口芯片的寻址·常用的I2C接口芯片的器件地址如表7-17所示。(3)I2C总线上的信号定义及其模拟编程·一次完整的数据传输格式如图7-54所示。①总线空闲状态:SDA、SCL均为高电平。②启动信号:启动信号的时序图如图7-55所示。③停止信号·停止信号的时序图如图7-56所示。④应答信号·应答信号的时序图如图7-57所示。⑤非应答信号·非应答信号的时序图如图7-58所示。⑥数据变换规定·数据传输期间,时钟线为高电平(SCK=1)时,数据线(SDA)上的信号必须保持稳定,只有SCK为低电平时才允许SDA上的数据发生变化。⑦数位传输顺序:·数据传输是以字节为单位进行传输的,每个字节均为8位,且高位在前,低位在后,每传输1个字节,数据接收器必须发送1个应答位或者非应答位。·单片机向I2C接口芯片写一个字节的流程图如图7-59所示。图7-59字节写流程图·字节写程序如下:·单片机从I2C接口芯片读一个字节的流程图如图7-60所示。图7-60字节读流程图·字节读程序如下:⑧I2C总线以起始信号为启动信号,接着传输的是寻址字节和数据字节。(4)单片机读写I2C接口芯片的操作格式·图7-61~图7-63是这3种操作的图解方式图。2.AT24C02的应用特性(1)AT24C02的引脚功能·其中TSSOP8、SOIC8、DIP8封装形式的AT24C02的引脚分布如图7-64所示。(2)单片机与AT24C02的接口电路·单片机的外部最多可以扩展8片AT24C02,用P1.0、P1.1充当I2C总线扩展2片AT24C02的电路如图7-65所示。(3)AT24C02的内部存储器·AT24C02片内集成有256字节的EEPROM,这256个字节存储单元在芯片内部的地址为0x00~0xFF。·我们把这些内部存储单元的地址叫做子地址。(4)AT24C02的工作时序·AT24C02的工作时序如图7-66所示,动态参数如表7-18所示。(5)AT24C02的写操作·字节写的操作格式如图7-67所示。·页写也叫多字节写,页写的操作格式如图7-68所示。·页写流程图如图7-69所示。图7-69多字节写流程图·写n个字节数据的程序如下:(6)AT24C02的读操作·立即地址读的操作格式如图7-70所示。图7-70立即地址读的操作格式·随机地址读实现的是按用户指定的地址读取其内容的操作,随机地址读的操作格式如图7-71所示。·在实际应用中一般是用随机地址读操作启动顺序地址读,这种顺序地址读的操作格式如图7-72所示。·多字节读的流程图如图7-73所示。图7-73多字节读流程图【任务实施】1.搭建硬件电路·任务17的硬件电路如图7-74所示。2.编写软件程序(1)流程图·任务17的流程图如图7-75所示。(2)程序代码·任务17的程序代码如下:任务18制用数字温度计【相关知识】1.DS18B20的引脚功能·DS18B20具有3引脚的T0-92和8引脚的SOP8两种封装形式,各封装形式的引脚分布如图7-76所示,各引脚的功能如表7-19所示。图7-76DS18B20引脚分布图2.单片机与DS18B20的接口电路·单片机与DS18B20的接口电路如图7-77所示。3.DS18B20的内部结构·高速缓存RAM与E2PROM存储器的结构如图7-78所示。①64位激光ROM②高速缓存RAM·字节0、字节1:存放当前16位的温度转换结果,字节1为高字节,字节0为低字节。·其数据为16位补码形式,格式如下:·字节2、字节3:依次为高温触发器TH和低温触发器TL,用来临时存放用户设定的报警温度的上限值和下限值。·字节4:配置寄存器,用来临时存放用户设定的配置数据。·配置寄存器的结构如下:·其中,R1、R0为温度转换精度的选择控制位,它们的取值组合与分辨率的关系如表7-20所示。③E2PROM存储器4.DS18B20的操作时序(1)初始化时序·初始化的时序图如图7-79所示。初始化的时序参数如表7-21所示。·初始化流程图如图7-80所示。·初始化程序如下:(2)读数操作时序·单片机从DS18B20中读取一位数据的时序如图7-81所示。·读一位数据的时序参数如表7-22所示。·根据读数时序,单片机从DS18B20中读取一个字节数据的流程图如图7-82所示。图7-82字节读流程图·字节读程序如下:(3)写数操作时序·单片机向DS18B20写一位数据的时序如图7-83所示。·写一位数据的时序参数如表7-23所示。·根据写数时序,单片机向DS18B20写一个字节数据的流程图如图7-84所示。图7-84字节写流程图·设单片机的fosc=12MHz,字节写程序如下:5.DS18B20的访问命令·各ROM命令的代码及其说明如表7-24所示,各存储控制命令的代码及其用法如表7-25所示。6.DS18B20的访问方法①初始化DS18B20。②发送表7-24中的某个ROM命令。③发送表7-25中的某个存储命令。④根据第3步所发送存储命令的类型,从总线上读取数据或者向总线写数据。·单片机访问DS18B20的流程如图7-85所示。【任务实施】1.搭建硬件电路·任务18的硬件电路如图7-86所示。2.编写软件程序(1)流程图·系统程序的流程图如图7-87所示。图7-87任务18流程图(2)程序代码·任务18的程序代码如下:(3)代码说明·第40行代码的功能是,从16位的温度转换值(D15~D0)中截取8位带符号的整数温度值(D11~D4)。·第41行代码的功能是,熄灭符号位显示,即预设温度为正值。·第42行代码的功能是,判断温度值是否为负。·第44行代码的功能是,对templ求绝对值后再赋给templ。

1 / 216
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功