《单片机应用技术c语言版目7并行与串行扩展实践资料》由会员分享,可在线阅读,更多相关《单片机应用技术c语言版目7并行与串行扩展实践资料(216页珍藏版)》请在金锄头文库上搜索。
1、项目7 并行与串行扩展实践,任务14 制作交通指示灯,【相关知识】 1单片机的三总线 单片机的三总线形成电路如图7-1所示。,图7-1 单片机的三总线电路, 数据总线:由P0口的8根线构成,P0.0P0.7分别对应数据总线中的D0D7。 控制总线:由 、 、 3根线构成。 地址总线:共16根,分别为A0A15。, 74LS373的控制逻辑如表7-2所示。,2C51对外部端口的访问方法, 根据硬件电路找出端口的地址。 在程序的开头处将存储器访问宏的宏定义头文件absacc.h包含到程序文件中。, 在程序的开头处用下列宏定义语句定义外部端口。 在程序中,把“端口名”视作无符号字符型变量的变量名。,
2、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线上。,(3)8255A的控制命令, 工作方式命令字。 工作方式命令字的格式及各位的含义如图7-7所示。, PC口置位/复位命令字。, PC口
3、置位/复位命令被写入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-11 T0中
4、断服务函数的流程图,(2)程序代码, 任务14的程序代码如下:,任务15 制作数字电压表,【相关知识】 1A/D转换器的基本知识 A/D转换器(简称ADC)的功能是将连续的模拟信号转换成数字信号。, 分辨率:表示输出数字量增减1所需要的输入模拟量的变化值,它反映了ADC能够分辨最小的量化信号的能力。 转换时间:指从启动ADC进行AD转换开始到转换结束并得到稳定的数字量输出为止所需要的时间。,2SPI接口芯片TLC1549的应用特性, 转换结果以串行方式输出,输出值为:,(1)TLC1549的引脚功能及其与单片机的接口电路, 其中DIP封装形式的引脚分布如图7-13所示。 各引脚的功能如表7-6
5、所示,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,则标度转换
6、的作用是,将A/D转换值变换成对应的Vx值。,【任务实施】,1搭建硬件电路 任务15的硬件电路如图7-25所示。,2编写软件程序,(1)流程图 根据硬件电路,测量电压Vx与A/D转换值adval之间的关系为 Vx=adval 5 000/1 023(mV), 任务15的流程图如图7-26所示。,(2)程序代码, 任务15的程序代码如下:,任务16 制作波形发生器,【相关知识】 1D/A转换器的基础知识 在选择DAC芯片时,常涉及到以下3个技术参数。,(1)分辨率 (2)转换时间 (3)满刻度误差,2带有SPI接口的D/A转换器MAX515的使用特性,(1)MAX515的引脚功能及其与单片机的接
7、口电路 各引脚的功能如表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时间不相等,
8、可以按以下方法对图7-42所示的流程图作进一步的改造,其流程图如 图7-43所示。,图7-43 循环周期为T0时间的三角发生器流程图, 图7-43与图7-41相比,两者功能一样,但按图7-43所示的流程图编写的程序可以用定时中断实现软件延时,一方面可以减轻CPU的负担,另一方面可以方便使用CPU睡眠技术提高程序的抗干扰性。,(2)程序代码, 任务16的程序代码如下:,任务17 保存设定数据,【相关知识】 1I2C总线 (1)I2C接口芯片与单片机的接口电路 带有I2C接口的单片机扩展I2C接口芯片。 带有I2C接口的单片机扩展I2C接口芯片的电路如图7-52所示。, 不带I2C接口的单片机扩展
9、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)上的信号必须保持稳定,只
10、有SCK为低电平时才允许SDA上的数据发生变化。, 数位传输顺序:, 数据传输是以字节为单位进行传输的,每个字节均为8位,且高位在前,低位在后,每传输1个字节,数据接收器必须发送1个应答位或者非应答位。, 单片机向I2C接口芯片写一个字节的流程图如图7-59所示。,图7-59 字节写流程图, 字节写程序如下:, 单片机从I2C接口芯片读一个字节的流程图如图7-60所示。,图7-60 字节读流程图, 字节读程序如下:, I2C总线以起始信号为启动信号,接着传输的是寻址字节和数据字节。,(4)单片机读写I2C接口芯片的操作格式, 图7-61图7-63是这3种操作的图解方式图。,2AT24C02的应
11、用特性,(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个字节存储单元在芯片内部的地址为0x000xFF。 我们把这些内部存储单元的地址叫做子地址。,(4)AT24C02的工作时序, AT24C02的工作时序如图7-66所示,动态参数如表7-18所示。,(5)A
12、T24C02的写操作, 字节写的操作格式如图7-67所示。, 页写也叫多字节写,页写的操作格式如图7-68所示。, 页写流程图如图7-69所示。,图7-69 多字节写流程图, 写n个字节数据的程序如下:,(6)AT24C02的读操作, 立即地址读的操作格式如图7-70所示。,图7-70 立即地址读的操作格式, 随机地址读实现的是按用户指定的地址读取其内容的操作,随机地址读的操作格式如图7-71所示。, 在实际应用中一般是用随机地址读操作启动顺序地址读,这种顺序地址读的操作格式如图7-72所示。, 多字节读的流程图如图7-73所示。,图7-73 多字节读流程图,【任务实施】,1搭建硬件电路 任务
13、17的硬件电路如图7-74所示。,2编写软件程序,(1)流程图 任务17的流程图如图7-75所示。,(2)程序代码, 任务17的程序代码如下:,任务18 制用数字温度计,【相关知识】 1DS18B20的引脚功能 DS18B20具有3引脚的T0-92和8引脚的SOP8两种封装形式,各封装形式的引脚分布如图7-76所示,各引脚的功能如表7-19所示。,图7-76 DS18B20引脚分布图,2单片机与DS18B20的接口电路, 单片机与DS18B20的接口电路如图7-77所示。,3DS18B20的内部结构, 高速缓存RAM与E2PROM存储器的结构如图7-78所示。, 64位激光ROM 高速缓存RA
14、M 字节0、字节1:存放当前16位的温度转换结果,字节1为高字节,字节0为低字节。, 其数据为16位补码形式,格式如下:, 字节2、字节3:依次为高温触发器TH和低温触发器TL,用来临时存放用户设定的报警温度的上限值和下限值。, 字节4:配置寄存器,用来临时存放用户设定的配置数据。 配置寄存器的结构如下:, 其中,R1、R0为温度转换精度的选择控制位,它们的取值组合与分辨率的关系如表7-20所示。, E2PROM存储器,4DS18B20的操作时序,(1)初始化时序 初始化的时序图如图7-79所示。,初始化的时序参数如表7-21所示。, 初始化流程图如图7-80所示。, 初始化程序如下:,(2)
15、读数操作时序, 单片机从DS18B20中读取一位数据的时序如图7-81所示。, 读一位数据的时序参数如表7-22所示。, 根据读数时序,单片机从DS18B20中读取一个字节数据的流程图如图7-82所示。,图7-82 字节读流程图, 字节读程序如下:,(3)写数操作时序, 单片机向DS18B20写一位数据的时序如图7-83所示。, 写一位数据的时序参数如表7-23所示。, 根据写数时序,单片机向DS18B20写一个字节数据的流程图如图7-84所示。,图7-84 字节写流程图, 设单片机的fosc=12MHz,字节写程序如下:,5DS18B20的访问命令, 各ROM命令的代码及其说明如表7-24所示,各存储控制命令的代码及其用法如表7-25所示。,6DS18B20的访问方法, 初始化DS18B20。 发送表7-24中的某个ROM命令。 发送表7-25中的某个存储命令。 根据第3步所发送存储命令的类型,从总线上读取数据或者向总线写数据。, 单片机访问DS18B20的流程如图7-85所示。,【任务实施】,1搭建硬件电路