- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
单片机最小系统及外扩展;;;§8-1串行扩展概述;1、一线制;2、二线制;三线制(不包括片选线)主要有两种:
⑴由Motorala公司推出的SPI(SerialperipheralInterface);
⑵由NS公司推出的Microwire/PLUS。;SPI的时钟线是SCK,数据线MOSI(主发从收)、MOSO(主收从发),主从器件的MOSI和MOSO是同名端相连。;4、80C51移位寄存器串行扩展;三、虚拟串行扩展概念;§8-289C51移位寄存器
串行扩展技术;1、80C51扩展并行输出口;2、80C51扩展并行输入口;80C51串行方式0归一化子程序:
⑴单字节串行输出子程序
⑵单字节串行输入子程序
⑶多字节串行输出子程序
⑷多字节串行输入子程序;80C51虚拟串行I/O口归一化子程序:
⑴单字节虚拟串行输出子程序
⑵单字节虚拟串行输入子程序
⑶多字节虚拟串行输出子程序
⑷多字节虚拟串行输入子程序;四、移位寄存器串行扩展应用;【例8-1】电路如图8-5所示,fosc=12MHz,要求发光二极管从左向右依次点亮,点亮时间为1秒,不断循环。设串行方式0归一化子程序已存在ROM中。;解:
PIOX1BITP1.0;定义PIOX1
WORK:MOVA,;置D7灯亮,其余暗
LOOP:CLRPIOX1;74LS164输出全0,灯全暗
LCALLUART0;调用单字节串行输出子程序
LCALLDLY1s;调用延时1秒子程序(略)
RRA;右移
SJMPLOOP;;1、扩展连接方式;具有I2C总线结构的器件,不论SRAM、E2PROM、ADC/DAC、I/O口或MCU,均可通过SDA、SCL连接(同名端相连)。;2、器件寻址方式;表8-1常用I2C器件地址SLA;3、接口电气结构
I2C总线端口输出为开漏结构,总线上必须外接上拉电阻Rp,其阻值通常可选5~10KΩ。
4、总线驱动能力
由于I2C总线器件均为CMOS器件,总线具有足够的电流驱动能力。
I2C总线的电容负载能力为400pF(通过驱动扩展可达4000pF)。
I2C总线传输速率为100Kb/s(改进后的规范为400Kb/s)。;5、I2C总线时序;80C51只能采用虚拟I2C总线方式,并且只能用于单主系统,虚拟I2C总线接口可用通用I/O口中任一端线充任,数据线定义为VSDA,时钟线定义为VSCL。;1、典型信号模拟子程序
对于虚拟I2C总线,有几个重复应用的典型信号,可根据I2C总线时???要求,编制这些典型信号子程序:
⑴启动信号STAT
⑵终止信号STOP
⑶发送应答位(A)MACK
⑷发送应答非位(A)NACK
⑸检查应答位CACK
2、数据传送通用子程序
数据传送通用子程序是应用典型信号模拟子程序(起始、终止、应答和检查应答)并按I2C总线数据传送时序要求编制的子程序。
⑴发送一字节数据子程序WR1B
⑵接收一字节数据子程序RD1B
⑶发送N个字节数据子程序WRNB
⑷接收N个字节数据子程序RDNB;按照I2C总线数据传送时序要求,一次完整的数据发送过程应包括起始(S)、发送寻址字节(SLAR/W)、应答、发送数据、应答、…、发送数据、应答、终止(P),其格式如下:;WRNB:MOVR3,NUMB;取发送数据字节数N(存在内RAMNUMB单元)
WRNB0:LCALLSTAT;启动I2C总线
MOVA,SLA;读发送寻址字节(存在内RAMSLA单元)
LCALLWR1B;发送寻址字节
LCALLCACK;检查应答位
JBF0,WRNB0;应答不正常,返回重发
MOVR1,#MTD;应答(A)正常,取发送数据存储区首址
WRDA:MOVA,@R1;读一个字节发送数据
LCALLWR1B;发送一个字节
LCALLCACK;检查应答位
JBF0,WRNB;应答不正常,返回重发
INCR1;应答(A)正常,指向发送数据下一字
原创力文档


文档评论(0)