《单片机原理及应用第十讲精.ppt》由会员分享,可在线阅读,更多相关《单片机原理及应用第十讲精.ppt(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机原理及应用第十讲第1页,本讲稿共25页一、串行口的结构一、串行口的结构 1 1、基本概念、基本概念 什么叫串行通讯?(对应有并行通讯)什么叫串行通讯?(对应有并行通讯)何谓全双工?(相应有单工、半双工)何谓全双工?(相应有单工、半双工)异步通讯?(对应也有同步通讯)异步通讯?(对应也有同步通讯)波特率?波特率?MCS-51 MCS-51单片机内部有一个功能强的、有单片机内部有一个功能强的、有4 4种工种工 作方式的全双工的异步串行口,其波特率可用软作方式的全双工的异步串行口,其波特率可用软 件设置。件设置。第2页,本讲稿共25页2 2、MCS-51MCS-51系列单片机串行口的结构系列单
2、片机串行口的结构发送发送SBUFSBUF(99H)(99H)接收接收SBUFSBUF(99H)(99H)串串行行控控制制寄存器寄存器SCONSCON(98H)(98H)门门发送控制器发送控制器接收控制器接收控制器输入移位寄存器输入移位寄存器定定时时器器T1T1+内内部部总总线线TXD(P3.1)TXD(P3.1)RXD(P3.0)RXD(P3.0)TITIRIRI串行口中断串行口中断8 88 88 8第3页,本讲稿共25页(1 1)串行口控制寄存器)串行口控制寄存器SCONSCON 字节地址字节地址9898H H,位地址位地址9898H H9FH9FH。格式如下:格式如下:SM0SM0TB8T
3、B8SM1SM1SM2SM2RENRENRB8RB8TITIRIRISCONSCON98H98HD7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0SM0 SM1SM0 SM1方式方式功功 能能 说说 明明 0 0 0 00 0同步移位寄存器同步移位寄存器(固定频率为固定频率为fosc/12)fosc/12)0 1 0 11 18 8位异步收发,波特率可变(由位异步收发,波特率可变(由T1T1控制)控制)1 0 1 02 29 9位异步收发,波特率为位异步收发,波特率为fosc/64fosc/64或或fosc/32fosc/32 1 1 1 13 39 9位异步收发,波特率可变(由
4、位异步收发,波特率可变(由T1T1控制)控制)第4页,本讲稿共25页SM2SM2:多机通讯控制位多机通讯控制位 多机通讯是运用在工作方式多机通讯是运用在工作方式2 2和方式和方式3 3下(即下(即9 9位异步收发),在这种情况时,如果位异步收发),在这种情况时,如果SM2SM2置为置为1 1,则,则只有当接收到的第九位数据(只有当接收到的第九位数据(RB8RB8)为为“1 1”时,才将时,才将接收到的前接收到的前8 8位数据送入位数据送入SBUF(SBUF(接收缓冲器),并置接收缓冲器),并置RIRI为为“1 1”,产生中断请求;如果接收到的第九位数,产生中断请求;如果接收到的第九位数据(据(
5、RB8RB8)为为“0 0”,串行口则将接收到的前,串行口则将接收到的前8 8位数据位数据丢弃。而当丢弃。而当SM2=0SM2=0时,则不论第九位数据是时,则不论第九位数据是“1 1”还是还是“0 0”,都将前,都将前8 8位数据送入位数据送入SBUFSBUF缓冲器中,缓冲器中,RIRI置置“1 1”,产生中断。方式产生中断。方式0 0时,时,SM2SM2必须置必须置“1 1”。第5页,本讲稿共25页(2 2)特殊功能寄存器)特殊功能寄存器PCONPCON 电源控制寄存器,字节地址为电源控制寄存器,字节地址为8787H H,其格式如下:其格式如下:SMODSMODGF1GF1GF0GF0PDP
6、DIDLIDLPCONPCON87H87HD7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0SMODSMOD:波特率选择位(波特率倍增位)波特率选择位(波特率倍增位)方式方式1 1、3 3的波特率为:的波特率为:(2 2SMODSMOD/32/32)T1T1溢出率溢出率第6页,本讲稿共25页二、串行口的二、串行口的4 4种工作方式种工作方式 1 1、方式、方式0 0 同步移位寄存器输入输出方式,常用于同步移位寄存器输入输出方式,常用于I/OI/O扩扩展。此方式下的发送和接收均用展。此方式下的发送和接收均用RXDRXD引脚,而引脚,而TXDTXD都输出固定频率(都输出固定频率(fo
7、sc/12fosc/12)的同步移位脉冲。发的同步移位脉冲。发送时由写入送时由写入SBUFSBUF缓冲数据开始,接收时由写入缓冲数据开始,接收时由写入SCONSCON允许接收控制寄存器开始。允许接收控制寄存器开始。第7页,本讲稿共25页2 2、方式、方式1 1 8 8位异步收发,外加一位起始位和一位停止位,位异步收发,外加一位起始位和一位停止位,1010位组成一帧数据格式,下图为方式位组成一帧数据格式,下图为方式1 1的帧格式:的帧格式:起始位起始位D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7停止位停止位方式方式1 1 波特率波特率=(2 2SMODSMOD/32/32)T
8、1T1溢出率溢出率第8页,本讲稿共25页3 3、方式、方式2 2 9 9位异步通讯,每帧数据为位异步通讯,每帧数据为1111位:位:1 1位起始位,位起始位,8 8位数据位,位数据位,1 1位可程控为位可程控为1 1或或0 0的第九位数据(常用的第九位数据(常用作奇偶位),作奇偶位),1 1位停止位。其帧格式为:位停止位。其帧格式为:起始位起始位D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7停止位停止位D8D8方式方式2 2 波特率波特率=2=2SMODSMOD/64/64foscfosc第9页,本讲稿共25页4 4、方式、方式3 3 9 9位异步通讯,其传输帧格式与方式位异
9、步通讯,其传输帧格式与方式2 2相同,相同,不同之处为波特率为可变,由不同之处为波特率为可变,由T1T1溢出率确定,与溢出率确定,与方式方式1 1的波特率计算相同,如下所示:的波特率计算相同,如下所示:方式方式3 3 波特率波特率=(2 2SMODSMOD/32/32)T1T1溢出率溢出率第10页,本讲稿共25页例:利用方式例:利用方式2 2,实现双机通讯。(奇偶校验),实现双机通讯。(奇偶校验)甲机发送,甲机发送,TB8TB8作奇偶校验位,在写入作奇偶校验位,在写入8 8位发位发送数据前,先将此数据的奇偶位写入送数据前,先将此数据的奇偶位写入TB8TB8中,其中,其中断服务程序为:中断服务程
10、序为:PIPTI:PUSH PSWPIPTI:PUSH PSW PUSH A PUSH A SETB RS1 SETB RS1 CLR RS0 CLR RS0 CLR TI CLR TI MOV A,R0 MOV A,R0 MOV C,P MOV C,PMOV TB8,CMOV TB8,CMOV SBUF,AMOV SBUF,AINC R0INC R0POP APOP APOP PSWPOP PSWRETIRETI第11页,本讲稿共25页 乙机接收,所接收的第九位为奇偶校验位乙机接收,所接收的第九位为奇偶校验位(RB8RB8),),其接收中断服务程序如下:其接收中断服务程序如下:PIRI:PU
11、SH PSWPIRI:PUSH PSW PUSH A PUSH A SETB RS0 SETB RS0 CLR RS1 CLR RS1 CLR RI CLR RI MOV A,SBUF MOV A,SBUF MOV C,P MOV C,P JNC L1 JNC L1 JNB RB8,ERP JNB RB8,ERP AJMP L2AJMP L2L1:JB RB8,ERPL1:JB RB8,ERPL2:MOV R0,AL2:MOV R0,A INC R0 INC R0ERP:ERP:POP A POP A POP PSW POP PSW RETI RETI第12页,本讲稿共25页三、多机通讯三、多
12、机通讯 当串行口以方式当串行口以方式2 2或方式或方式3 3工作时,若工作时,若SM2SM2位置位置“”,这,这时只有当串行口接收到的第九位数据时只有当串行口接收到的第九位数据RB8RB8为为“1 1”时,才置中时,才置中断断标志标志RI=1RI=1,若接收到的若接收到的RB8RB8为为“0 0”,则不产生中断标志,信,则不产生中断标志,信息息丢失。利用此特性,实现多机通信。丢失。利用此特性,实现多机通信。TXDTXDTXDTXDRXDRXDRXDRXD从机#0主机从机#1从机#2第13页,本讲稿共25页1 1、串行数据传送与并行数据传送相比的主要优点和用途是、串行数据传送与并行数据传送相比的
13、主要优点和用途是 什么?什么?2 2、简述串行口、简述串行口4 4种工作方式的接收和发送数据的过程。种工作方式的接收和发送数据的过程。3 3、帧格式为、帧格式为1 1个起始位,个起始位,8 8个数据位和一个停止位的异步通个数据位和一个停止位的异步通 讯方式是方式(讯方式是方式()。)。4 4、串行口有几种工作方式?有几种帧格式?各种工作方式、串行口有几种工作方式?有几种帧格式?各种工作方式 的波特率如何确定?的波特率如何确定?5 5、假定串行口串行发送的字符格式为、假定串行口串行发送的字符格式为1 1个起始位,个起始位,8 8个数据个数据 位,位,1 1个奇校验位,个奇校验位,1 1个停止位,
14、请画出传送字符个停止位,请画出传送字符“A A”的的帧帧 格式。格式。第14页,本讲稿共25页6 6、下列说法是否正确:、下列说法是否正确:(1 1)串行口通讯的第九数据位的功能可由用户定义。)串行口通讯的第九数据位的功能可由用户定义。(2 2)发送数据的第九数据位的内容在)发送数据的第九数据位的内容在SCONSCON寄存器的寄存器的TB8TB8位位 中预先准备好。中预先准备好。(3 3)串行通讯发送时,指令把)串行通讯发送时,指令把TB8TB8位的状态送入发送位的状态送入发送SBUFSBUF 中。中。(4 4)串行通讯接收到的第九位数据送)串行通讯接收到的第九位数据送SCONSCON寄存器的
15、寄存器的RB8RB8中中 保存。保存。(5 5)串行口方式)串行口方式1 1的波特率是可变的,通过定时器的波特率是可变的,通过定时器/计数计数 器器T1T1的溢出率设定。的溢出率设定。第15页,本讲稿共25页7 7、通过串行口发送或接收数据时,应使用指令:、通过串行口发送或接收数据时,应使用指令:(1 1)MOVCMOVC(2 2)MOVXMOVX(3 3)MOVMOV(4 4)XCHDXCHD8 8、某某80318031串行口,传送数据的帧格式为串行口,传送数据的帧格式为1 1个起始个起始 位,位,8 8个数据位,个数据位,1 1个偶校验,个偶校验,1 1个停止位组成。个停止位组成。当该串行
16、口每分钟传送当该串行口每分钟传送18001800个字符时,试计算个字符时,试计算 出波特率。出波特率。第16页,本讲稿共25页四、应用举例四、应用举例第17页,本讲稿共25页例:串行口发送接收共例:串行口发送接收共1010位信息(方式位信息(方式1 1),第),第0 0位位 是起始位,是起始位,1 18 8位是数据位,最后是停止位位是数据位,最后是停止位1 1。甲机把以甲机把以7878H H、77H77H单元的内容为首地址,以单元的内容为首地址,以 76 76H H、75H75H单元中内容减单元中内容减1 1为末地址的数据块内为末地址的数据块内 容通过串行口向乙机发送。设容通过串行口向乙机发送
17、。设80318031内部内部RAMRAM中:中:(7878H H)=20H=20H (77H77H)=00H=00H (76H76H)=20H=20H (75H75H)=20H=20H第18页,本讲稿共25页甲机发送程序:甲机发送程序:(设晶振为(设晶振为6 6MHzMHz,波特率为波特率为24002400b/sb/s)ORG 0000HORG 0000H LJMP TRANS LJMP TRANS ORG 001BH ORG 001BH LJMP T1INT LJMP T1INT ORG 0023H ORG 0023H LJMP SINT LJMP SINT ORG 1000H ORG 10
18、00HTRANSTRANS:ANL TMOD ANL TMOD,#0FH#0FH ORL TMOD ORL TMOD,#10H#10H 第19页,本讲稿共25页MOV TL1,#0FAHMOV TL1,#0FAHMOV TH1,#0FFHMOV TH1,#0FFHMOV PCON,#80HMOV PCON,#80HSETB EASETB EACLR ESCLR ESSETB ET1SETB ET1SETB PT1SETB PT1CLR PSCLR PSSETB TR1SETB TR1CLR TICLR TIMOV SCON,#40HMOV SCON,#40HMOV SBUF,78HMOV SB
19、UF,78HWAIT1:JNB TI,WAIT1WAIT1:JNB TI,WAIT1 CLR TI CLR TI MOV SBUF,77H MOV SBUF,77HWAIT2:JNB TI,WAIT2WAIT2:JNB TI,WAIT2 CLR TI CLR TI MOV SBUF,76H MOV SBUF,76HWAIT3:JNB TI,WAIT3WAIT3:JNB TI,WAIT3 CLR TI CLR TI MOV SBUF,75H MOV SBUF,75HWAIT4:JNB TI,WAIT4WAIT4:JNB TI,WAIT4 CLR TI CLR TI SETB ES SETB ES
20、第20页,本讲稿共25页 CLR C CLR C MOV A,75H MOV A,75H SUBB A,77H SUBB A,77H MOV R0,A MOV R0,A MOV A,76H MOV A,76H SUBB A,78H SUBB A,78H MOV R1,A MOV R1,A MOV DPH,78H MOV DPH,78H MOV DPL,77H MOV DPL,77HAGAIN:CLR F0AGAIN:CLR F0 MOVX A,DPTR MOVX A,DPTR MOV SBUF,A MOV SBUF,AINC DPTRINC DPTRCLR CCLR CMOV A,R0MOV
21、A,R0SUBB A,#01HSUBB A,#01HMOV R0,AMOV R0,AMOV A,R1MOV A,R1SUBB A,#00HSUBB A,#00HMOV R1,AMOV R1,ACJNE R0,#00H,LOOPCJNE R0,#00H,LOOPCJNE R1,#00H,LOOPCJNE R1,#00H,LOOPCLR EACLR EAAJMP$AJMP$第21页,本讲稿共25页LOOPLOOP:JNB F0JNB F0,LOOPLOOP LJMP AGAIN LJMP AGAINSINTSINT:CLR TICLR TI SETB F0 SETB F0 RETI RETIT1I
22、NTT1INT:CLR TR1CLR TR1 MOV TL1 MOV TL1,#0FAH#0FAH MOV TH1 MOV TH1,#0FFH#0FFH SETB TR1 SETB TR1 RETI RETI第22页,本讲稿共25页乙机接收程序:(晶振为6MHz,波特率为2400b/s,方式1)ORG 0000H ORG 0000H LJMP RECEIVE LJMP RECEIVE ORG 001BH ORG 001BH LJMP T1INT LJMP T1INT ORG 0023H ORG 0023H LJMP RSINT LJMP RSINT ORG 0100H ORG 0100HREC
23、EIVERECEIVE:ANL TMOD ANL TMOD,#0FH#0FH ORL TMOD ORL TMOD,#10H#10H 第23页,本讲稿共25页MOV TL1,#0FAHMOV TL1,#0FAHMOV TH1,#0FFHMOV TH1,#0FFHMOV PCON,#80HMOV PCON,#80HSETB EASETB EACLR ESCLR ESSETB ET1SETB ET1SETB PT1SETB PT1CLR PSCLR PSSETB TR1SETB TR1CLR TICLR TIMOV SCON,#50HMOV SCON,#50HCLR B.0CLR B.0MOV 70
24、H,#78HMOV 70H,#78HLOOP:AJMP LOOPLOOP:AJMP LOOPRSINT:PUSH DPLRSINT:PUSH DPL PUSH DPH PUSH DPH JB B.0,DATA JB B.0,DATA MOV R0,70H MOV R0,70H MOV A,SBUF MOV A,SBUF MOV R0,A MOV R0,A DEC 70H DEC 70H CLR RI CLR RI MOV A,#74H MOV A,#74H CJNE A,70H,RETURN CJNE A,70H,RETURN SETB B.0 SETB B.0第24页,本讲稿共25页RETU
25、RN:POP ARETURN:POP A POP DPH POP DPH POP DPL POP DPL RETI RETIDATA:MOV DPH,78HDATA:MOV DPH,78H MOV DPL,77H MOV DPL,77H MOV A,SBUF MOV A,SBUF DEC 70H DEC 70H MOVX DPTR,A MOVX DPTR,A CLR RI CLR RI INC 77H INC 77H MOV A,77H MOV A,77H JNZ END2 JNZ END2 INC 78H INC 78HEND2:MOV A,76HEND2:MOV A,76H CJNE A,78H,RETURN CJNE A,78H,RETURN MOV A,75H MOV A,75H CJNE A,77H,RETURN CJNE A,77H,RETURN CLR ES CLR ES CLR ET1 CLR ET1 CLR RI CLR RI SETB PSW.5 SETB PSW.5 AJMP RETURN AJMP RETURN第25页,本讲稿共25页
限制150内