课件:串行通信AVR单片机应用技术项目化教程.ppt

课件:串行通信AVR单片机应用技术项目化教程.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.3.1 单片机模拟串行口输出 6.3 单片机I/O口模拟串行通信 1. 移位寄存器74HC595 Q0-Q7:并行数据输出,Q7S用于多片74HC595芯片的级联, OE#:为芯片使能端,OE#必须为低电平有效。 MR#:为芯片复位引脚。 DS、SHCP、STCP三个引脚为74HC595的串行数据输入引脚,他们之间的时序关系如图6-13所示。 DS为串行数据输入引脚,SHCP为同步移位时钟,DS在每个SHCP的上升沿期间将数据移入芯片。当8个数据移位完成后数据在STCP的上升沿作用下同步输出到Q0-Q7输到引脚 6.3.1 单片机模拟串行口输出 6.3 单片机I/O口模拟串行通信 2. 使用单片机I/O口驱动74HC595 单片机可以使用3个I/O口分别模拟DS、SHCP、STCP的工作时序即可将一个字节数据通过串口输出到达74HC595芯片内部,并由Q0-Q7引脚输出。在CPU内部,数据是并行的,将并行数据变成串行数据并送DS端使用移位运算符实现。将欲通过串行口发送的数据存放在变量x中,将x与0x80进行按位与运算,若结果为0x80则发送数据‘1’,从DS输出高电平,并控制SHCP端产生一个上升沿移位时钟将该位数据移位到595,将x中数据向左移动1位并重复刚才的过程,直到8位数据发送完毕为止。这种方法是先发送数据的最高位(MSB),最后才发送数据的最低位(LSB)。此时的数据仅保存在移位寄存器中,并未输到数据引脚Q0-Q7端,从STCP端产生一个上升沿脉冲将数据从移位寄存器输到Q0-Q7引脚上即可。 6.3.1 单片机模拟串行口输出 6.3 单片机I/O口模拟串行通信 2. 使用单片机I/O口驱动74HC595 【例6-2】使用1片74HC595扩展8个I/O输出口,驱动8个发光二极管。 解:设PA0接SHCP端,PA1接DS端,PA2接STCP端,故PA0、PA1、PA2设置为输出口,在proteus中绘制原理图如图6-14 6.3.1 单片机模拟串行口输出 6.3 单片机I/O口模拟串行通信 2. 使用单片机I/O口驱动74HC595 编写程序如下 6.3.1 单片机模拟串行口输出 6.3 单片机I/O口模拟串行通信 6.3.2 单片机模拟串行口输入 6.3 单片机I/O口模拟串行通信 使用串行口读入外部器件或芯片数据可以节约很多I/O引脚。在理解使用单片机模拟串行口输出的基础上,对串行口得输入模拟就变得相对容易。 1. TLC2551串行A/D采样芯片 TLC2551是一片单芯片12bit转换精度A/D采样芯片,内部集成了采样保持器,如图6-15所示。转换的数据结果通过3条串行总线输出给主机。TLC2551只有8个引脚,其中AIN为数模信号输入引脚,VDD为单5V供电电源端,VREF为外接参考电压,FS为与帧同步控制引脚,多芯片级联时使用,单芯片时该引脚接高电平。 6.3.2 单片机模拟串行口输入 6.3 单片机I/O口模拟串行通信 1. TLC2551串行A/D采样芯片 SCLK、CS#、SDO为三总线串行通信接口,SCLK为移位时钟,CS#为芯片片选端,SDO为数据输出端,三者之间时序见图6-16。 6.3.2 单片机模拟串行口输入 6.3 单片机I/O口模拟串行通信 1. TLC2551串行A/D采样芯片 转换结束的数字量结果出现SDO端,高位在前,低位在后,对应SCLK的下降沿期间,即每一个SCLK脉冲出现一个数据位,12个脉冲后此次转换结果全国输出完毕。对TLC25551进行操作只能在CS#为低电平期间进行。 6.3.2 单片机模拟串行口输入 6.3 单片机I/O口模拟串行通信 2. 使用单片机I/O读取TLC2551转换数据 图6-16所示的时序图可知,在CS#为低电平期间读取TLC2551的结果,使用单片机的I/O模拟时序,假设读取的数据存放在整型变量x中,在读取SDO数据前,先从SCLK产生一个下降沿信号,使数据位出现在SDO线上。将SDO引脚读入单片机,若得其为高电平则将变量x的最低端并上数值1,否则在最低位与上数字0,并将变量x向左移动1位,完成一位数据的读取,重复12次后TLC2551的转换结果便被读入变量x中。 6.3.2 单片机模拟串行口输入 6.3 单片机I/O口模拟串行通信 2. 使用单片机I/O读取TLC2551转换数据 【例6-3】在Atmega16单片机系统中扩展一片12bit的串口A/D转换芯片TLC2551,将其结果读入并保存在变量x中。 解:PA0、PA1、PA2三个引脚与TLC2551的CE#、SDO、SCLK三个引脚相连,PA1设为输入口,其他设为输出口,编程如下 6.4.1 双机串行通信 6.4 项目设计 1. 项目设计要求

文档评论(0)

iuad + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档