MCS-51的串行口

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第6章MCS-51的串行口•讲课思路结构,功能,有关SFR工作方式应用–多机通信原理–双机通信编程实验四1个,全双工,异步串行口全双工:异步通信:串行接收、发送可同时进行收、发双方没有同步时钟来控制收、发的同步传送,而是靠双方各自的时钟来控制MCS-51的串行数据是以数据帧形式一帧一帧的发送/接收的。反:半双工,单工反:同步通信TXD(P3.1)RXD(P3.0)6.1串行口的结构SBUF:物理上独立的2个,但共用一个SFR字节地址,发送SBUF只能写入,接收SBUF只能读出,可同时收、发数据。TI,RI串行口中断,T1波特率设置串行口的控制寄存器有2个:SCON和PCON。(1)SM0、SM1——串行口4种工作方式的选择位1、串行口控制寄存器SCONSM0SM1方式功能说明000同步移位寄存器方式(用于扩展I/O口)0118位异步收发,波特率可变(由T1控制)1029位异步收发,波特率为fosc/64或fosc/321139位异步收发,波特率可变(由T1控制)(3)REN——允许串行接收位“1”允许,“0”禁止。(2)SM2——多机通信控制位主要用于方式2、3中,接收时,若SM2=1,只有当RB8=1时,才将接收到的前8位数据送入SBUF,否则丢弃。当SM2=0,则不论RB8是“1”还是“0”,都将前8位数据送入SBUF中,并RI=1,产生中断请求。方式0:SM2=0。方式1:若SM2=1,则只有收到有效停止位才激活RI并RI=1。在双机通信中,TB8作奇偶校验位在多机通信中,表示主机发送的是地址帧(TB8=1)还是数据帧(TB8=0)(4)TB8——发送的第9位数据(方式2/3中)(5)RB8——接收到的第9位数据方式2和3中,RB8存放接收到的第9位数据。方式0,不使用RB8方式1,SM2=0时,RB8是接收到的停止位。RI——接收中断标志位(6)TI——发送中断标志位TI=1表示一帧数据发送结束,可供软件查询,也可申请中断RI=1表示一帧数据接收结束,可供软件查询,也可申请中断硬件置1,软件清06.2串行口的4种工作方式2、特殊功能寄存器PCONSMOD:波特率倍增位。波特率∝2SMOD1、方式0:同步移位寄存器输入/输出方式,常用于外接移位寄存器,以扩展并行I/O口。8位数据为一帧,无起始位和停止位,低位在先,波特率为fosc/12。帧格式如下:方式0接收时序方式0发送时序总结:方式0,RXD为数据线---DATATXD为移位脉冲--CLKSCON000REN00TIRI2、方式1:8位异步收发,波特率可变10位数据为一帧,帧格式如下:方式1波特率=(2SMOD/32)×T1的溢出率发送过程:当CPU执行1条数据写SBUF,就启动发送,低位在先,数据一帧一帧发送,每发送完一帧数据,置TI为1,TI中断,通知CPU可以重写SBUF。接收过程:当CPU检测到起始位的负跳变时,则开始接收,接收完一帧数据后,置RI,RI中断,通知CPU可以取走SBUF数据了当一帧数据接收完毕以后,须同时满足以下2个条件,这次接收才真正有效。⑴RI=0,即上一帧数据已被取走,“接收SBUF”已空。⑵SM2=0或收到的停止位=1(方式1时,停止位已进入RB8),则将收到的数据装入SBUF和RB8,且置RI。若这两个条件不同时满足,收到的数据不能装入SBUF,丢弃。(串行口的结构中,输入移位寄存器,可以这样理解)方式1接收时序方式1发送时序3、方式2:9位异步收发,波特率为(2SMOD/64)×fosc固定2种11位数据为一帧,帧格式如下。可程控发送时:串行口能自动把TB8取出,并装入到D8位置,再逐一发送出去接收时:自动将D8取出,装入到RB8发送和接收原理过程与方式1同接收一帧完毕后,也须同时满足:(1)RI=0,接收SBUF为空。(2)SM2=0或RB8=1,接收到的数据帧才有效方式2接收时序方式2发送时序例1方式2发送在双机通讯中的应用。双机通讯:TB8作为奇偶校验位,数据写入SBUF之前,先将数据的奇偶校验位写入TB8,编写发送中断程序。PIPTI:PUSHPSWPUSHAccSETBRS1CLRRS0;假设用第2组工作寄存器CLRTI;软件清“0”MOVA,@R0MOVC,PMOVTB8,C;先将奇偶检验位送TB8MOVSBUF,A;后写SBUFINCR0;数据指针加1POPAccPOPPSWRETI例2方式2接收在双机通讯中的应用PIPRI:PUSHPSWPUSHAccSETBRS0;选择1组CLRRS1CLRRIMOVA,SBUF;收到数据送AMOVC,PJNCL1;C=0。跳L1JNBRB8,ERRAJMPNEXTL1:JBRB8,ERR;RB8=1,跳ERPNEXT:MOV@R0,AINCR0POPAccPOPPSWRETIERR:………;出错处理程序段RETI4、方式39位异步收发,波特率同方式2,除波特率外,方式3和方式2相同。6.3多机通讯的工作原理(理解)(1)从机初始化工作:允许串行中断,串口为方式2/3接收,且置SM2和REN(2)主机先将从机地址发送出去地址信息的TB8=1,各从机接收到的RB8=1且由于SM2=1,则置“1”RI,各从机响应中断。在中断程序中,判断主机送来的地址是否和本机地址相符合,若相符从机清SM2位;若不符,则保持SM2=1。(3)主机发送数据帧。数据帧TB8=0,此时各从机接收到的RB8=0,只有SM2=0的从机才能激活RI,故保证了主机和从机间通讯的正确性。工作过程如下:6.4波特率的制定方法串行口每秒钟发送/接收的位数。(b/s)波特率:波特率固定,fosc/12波特率=(2SMOD/32)×T1的溢出率方式1:方式0:方式2:方式3:波特率=(2SMOD/32)×T1的溢出率2SMOD/64或2SMOD/32T1每秒溢出的次数/1211256256osccyfysXTX初值初值次数次=(-)-∴方式1/3,波特率=23212(256)SMODoscfX∴可以根据已知波特率和fosc来计算T1的初值,常用波特率和初值X间的关系见课本表格需要注意2点:(1)当fosc=12MHz或6MHz时,初值X是个非整数,和表中值有一定误差。故往往调整fosc,eg,fosc=11.0592MHz(2)如果串行通讯选用很低的波特率,可将定时器T1设置为方式1。6.5编程和应用--双机通讯例1:串行口工作在方式1,甲机把从78H,77单元的内容为首地址,以76H,75H单元中内容减1为目地址的外部数据存储器中的数据块内容通过串行口向乙级发送。T1作为波特率发生器片内RAM中20H00H20H20H78H77H76H75H甲机乙机TXDRXD即要求甲机把外部RAM2000H~201FH中的数据块传给乙机fosc=6MHz,波特率2400b/s编写甲机发送程序和乙机接收程序.ORG0000HLJMPMAINORG0023HLJMPCOM_INTORG1000HMAIN:MOVSP,#60HMOV78H,#20HMOV77H,#00HMOV76H,#20HMOV75H,#20HACALLTRANSSJMP$甲机发送程序功能:甲机把外部RAM中2000H~201FH中的数据块传给乙机,先发地址帧,后发数据帧TRANS:MOVTMOD,#20HMOVTH1,#0F4HMOVTL1,#0F4HMOVPCON,#80HSETBTR1MOVSCON,#40HMOVIE,#00HCLRF0MOVSBUF,78HWAIT1:JNBTI,WAIT1CLRTIMOVSBUF,77HWAIT2:JNBTI,WAIT2CLRTIMOVSBUF,76HWAIT3:JNBTI,WAIT3CLRTIMOVSBUF,75HWAIT4:JNBTI,WAIT4CLRTIMOVIE,#90HMOVDPH,78HMOVDPL,77HMOVXA,@DPTRMOVSBUF,AWAIT:JNBF0,WAITRETCOM_INT:CLRTIINCDPTRMOVA,DPHCJNEA,76H,END1MOVA,DPLCJNEA,75H,END1SETBF0CLRESCLREARETIEND1:MOVXA,@DPTRMOVSBUF,ARETIEND乙机接收程序功能:接收地址放78h~75H单元,数据放外RAM78H,77H所指的首地址处,中断接收方式。ORG0000HLJMPMAINORG0023HLJMPCOM_INTORG1000HMAIN:MOVSP,#53HACALLRECEISJMP$RECEI:MOVR0,#78HMOVTMOD,#20HMOVTH1,#0FAHMOVTL1,#0FAHMOVPCON,#00HSETBTR1MOVSCON,#01010000BMOVIE,#90HCLRF0;F0:地址接收完毕标志CLR7FH;7FH位标志:数据接收完毕标志WAIT:JNB7FH,WAITRETCOM_INT:PUSHDPLPUSHDPHPUSHACCCLRRIJBF0,R_DATAMOVA,SBUFMOV@R0,ADECR0CJNER0,#74H,RETNSETBF0RETN:POPACCPOPDPHPOPDPLRETIR_DATA:MOVDPH,78HMOVDPL,77HMOVA,SBUFMOVX@DPTR,AINC77HMOVA,77HJNZEND2INC78HEND2:MOVA,76HCJNEA,78H,RETNMOVA,75HCJNEA,77H,RETNCLRESCLREASETB7FHSJMPRETNEND

1 / 30
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功