




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第十章第十章 单片机的串行扩展技术单片机的串行扩展技术 本章主要内容本章主要内容第一节第一节 移位存放器的串行扩展技术移位存放器的串行扩展技术 80C5180C51串行口扩展串行口扩展 1 1串行口于任务方式串行口于任务方式0 0 2 2虚拟串行扩展虚拟串行扩展2 2串行接口总线:串行接口总线:I2CI2C总线总线 单单片片机机串串行行扩扩展展1. 1. 串行口任务于方式串行口任务于方式0 0 串行口的四种任务方式串行口的四种任务方式 方式方式0 0,同步传输,同步传输,8 8位数据传输,传输速率固定位数据传输,传输速率固定fOSC/12fOSC/12方式方式1 1,1010位数据传输,传输速
2、率由位数据传输,传输速率由T1T1产生,可变产生,可变方式方式2 2,1111位数据传输,可多机通讯,传输速率固定两种位数据传输,可多机通讯,传输速率固定两种方式方式3 3,1111位数据传输,可多机通讯,传输速率同方式位数据传输,可多机通讯,传输速率同方式1 1 1 1串行口扩展的任务原理串行口扩展的任务原理 一个引脚用作数据输入一个引脚用作数据输入/ /输出输出另一个引脚用作时钟输出同步另一个引脚用作时钟输出同步串行口任务于方式串行口任务于方式0 0时,时,RXDRXD用作数据输入用作数据输入/ /输出;输出;TXDTXD用作时钟输出用作时钟输出虚拟串行口采用虚拟串行口采用1 1个个I/O
3、I/O端口引脚作数据输入端口引脚作数据输入/ /输出;采用另一个输出;采用另一个I/OI/O端口引脚作时钟输出。端口引脚作时钟输出。 280C51串行扩展的时序串行扩展的时序 单单片片机机串串行行扩扩展展R XR XD DT XT XD DTITI发送发送R ER EN NRIRIT XT XD DR XR XD D接纳接纳3 3串行口方式串行口方式0 0的归一化子程序的归一化子程序归一化子程序即通用子程序归一化子程序即通用子程序1 1归一化输出子程序归一化输出子程序 设任务方式设任务方式0 0清清TITI取数据到存放器取数据到存放器A A设指向数据块的指针设指向数据块的指针输出数据输出数据数
4、据块输出终了?数据块输出终了?YESYES前往主程序前往主程序数据块指针加数据块指针加1 1数据输出终了?数据输出终了?YESYESNONONONOa. a. 流程图流程图 单单片片机机串串行行扩扩展展b. b. 归一化子程序归一化子程序 设用设用R0R0作数据块指针,用作数据块指针,用R2R2记录数据块的数据个数记录数据块的数据个数 设置任务方式字设置任务方式字SCONSCON:00H 00H SM0SM0SM1SM1SM2SM2RENRENTB8TB8RB8RB8TITIRIRI0 00 00 00 0 UARTNOUARTNO:MOV R0MOV R0,#MTD #MTD ;R0R0指向
5、第一个数据指向第一个数据 MOV SCONMOV SCON,#00H #00H ;设串行口任务于方式;设串行口任务于方式0 0SOUT SOUT :MOV AMOV A,R0 R0 ;取一个数据到;取一个数据到A A存放器存放器 MOV SBUFMOV SBUF,A A ;输出数据;输出数据 JNB TIJNB TI,$ $ ;等待数据输出终了;等待数据输出终了 CLR TI CLR TI ;关串行口输出中断标志;关串行口输出中断标志 INC R0 INC R0 ;数据块指针加;数据块指针加1 1 DJNZ R2 DJNZ R2,SOUT SOUT ;判别数据块能否输出终了,假设没;判别数据块
6、能否输出终了,假设没 ; ;有输出完,继续下一个数据的输出有输出完,继续下一个数据的输出 RET RET ;假设数据块输出终了,前往主程序;假设数据块输出终了,前往主程序程序:程序:留意:在主程序中需设置留意:在主程序中需设置#MTD#MTD和和R2 R2 单单片片机机串串行行扩扩展展2 2归一化输入子程序归一化输入子程序UARTNI UARTNI 思索:流程图思索:流程图 SM0SM0SM1SM1SM2SM2RENRENTB8TB8RB8RB8TITIRIRI0 00 00 01 10 0 方式字方式字SCONSCON:10H10H子程序子程序UARTNI UARTNI :MOV R0MOV
7、 R0,#MTD#MTD MOV SCON MOV SCON,#10H#10HSIN SIN :CLR RICLR RI JNB RI JNB RI,$ $ MOV A MOV A,SBUFSBUF MOV R0 MOV R0,A A INC R0 INC R0 DJNZ R2 DJNZ R2,SINSIN RET RET3 3运用界面主程序运用界面主程序 a. a. 串行发送:串行发送:MTD EQU MTD EQU 数据块首地址数据块首地址 ;如;如MTD EQU 60HMTD EQU 60HMOV R2MOV R2,#N #N ;发送字节数送;发送字节数送R2R2LCALL UARTNO
8、 LCALL UARTNO ;调用归一化;调用归一化 ;串行口发送子程序;串行口发送子程序b. b.串行接受:与串行发送一样串行接受:与串行发送一样 单单片片机机串串行行扩扩展展2. 2. 用用I/OI/O口虚拟的串行输口虚拟的串行输入入/ /输出归一化子程序输出归一化子程序流流程程图图 取数据到取数据到A A存放器存放器A A右移一位右移一位将将ACC.0ACC.0从从VRXDVRXD引脚输出引脚输出设指向数据块的指针设指向数据块的指针从从VTXDVTXD引脚输出一个引脚输出一个0 0,再输出一个,再输出一个1 1数据块输出终了?数据块输出终了?YESYES前往主程序前往主程序数据块指针加数
9、据块指针加1 18 8位数据输出终了?位数据输出终了?YESYESNONONONO1 1 归一化输出子程序归一化输出子程序单单片片机机串串行行扩扩展展程序程序VUARTNOVUARTNO:MOV R0MOV R0,#MTD #MTD ;设指向数据块的指针;设指向数据块的指针VSOUT VSOUT :MOV R3MOV R3,#8 #8 ;设置位数为;设置位数为8 8 MOV A MOV A,R0 R0 ;取一个数到;取一个数到A ABITOUT BITOUT :MOV CMOV C,ACC.0ACC.0 MOV VRXD MOV VRXD,C C ;将数据的最低位送到输出;将数据的最低位送到输
10、出I/OI/O引引脚脚 CLR VTXDCLR VTXD SETB VTXD SETB VTXD ;产生时钟;产生时钟 RR A RR A ;A A右移一位,下一位送入右移一位,下一位送入ACC.0ACC.0 DJNZ R3 DJNZ R3,BITOUTBITOUT;假设没有送够;假设没有送够8 8位,继续保送下一位,继续保送下一位位 INC R0 INC R0 ;指针指向下一个数据;指针指向下一个数据 DJNZ R2DJNZ R2,SOUT SOUT ;假设数据块没输出完,继续输出;假设数据块没输出完,继续输出 RETRET主程序需求设置:主程序需求设置:MTDMTD、VRXDVRXD、VT
11、XDVTXD、R2 R2 运用界面运用界面 MTD EQU MTD EQU 数据块首地址数据块首地址 ;如;如MTD EQU 60HMTD EQU 60HVRXD EQU VRXD EQU 数据引脚数据引脚 ;如;如VRXD EQU P1.0VRXD EQU P1.0VTXD EQU VTXD EQU 时钟引脚时钟引脚 ;如;如VTXD EQU P1.1VTXD EQU P1.1MOV R2MOV R2,# #数据字节数数据字节数 ;如;如MOV R2MOV R2,#10#10LCALL VUARTNO LCALL VUARTNO ;调用虚拟串行口归一化子程序;调用虚拟串行口归一化子程序2 2
12、归一化输入子程序归一化输入子程序VUARTNIVUARTNI:MOV R0MOV R0,#MTD#MTDVSIN VSIN :MOV R3MOV R3,#8#8BITIN BITIN :CLR VTXD CLR VTXD SETB VTXD SETB VTXD MOV C MOV C,VRXDVRXD RRC A RRC A DJNZ R3 DJNZ R3,BITINBITIN MOV R0 MOV R0,A A INC R0 INC R0 DJNZ R2 DJNZ R2,VSINVSIN RET RET a.a.子程序子程序b. 运用界面:与虚拟串行运用界面:与虚拟串行输出归一化子程序类似输
13、出归一化子程序类似 单单片片机机串串行行扩扩展展5 5串行口扩展运用串行口扩展运用 1 1输出移位存放器输出移位存放器74HC164 74HC164 74HC164 74HC164QA QB QC QD QE QF QG QA QB QC QD QE QF QG QHQHD7 D6 D5 D4 D3 D2 D1 D7 D6 D5 D4 D3 D2 D1 D0D0A AB BGNDGNDCLRCLRCLR(CLR(平平) )VCCVCC串行输入,并行输出。按串行输入,并行输出。按D0D7D0D7的次序逐个输入位。的次序逐个输入位。A A、B B:串行数据输入端:串行数据输入端2 2多个多个74H
14、C16474HC164输出扩展输出扩展 74HC164 74HC1641 1QA QB QC QD QE QF QG QA QB QC QD QE QF QG QHQHD7 D6 D5 D4 D3 D2 D1 D7 D6 D5 D4 D3 D2 D1 D0D0A AB BGNDGNDCLKCLKCLR(CLR(平平) )VCCVCC 74HC164 74HC1642 2QA QB QC QD QE QF QG QA QB QC QD QE QF QG QHQHD7 D6 D5 D4 D3 D2 D1 D7 D6 D5 D4 D3 D2 D1 D0D0A AB BGNDGNDCLKCLKCLR(
15、CLR(平平) )VCCVCC80C5180C51RXD/RXD/VRXDVRXDTXD/TXD/VTXDVTXDV CV CC C单单片片机机串串行行扩扩展展由于数据位按照由于数据位按照QHQAQHQA的次序输入的次序输入74HC16474HC164,所以数据,所以数据8 8位位按照按照74HC164(n)74HC164(1)74HC164(n)74HC164(1)的次序输入,即第一个数据输的次序输入,即第一个数据输入到最后一个入到最后一个74HC16474HC164,第二个数据输入到倒数第二个,第二个数据输入到倒数第二个74HC16474HC164,最后一个数据输入到第一个,最后一个数据输
16、入到第一个74HC16474HC164。 假设用假设用4 4个个74HC16474HC164,数据块首地址为片内,数据块首地址为片内RAM 60HRAM 60H串行口方式串行口方式0 0移位存放器方式扩展:移位存放器方式扩展: MTD EQU 60HMTD EQU 60HMOV R2MOV R2, #4#4LCALL UARTNOLCALL UARTNO虚拟串行口扩展:设用虚拟串行口扩展:设用P1.0P1.0输出数据;输出数据;P1.1P1.1输出时钟输出时钟 MTD EQU 60HMTD EQU 60HVRXD EQU P1.0VRXD EQU P1.0VTXD EQU P1.1VTXD E
17、QU P1.1MOV R2, #4MOV R2, #4LCALL VUARTNO LCALL VUARTNO 单单片片机机串串行行扩扩展展3 3移位输入存放器移位输入存放器74HC16574HC165及多个及多个74HC16574HC165输入扩展输入扩展 74HC165 74HC1651 1H G F E D C B AH G F E D C B AD0 D1 D2 D3 D4 D5 D6 D0 D1 D2 D3 D4 D5 D6 D7D7QHQHGNDGNDCLRCLRSH/LD(SH/LD(平平) ) 74HC165 74HC1652 2H G F E D C B AH G F E D
18、C B AD0 D1 D2 D3 D4 D5 D6 D0 D1 D2 D3 D4 D5 D6 D7D7QHQHGNDGNDCLRCLRSH/LD(SH/LD(平平) )VCVCC C80C5180C51RXD/RXD/VRXDVRXDTXD/TXD/VTXDVTXDVCVCC CSERSERVCCVCCQHQHSLSLQHQH是串行数据输出端,是串行数据输出端,SERSER是级联时的串行数据输入端,是级联时的串行数据输入端,AHAH为并为并行数据输入端,行数据输入端,SH/LDSH/LD平为预置控制端,低电平常,并行数据平为预置控制端,低电平常,并行数据端端D0D7D0D7置入置入74HC16
19、574HC165内部存放器,高电平常,可进展串行移位操内部存放器,高电平常,可进展串行移位操作作 单单片片机机串串行行扩扩展展a. a. 用串行口任务方式用串行口任务方式0 0扩展扩展 MRD EQU 40H MRD EQU 40H SL EQU P1.0 SL EQU P1.0 UARNUARN:CLR SL CLR SL ;74HC16574HC165外部数据并行输入内部存放器外部数据并行输入内部存放器 SETB SL SETB SL ;74HC16474HC164移位操作,移位操作,74HC16574HC165n n的数据串行的数据串行 ;输入到;输入到74HC16574HC165n-1
20、n-1 MOV R2MOV R2,#N #N ;设置接纳的字节数;设置接纳的字节数 LCALL UARTNI LCALL UARTNI ;调归一化子程序;调归一化子程序 b. b. 虚拟方式与串行口方式虚拟方式与串行口方式0 0类似,但要设类似,但要设VRXDVRXD和和VTXDVTXD: MRD EQU 40H MRD EQU 40H VRXD EQU P1.5 VRXD EQU P1.5 VTXD EQU P1.4 VTXD EQU P1.4 SL EQU P1.1 SL EQU P1.1WARNWARN:CLR SLCLR SL SETB SL SETB SL MOV R2 MOV R2
21、,#N#N LCALL VUARTNI LCALL VUARTNI 单单片片机机串串行行扩扩展展4 4经过并行输出口扩展经过并行输出口扩展LEDLED显示器显示器 74HC164 74HC1641 1QA QB QC QD QE QF QG QA QB QC QD QE QF QG QHQHA AB BGNDGNDCLRCLRCLR(CLR(平平) )VCCVCC 74HC164 74HC1642 2QA QB QC QD QE QF QG QA QB QC QD QE QF QG QHQHA AB BGNDGNDCLRCLRCLR(CLR(平平) )V CV CC C80C5180C51RX
22、D/RXD/VRXDVRXDTXD/TXD/VTXDVTXDV CV CC Cdp g f e d c b adp g f e d c b aCOMCOML8L8dp g f e d c b adp g f e d c b aCOMCOML7L7+ 5+ 5V V假设要显示假设要显示bUAA bUAA 首先,求段码:首先,求段码:共阳极共阳极 b b的段码:的段码:cdefgcdefg有效有效 ab dp ab dp无效无效 1000 0011B=83H 1000 0011B=83H U U的段码:的段码:bcdefbcdef有效,有效,a g dpa g dp无效无效 1100 0001B=
23、C1H 1100 0001B=C1H A A的段码:的段码:abcefgabcefg有效,有效,d dpd dp无效无效 1000 1000=88H 1000 1000=88H 的段码:的段码:abcdefabcdef有效,有效,g dpg dp无效无效 1100 0000=C0H 1100 0000=C0H单单片片机机串串行行扩扩展展其次,编写指令其次,编写指令 MTD EQU 30H MTD EQU 30H ;定义;定义MTD=30HMTD=30HBUAABUAA: MOV R1 MOV R1,#MTD #MTD MOV R1 MOV R1,#C0H#C0H INC R1 INC R1 M
24、OV R1 MOV R1,#C0H#C0H INC R1 INC R1 MOV R1 MOV R1,#C0H#C0H INC R1 INC R1 MOV R1 MOV R1,#C0H#C0H;将;将4 4个个段码送入数据块段码送入数据块 INC R1 INC R1 MOV R1 MOV R1,#88H#88H INC R1 INC R1 MOV R1 MOV R1,#88H #88H ;将;将2 2个个A A段码送入数据块段码送入数据块 INC R1 INC R1 MOV R1 MOV R1,#C1H #C1H ;将;将U U段码送入数据块段码送入数据块 INC R1 INC R1 MOV R
25、1 MOV R1,#83H #83H ;将;将b b段码送入数据块段码送入数据块 MOV R2 MOV R2,#8 #8 ;设置输出数据字节数;设置输出数据字节数 LCALL UARTNO LCALL UARTNO ;调归一化子程序;调归一化子程序单单片片机机串串行行扩扩展展第二节第二节 I2CI2C总线的串行扩展技术总线的串行扩展技术 1. I2C总线总线Inter Integrated Circuit BUS概述概述 80C5180C51VSDAVSDAVSCLVSCLE2PROME2PROMSDASDA SCLSCLADC/DACADC/DACSDASDA SCLSCLV DV DD D
26、其它其它I2CI2C外围接口外围接口SDASDA SCLSCLSDASDASCLSCLI2CI2C总线外围扩展现意图总线外围扩展现意图1 二总线:数据线SDA,时钟线SCL 总线上挂接单片机、外围器件如I/O口,日历时钟,ADC,DAC,存储器等和外设接口如键盘、显示器、打印机等。I2C总线接口电路均为漏极开路,所以总线上必需有上拉电阻 单单片片机机串串行行扩扩展展2. 2. 典型典型I2CI2C总线时序总线时序 起始传送7个外围器件或接口的地址位,以及1个读写控制位对方应对传送数据和应对终止 4.74.7usus4.04.0ususSDA/VSDASDA/VSDASCL/VSCLSCL/VS
27、CL1) 起始起始 数据线SDA和SCL低电平,SDA转高电平数据线SDA坚持高电平至少4.7us当数据线SDA变低电平之后,时钟SCL继续坚持高电平4.0us2) 终止终止 4.74.7usus4.04.0ususSDA/VSDASDA/VSDASCL/VSCLSCL/VSCL时钟线SCL和数据线SDA低电平,SCL转高电平SCL坚持高电平至少4.0us之后,数据线SDA由低电平变为高电平 SDA坚持高电平至少4.7us之后,转低电平。 单单片片机机串串行行扩扩展展3) 3) 应对应对单片机每发送完一个字节数据单片机每发送完一个字节数据8 8位,对方会从位,对方会从SDA/VSDASDA/V
28、SDA发送一个应对位,发送一个应对位,低电平为有效应对信号。低电平为有效应对信号。 4) 4) 数据传输数据传输按照从高位到低位的传输次序与按照从高位到低位的传输次序与80C5180C51串行口扩展方式相反串行口扩展方式相反 4.0u4.0us s输出输出0 0SDA/VSDASDA/VSDASCL/VSCLSCL/VSCLa. 输出0 SDA/VSDA变低电平SCL/VSCL变高电平,并坚持4.0us以上时间,SCL/VSCL变低电平SDA/VSDA变高电平 b. 输出1:与输出0同理可得 4.0u4.0us s输出输出1 1SDA/VSDASDA/VSDASCL/VSCLSCL/VSCL单
29、单片片机机串串行行扩扩展展5) I2C5) I2C总线上一次完好的数据传送过程总线上一次完好的数据传送过程 3. I2C3. I2C总线模拟子程序总线模拟子程序 设单片机时钟频率为6MHz,那么一个机器周期的时间为12/6*106=2us 1) 启动子程序 VSDAVSDA变高电平变高电平VSCLVSCL变高电平变高电平延时延时( (使使VSDAVSDA坚持高电平坚持高电平4.7us)4.7us)VSDAVSDA变低电平变低电平延时延时( (使使VSCLVSCL继续坚持高电平继续坚持高电平4us)4us)VSCLVSCL变低电平变低电平前往主程序前往主程序4.74.7usus4.04.0usu
30、sSDA/VSDASDA/VSDASCL/VSCLSCL/VSCL流程图 单单片片机机串串行行扩扩展展子程序STA: SETB VSDA ;VSDA高电平 SETB VSCL ;VSCL高电平 NOP NOP ;延时,查教材得,NOP的执行需求1个机器周期, ;因此两条NOP指令共需2个机器周期,耗时2*2us=4us CLR VSDA ;VSDA变低电平 NOP NOP ;延时4us CLR VSCL ;VSCL变低电平 RET单单片片机机串串行行扩扩展展2) 终止子程序 4.74.7usus4.04.0ususSDA/VSDASDA/VSDASCL/VSCLSCL/VSCL流程图 与启动类似,略 子程序:STOP: CLR VSDA SETB VSCL NOP NOP SETB VSDA NOP NOP CLR VSDA CLR VSCL RET 单单片片机机串串行行扩扩展展3) 应对位检查子程序CACK 有效的应对标志:0 SDA/VSDASDA/VSDASCL/VSCLSCL/VSCL应对应对查询查询VSDAVSDAVSDAVSD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论