单片机及接口技术串行扩展精.ppt
《单片机及接口技术串行扩展精.ppt》由会员分享,可在线阅读,更多相关《单片机及接口技术串行扩展精.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机及接口技术串行扩展第1页,本讲稿共26页本章主要内容本章主要内容第一节第一节 移位寄存器的串行扩展技术移位寄存器的串行扩展技术 (80C5180C51串行口扩展)串行口扩展)1 1)串行口于工作方式)串行口于工作方式0 0 2 2)虚拟串行扩展)虚拟串行扩展2 2)串行接口总线:)串行接口总线:I I2 2C C总线总线第2页,本讲稿共26页单单片片机机串串行行扩扩展展1.1.串行口工作于方式串行口工作于方式0 0 串行口的四种工作方式串行口的四种工作方式 方式方式0 0,同步传输,同步传输,8 8位数据传输,传输速率固定位数据传输,传输速率固定f fOSCOSC/12/12方式方式1
2、1,1010位数据传输,传输速率由位数据传输,传输速率由T1T1产生,可变产生,可变方式方式2 2,1111位数据传输,可多机通信,传输速率固定两种位数据传输,可多机通信,传输速率固定两种方式方式3 3,1111位数据传输,可多机通信,传输速率同方式位数据传输,可多机通信,传输速率同方式1 1 1 1)串行口扩展的工作原理)串行口扩展的工作原理 一个引脚用作数据输入一个引脚用作数据输入/输出输出另一个引脚用作时钟输出(同步)另一个引脚用作时钟输出(同步)串行口工作于方式串行口工作于方式0 0时,时,RXDRXD用作数据输入用作数据输入/输出;输出;TXDTXD用作时钟输出用作时钟输出虚拟串行口
3、采用虚拟串行口采用1 1个个I/OI/O端口引脚作数据输入端口引脚作数据输入/输出;采用另一个输出;采用另一个I/OI/O端口引脚端口引脚作时钟输出。作时钟输出。第3页,本讲稿共26页 2)80C51串行扩展的时序串行扩展的时序 单单片片机机串串行行扩扩展展R RX XD DT TX XD DTITI发送发送RENRENRIRIT TX XD DR RX XD D接收接收第4页,本讲稿共26页3 3)串行口方式)串行口方式0 0的归一化子程序的归一化子程序(归一化子程序即通用子程序)(归一化子程序即通用子程序)(1 1)归一化输出子程序)归一化输出子程序 设工作方式设工作方式0 0清清TITI
4、取数据到寄存器取数据到寄存器A A设指向数据块的指针设指向数据块的指针输出数据输出数据数据块输出完毕?数据块输出完毕?YESYES返回主程序返回主程序数据块指针加数据块指针加1 1数据输出完毕?数据输出完毕?YESYESNONONONOa.a.流程图流程图 单单片片机机串串行行扩扩展展第5页,本讲稿共26页b.b.归一化子程序归一化子程序 设用设用R0R0作数据块指针,用作数据块指针,用R2R2记录数据块的数据个数记录数据块的数据个数 设置工作方式字设置工作方式字SCONSCON:00H 00H SM0SM0SM1SM1SM2SM2RENRENTB8TB8RB8RB8TITIRIRI0 00
5、00 00 0UARTNOUARTNO:MOV R0MOV R0,#MTD#MTD ;R0R0指向第一个数据指向第一个数据 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
6、 R2 DJNZ R2,SOUT SOUT ;判断数据块是否输出完毕,若没;判断数据块是否输出完毕,若没 ;有输出完,继续下一个数据的输出有输出完,继续下一个数据的输出 RET RET ;若数据块输出完毕,返回主程序;若数据块输出完毕,返回主程序程序:程序:注意:在主程序中需设置注意:在主程序中需设置#MTD#MTD和和R2 R2 单单片片机机串串行行扩扩展展第6页,本讲稿共26页(2 2)归一化输入子程序)归一化输入子程序UARTNI UARTNI 思考:流程图思考:流程图 SM0SM0SM1SM1SM2SM2RENRENTB8TB8RB8RB8TITIRIRI0 00 00 01 10 0
7、方式字方式字SCONSCON:10H10H子程序子程序UARTNI UARTNI:MOV R0MOV 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 RET(3 3)应用界面(主程序)应用界面(主程序)a.a.串行发送串行发送:MTD EQU MTD EQU 数据块首地址数据块首地址 ;如;如MTD EQU 60HMTD EQU 60H
8、MOV R2MOV R2,#N#N;发送字节数送;发送字节数送R2R2LCALL UARTNO LCALL UARTNO ;调用归一化;调用归一化 ;串行口发送子程序;串行口发送子程序b.b.串行接受串行接受:与串行发送相同:与串行发送相同 单单片片机机串串行行扩扩展展第7页,本讲稿共26页2.2.用用I/OI/O口虚拟的串行输入口虚拟的串行输入/输出归一化子程序输出归一化子程序流流程程图图 取数据到取数据到A A寄存器寄存器A A右移一位右移一位将将ACC.0ACC.0从从VRVRX XD D引脚输出引脚输出设指向数据块的指针设指向数据块的指针从从VTVTX XD D引脚输出一个引脚输出一个
9、0 0,再输出一个,再输出一个1 1数据块输出完毕?数据块输出完毕?YESYES返回主程序返回主程序数据块指针加数据块指针加1 18 8位数据输出完毕?位数据输出完毕?YESYESNONONONO(1 1)归一化输出子程序归一化输出子程序单单片片机机串串行行扩扩展展第8页,本讲稿共26页程序程序VUARTNOVUARTNO:MOV R0MOV R0,#MTD#MTD ;设指向数据块的指针;设指向数据块的指针VSOUT VSOUT :MOV R3MOV R3,#8#8 ;设置位数为;设置位数为8 8 MOV A MOV A,R0 R0 ;取一个数到;取一个数到A ABITOUT BITOUT :
10、MOV CMOV C,ACC.0ACC.0 MOV VRXD MOV VRXD,C C ;将数据的最低位送到输出;将数据的最低位送到输出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 ;若数据块没
11、输出完,继续输出;若数据块没输出完,继续输出 RETRET主程序需要设置:主程序需要设置:MTDMTD、VRXDVRXD、VTXDVTXD、R2 R2 第9页,本讲稿共26页应用界面应用界面 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 R2
12、MOV R2,#10#10LCALL VUARTNO LCALL VUARTNO ;调用虚拟串行口归一化子程序;调用虚拟串行口归一化子程序(2 2)归一化输入子程序)归一化输入子程序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 DJ
13、NZ R2 DJNZ R2,VSINVSIN RET RET a.a.子程序子程序b.应用界面:与虚拟串行应用界面:与虚拟串行输出归一化子程序类似输出归一化子程序类似 单单片片机机串串行行扩扩展展第10页,本讲稿共26页5 5)串行口扩展应用)串行口扩展应用 (1)输出移位寄存器)输出移位寄存器74HC164 74HC164 74HC164Q QA A Q QB B Q QC C Q QD D Q QE E Q QF F Q QG G Q QH HD D7 7 D D6 6 D D5 5 D D4 4 D D3 3 D D2 2 D D1 1 D D0 0A AB BGNDGNDCLRCLRC
14、LR(CLR(平平)V VCCCC串行输入,并行输出。按串行输入,并行输出。按D0D7D0D7的次序逐个输入位。的次序逐个输入位。A A、B B:串行数据输入端:串行数据输入端(2 2)多个)多个74HC16474HC164输出扩展输出扩展 74HC164 74HC164(1 1)Q QA A Q QB B Q QC C Q QD D Q QE E Q QF F Q QG G Q QH HD D7 7 D D6 6 D D5 5 D D4 4 D D3 3 D D2 2 D D1 1 D D0 0A AB BGNDGNDCLKCLKCLR(CLR(平平)V VCCCC 74HC164 74HC
15、164(2 2)Q QA A Q QB B Q QC C Q QD D Q QE E Q QF F Q QG G Q QH HD D7 7 D D6 6 D D5 5 D D4 4 D D3 3 D D2 2 D D1 1 D D0 0A AB BGNDGNDCLKCLKCLR(CLR(平平)V VCCCC80C5180C51RXD/RXD/VRXDVRXDTXD/TXD/VTXDVTXDV VCCCC单单片片机机串串行行扩扩展展第11页,本讲稿共26页由于数据位按照由于数据位按照Q QH HQQA A的次序输入的次序输入74HC16474HC164,所以数据(,所以数据(8 8位)按照位)按
16、照74HC164(n)74HC164(1)74HC164(n)74HC164(1)的次序输入,即第一个数据输入到最后一个的次序输入,即第一个数据输入到最后一个74HC16474HC164,第二个数据输入到倒数第二个,第二个数据输入到倒数第二个74HC16474HC164,最后一个,最后一个数据输入到第一个数据输入到第一个74HC16474HC164。假如用假如用4 4个个74HC16474HC164,数据块首地址为片内,数据块首地址为片内RAM 60HRAM 60H串行口方式串行口方式0 0(移位寄存器方式)扩展:(移位寄存器方式)扩展:MTD EQU 60HMTD EQU 60HMOV R2
17、MOV 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 EQU P1.1MOV R2,#4MOV R2,#4LCALL VUARTNOLCALL VUARTNO 单单片片机机串串行行扩扩展展第12页,本讲稿共26页(3 3)移位输入寄存器)移位输入寄存器74HC16574HC165及多个及多个74HC16574HC165输入扩展输入扩展 74
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 接口 技术 串行 扩展
限制150内