单片机原理及应用陈燕第7章串行口

上传人:cl****1 文档编号:585723615 上传时间:2024-09-03 格式:PPT 页数:83 大小:1.16MB
返回 下载 相关 举报
单片机原理及应用陈燕第7章串行口_第1页
第1页 / 共83页
单片机原理及应用陈燕第7章串行口_第2页
第2页 / 共83页
单片机原理及应用陈燕第7章串行口_第3页
第3页 / 共83页
单片机原理及应用陈燕第7章串行口_第4页
第4页 / 共83页
单片机原理及应用陈燕第7章串行口_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《单片机原理及应用陈燕第7章串行口》由会员分享,可在线阅读,更多相关《单片机原理及应用陈燕第7章串行口(83页珍藏版)》请在金锄头文库上搜索。

1、第7章AT89S51单片机的串行口1瞄淑链隅撮怪浮寡氯栖奄姬膘帐侠述宪工尹泽非兢惨搐咒磁偿滨沦誊荷骤单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口1内容概要内容概要n串行口的基本工作原理串行口的基本工作原理n与串行口有关的特殊功能寄存器与串行口有关的特殊功能寄存器n串行口的串行口的4种工作方式种工作方式n串行口多机通信的工作原理串行口多机通信的工作原理n双机串行通信的软件编程。双机串行通信的软件编程。串行口为串行口为全双工全双工的的通用异步收发通用异步收发(UART)。)。全双工全双工就就是两个单片机之间串行数据是两个单片机之间串行数据可同时双向传输可同时双向传输。异

2、步通信异步通信,就是收、发双方就是收、发双方使用各自的时钟使用各自的时钟控制发送和接收过程,这控制发送和接收过程,这样可样可省去省去收、发双方的收、发双方的一条同步时钟信号线一条同步时钟信号线,连接简单且,连接简单且易实现。易实现。兑室推合沧秆葫玲雕莎器债酮论艾辆刮弯扑岁窜衣题稚呕归缚透茄陷蛰铭单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口27.1串行口的结构串行口的结构内部结构如内部结构如图图7-1所示所示。有有两个物理上独立两个物理上独立的的接收、发送缓冲器接收、发送缓冲器SBUF(属于特殊(属于特殊功能寄存器),可同时发送、接收数据。功能寄存器),可同时发送、接

3、收数据。发送缓冲器发送缓冲器只能写入不能读出只能写入不能读出接收缓冲器接收缓冲器只能读出不能写入只能读出不能写入两个缓冲器两个缓冲器共用一个特殊功能寄存器字节地址共用一个特殊功能寄存器字节地址(99H)。)。控制寄存器共有两个:特殊功能寄存器控制寄存器共有两个:特殊功能寄存器SCON和和PCON。3蠢献纬晌尼辽购靶琐猫负戌攘坪购如沦藻斡洪耻移荣食鹊致煮硼模着让垢单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口3图图7-1串行口的内部结构图串行口的内部结构图4册宗竞萎摄渍壳怠嗣胜己现钵镐乞典扣仅伞芽马谭愈芦狱谈檀侦悠腔玻情单片机原理及应用(陈燕)第7章串行口单片机原理及应

4、用(陈燕)第7章串行口47.1.1串行口控制寄存器串行口控制寄存器SCON字节地址字节地址98H,可位寻址,可位寻址,位地址位地址为为98H9FH。格式。格式如如图图7-2所示所示。图图7-2串行口控制寄存器串行口控制寄存器SCON的格式的格式介绍介绍SCON中各位的功能。中各位的功能。(1)SM0、SM1串行口串行口4种工作方式选择种工作方式选择位位SM0、SM1两位编码所对应的两位编码所对应的4 4种工作方式种工作方式见见表表7-1。5坪烽扯锯睦葡普双泉炎吊安擞岸勒荷郭僳梧边娶吐墒估掏庶服冗骸吃府畸单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口5(2 2)SM2S

5、M2多机通信控制位多机通信控制位多机通信是在方式多机通信是在方式2和方式和方式3下进行。当下进行。当串口以方式串口以方式2或或方式方式3接收时接收时,如果如果SM2SM2= =1 1,则只有当,则只有当接收到的第接收到的第9位数据位数据(RB8)为为“1”时时,才使,才使RI置置“1”,产生中断请求,并将接,产生中断请求,并将接收到的前收到的前8位数据送入位数据送入SBUF。当当接收到的第接收到的第9 9位数据位数据(RB8RB8)为为“0”“0”时时,则将接收到,则将接收到的前的前8位数据丢弃。位数据丢弃。6抄黑姚绝舶赚掇聘会涅踊狗饥炬俏滤丸幌奋罗存裕跋馁嘛貉衫踌印或粟阶单片机原理及应用(陈

6、燕)第7章串行口单片机原理及应用(陈燕)第7章串行口6当当SM2=0时,则时,则不论第不论第9位数据是位数据是1还是还是0,都将前都将前8位位数据送入数据送入SBUF中,中,并使并使RI置置1,产生中断请求。产生中断请求。在在方式方式1时,如果时,如果SM2=1,则只有收到有效的停止位时,则只有收到有效的停止位时才会激活才会激活RI。在在方式方式0时,时,SM2必须为必须为0。(3)REN允许串行接收位。允许串行接收位。由软件置由软件置“1”或清或清“0”。REN=1,允许允许串行口接收数据。串行口接收数据。REN=0,禁止禁止串行口接收数据。串行口接收数据。7桃科喀草葛携看诡蔫昏郭星宋潜劫中

7、坷枷椽概馅茧镍泪咸绝钾介听条麦价单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口7(4)TB8发送的第发送的第9位数据位数据方式方式2和方式和方式3,TB8是要发送的第是要发送的第9位数据,其值由软件位数据,其值由软件置置“1”或清或清“0”。在。在双机串行通信双机串行通信时,一般作为时,一般作为奇偶校验位奇偶校验位使使用;在用;在多机串行通信多机串行通信中用来表示主机发送的是地址帧还是数中用来表示主机发送的是地址帧还是数据帧,据帧,TB8=1为为地址帧地址帧,TB8=0为为数据帧数据帧。(5)RB8接收的第接收的第9位数据位数据方式方式2和方式和方式3,RB8存放接收

8、到的存放接收到的第第9位位数据数据。在。在方式方式1,如如SM2=0,RB8是接收到的停止位。在是接收到的停止位。在方式方式0,不使用,不使用RB8。(6)TI发送中断标志位发送中断标志位方式方式0,串行发送的,串行发送的第第8位数据结束时位数据结束时TI由硬件置由硬件置“1”,在在其他方式其他方式中,串行口发送停止位的开始时置中,串行口发送停止位的开始时置TI为为“1”。TI=1,表示,表示一帧数据发送结束一帧数据发送结束。TI的状态可供软件查询,的状态可供软件查询,也可申请中断。也可申请中断。CPU响应中断后,在中断服务程序中向响应中断后,在中断服务程序中向SBUF写入要发送的下一帧数据。

9、写入要发送的下一帧数据。TI必须由软件清必须由软件清“0”。8涌违渔糖捧鬃散予馋矿梗讽籽犀靠挣坚圆赌膝往咳儒滇躇言萌掘爹擦重暗单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口8(7)RI接收中断标志位接收中断标志位方式方式0时,时,接收完第接收完第8位数据位数据时,时,RI由硬件置由硬件置“1”。在其他工。在其他工作方式中,串行接收到停止位时,该位置作方式中,串行接收到停止位时,该位置“1”。RI=1,表,表示一帧数据接收完毕,并申请中断,要求示一帧数据接收完毕,并申请中断,要求CPU从接收从接收SBUF取走数据。该位的状态也可供软件查询。取走数据。该位的状态也可供软件

10、查询。RI必须由必须由软件清软件清“0”。SCON的所有位都可进行位操作清的所有位都可进行位操作清“0”或置或置“1”。柑勺惋棒包轨野迢二屹锯棚穷昂啸人菊蹲缮蛊观而炕酗迷二供灰噪昨绣阐单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口97.1.2特殊功能寄存器特殊功能寄存器PCON字节地址字节地址为为87H,不能位寻址。格式如,不能位寻址。格式如图图7-3所示所示。10图图7-3特殊功能寄存器特殊功能寄存器PCON的格式的格式通用通用标标志位志位掉掉电电保持模式保持模式空空闲闲模式控制位模式控制位吱贱淬青戳到社父扩笔门吏激倍妓朝毡掠啦颇景镰户古晚振胖妥是嫂事具单片机原理及

11、应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口10下面介绍下面介绍PCON中各位功能。仅最高位中各位功能。仅最高位SMOD与串口有与串口有关,关,其他各位其他各位的功能已在的功能已在第第2章章的节电工作方式一节中作的节电工作方式一节中作过介绍。过介绍。SMOD:波特率选择位。波特率选择位。例如例如,方式,方式1的波特率计算公式为的波特率计算公式为方式方式1波特率波特率= 定时器定时器T1的溢出率的溢出率当当SMOD=1时,时,要比要比SMOD=0时的波特率加倍时的波特率加倍,所,所以也称以也称SMOD位为位为波特率倍增位波特率倍增位。11糊咎贿训胚晨栈确修眯姆嚷馏摇盼烃嘘咏碎厂奏

12、襟们赡星箕荫耽劲叭享衰单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口117.2串行口的串行口的4种工作方式种工作方式4种工作方式由特殊功能寄存器种工作方式由特殊功能寄存器SCON中中SM0、SM1位位定义,编码见定义,编码见表表7-1。7.2.1方式方式0方式方式0为为同步移位寄存器输入同步移位寄存器输入/输出方式输出方式。该方式并。该方式并不用不用于两个于两个AT89S51单片机之间的异步串行通信单片机之间的异步串行通信,而是,而是用于串用于串行口外接移位寄存器行口外接移位寄存器,扩展并行,扩展并行I/O口。口。8位数据为一帧,位数据为一帧,无无起始位起始位和和停止

13、位停止位,先发送或接收最,先发送或接收最低位。波特率固定,为低位。波特率固定,为fosc/12。帧格式如。帧格式如图图7-4所示所示。图图7-4方式方式0的帧格式的帧格式12诈陌澜扭迫烹凿遥瓜腑蜂碟沈锗袜话被张油中腋了铰崔丁都仍讯种庞狂霍单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口121方式方式0发送发送(1)方式)方式0发送过程发送过程当当CPU执行一条将数据执行一条将数据写入发送缓冲器写入发送缓冲器SBUF的指令的指令时,时,产生一个正脉冲产生一个正脉冲,串行口开始把,串行口开始把SBUF中的中的8位数据以位数据以fosc/12的的固定波特率固定波特率从从RXD

14、引脚串行输出,低位在先,引脚串行输出,低位在先,TXD引脚输出同步移位脉冲,引脚输出同步移位脉冲,发送完发送完8位数据,中断标志位数据,中断标志位位TI置置“1”。发送时序如发送时序如图图7-5所示所示。13图图7-5方式方式0发发送送时时序序得诬贤甸拟葫秽群位沛凝盼零揽丈耽衷见峭亦悠析货占蘸溪皆刊泻法察雪单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口13(2)方式)方式0发送应用举例发送应用举例图图7-6所示为方式所示为方式0发送的一个具体应用,发送的一个具体应用,通过串行口外通过串行口外接接8位位串行输入并行输出移位寄存器串行输入并行输出移位寄存器74LS164,

15、扩展扩展两个两个8位并行输出口位并行输出口的具体电路。的具体电路。方式方式0发送时,发送时,串行数据串行数据由由P3.0(RXD端)送出端)送出,移位移位脉冲脉冲由由P3.1(TXD端)送出端)送出。在移位脉冲的作用下,串行口发送缓冲器的数据逐位地在移位脉冲的作用下,串行口发送缓冲器的数据逐位地从从P3.0串行移入串行移入74LS164中。中。14聘租具始鲤耀杠芬维窟剩饲钒悼浑权漆饯猿栈俏宋撕詹尺鉴啦猎浦瞥帕佰单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口14图图7-6外接串入并出移位寄存器外接串入并出移位寄存器74LS164扩展的并行输扩展的并行输出口出口15闺埔话

16、戎藩脖酱亡跟冠免拭弘铝涉胃忙刽糖遇卞途垂该艳自撑涤挡幌撕账单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口152方式方式0接收接收(1)方式)方式0接收过程接收过程方式方式0接收,接收,REN为串行口为串行口允许接收控制位允许接收控制位,REN=0,禁止接收;,禁止接收;REN=1,允许接收。,允许接收。当向当向SCON寄存器寄存器写入控制字写入控制字(设置为方式(设置为方式0,并使,并使REN位置位置1,同时,同时RI=0)时,)时,产生一个正脉冲,串行口产生一个正脉冲,串行口开始接收数据。开始接收数据。引脚引脚RXD为数据输入端,为数据输入端,TXD为移位脉冲信号输

17、出端,为移位脉冲信号输出端,接收器以接收器以fosc/12的固定波特率的固定波特率采样采样RXD引脚的数据信息,引脚的数据信息,当当接收完接收完8位位数据时,中断标志数据时,中断标志RI置置1,表示一帧数据接收表示一帧数据接收完毕,可进行下一帧数据的接收,时序如完毕,可进行下一帧数据的接收,时序如图图7-7所示所示。16筋嘶诛缝怖歧至湖仟谬伪胆糟我灯搁谢旨器馈卤盆信顷占载嚣瘫授痉赤兽单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口16图图7-7方式方式0接收接收时时序序娟辆艾哄嗡惧炮戮安瞎淤够很署晾茄拼瀑严忻簧归椭准洁咱猪查虐材虑蝗单片机原理及应用(陈燕)第7章串行口单

18、片机原理及应用(陈燕)第7章串行口17(2)方式)方式0接收应用举例接收应用举例图图7-8为串行口为串行口外接两片外接两片8位并行输入串行输出的寄存器位并行输入串行输出的寄存器74LS165扩展两个扩展两个8位并行输入口的电路位并行输入口的电路。当当74LS165的的S/端由高到低跳变时,并行输入端的数端由高到低跳变时,并行输入端的数据被置入寄存器;据被置入寄存器;当当S/=1,且,且时钟禁止端(第时钟禁止端(第15脚)为脚)为低电平低电平时,时,允许允许TXD(P3.1)串行移位脉冲输入)串行移位脉冲输入,这时在移,这时在移位脉冲作用下,数据由右向左方向移动,以位脉冲作用下,数据由右向左方向

19、移动,以串行方式串行方式进入串进入串行口的接收缓冲器中。行口的接收缓冲器中。18挫粥窥肋讼抛膳阂谍丘蜜醉旗生票贞捏桑刘例曳曰拉幕斤椽愁断些醋教囱单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口1819图图7-8扩扩展展74LS165作作为为并行并行输输入口入口歧查头扯期追啼潦焕蠕差锑坍噶项势蹬踢茬奴腕磐姻烯蛇箭遗骆迸操版伶单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口19在在图图7-8中:中:TXD(P3.1)作为移位脉冲输出与所有)作为移位脉冲输出与所有75LS165的移位的移位脉冲输入端脉冲输入端CP相连;相连;RXD(P3.0)作为串行数

20、据输入端与)作为串行数据输入端与74LS165的串行的串行输出端输出端QH相连;相连;P1.0与与S/相连,用来控制相连,用来控制74LS165的的串行移位或并行输入;串行移位或并行输入;74LS165的的时钟禁止端时钟禁止端(第(第15脚)接地,表示允许时脚)接地,表示允许时钟输入。钟输入。当扩展多个当扩展多个8位输入口时,相邻两芯片的首尾(位输入口时,相邻两芯片的首尾(QH与与SIN)相连。)相连。20种纯祖恳行妆级徐经汰胚沛正冗所场陵幕纤瞅魂仿拦另聘贵奔讣蹦竣朵疡单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口20在方式在方式0,SCON中的中的TB8、RB8位没

21、有用到,位没有用到,发送或发送或接收完接收完8位数据由硬件使位数据由硬件使TI或或RI中断标志位置中断标志位置“1”,CPU响响应应TI或或RI中断,在中断服务程序中向发送中断,在中断服务程序中向发送SBUF中送入下中送入下一个要发送的数据或从接收一个要发送的数据或从接收SBUF中把接收到的中把接收到的1B存入内存入内部部RAM中。中。注意,注意,TI或或RI标志位必须由软件清标志位必须由软件清“0”,采用如下指令:,采用如下指令:CLRTI;TI位清位清“0”CLRRI;RI位清位清“0”方式方式0时,时,SM2位(多机通信控制位)必须为位(多机通信控制位)必须为0。21傈脱淘镑憋溢貌洁澎此

22、痰之贫呵钵苏挚稚镊矗咕汛撂酗蹭旅饶挡柏瘴悔尹单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口217.2.2方式方式1方式方式1为双机串行通信方式,如为双机串行通信方式,如图图7-9所示。所示。当当SM0、SM1=01时,串行口设为方式时,串行口设为方式1的双机串行通的双机串行通信。信。TXD脚和脚和RXD脚分别用于发送和接收数据。脚分别用于发送和接收数据。图图7-9方式方式1双机串行通信的连接电路双机串行通信的连接电路22导挟辊弟栓钙跨太狼玖抢兆疯励周挖埋伯蔬钳起视剁泄语掺貉快蕉治玫师单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口22方式方式1

23、一帧数据为一帧数据为10位位,1个起始位(个起始位(0),),8个数据位,个数据位,1个停止位(个停止位(1),),先发送或接收最低位。帧格式如先发送或接收最低位。帧格式如图图7-10所示所示。图图7-10方式方式1的帧格式的帧格式方式方式1为为波特率可变波特率可变的的8位异步通信接口。波特率由下式位异步通信接口。波特率由下式确定:确定:方式方式1波特率波特率= 定时器定时器T1的溢出率的溢出率式中,式中,SMOD为为PCON寄存器的最高位的值(寄存器的最高位的值(0或或1)。)。23举找酥伶写乡是郎之箔起均霉鲜态柿汾吩匣凭靠播蛙跌杏爬队男埂笔巍扁单片机原理及应用(陈燕)第7章串行口单片机原理

24、及应用(陈燕)第7章串行口231方式方式1发送发送方式方式1输出时,数据位由输出时,数据位由TXD端端输出,发送输出,发送一帧信息为一帧信息为10位位:1位起始位位起始位0,8位数据位(先低位)和位数据位(先低位)和1位停止位位停止位1。当当CPU执行一条数据写执行一条数据写SBUF的指令,就的指令,就启动发送启动发送。发送。发送时序见时序见图图7-11。图图7-11中中TX时钟时钟的频率就是发送的波特率。的频率就是发送的波特率。发送开始时发送开始时,内部发送控制信号,内部发送控制信号变为有效,将起变为有效,将起始位向始位向TXD脚(脚(P3.1)输出,此后每经过一个)输出,此后每经过一个TX

25、时钟周时钟周期,便产生一个移位脉冲,并由期,便产生一个移位脉冲,并由TXD引脚输出一个数据位。引脚输出一个数据位。8位数据位全部发送完毕后位数据位全部发送完毕后,中断标志位,中断标志位TI置置1。24攀痞贵蛇擎投尉格打砂强忿脆茧弓拍幻募波眺域稳虾网喜荐框创瑚衷丘朗单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口24图图7-11方式方式1发送时序发送时序25仿掌绪悉躲哄畦翌漳抓熊叭航碑弹溅量故嚼刁考芜饶上铂瘸颐芍揭迪愚浴单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口252 2方式方式1 1接收接收方式方式1 1接收时(接收时(RENREN= =1

26、 1),数据从),数据从RXDRXD(P3.0P3.0)引脚输入。)引脚输入。当当检测到起始位的检测到起始位的负跳变负跳变,则,则开始接收开始接收。接收时序见。接收时序见图图7-7-1212。接收时,定时控制信号有接收时,定时控制信号有两种两种,一种一种是是接收移位时钟接收移位时钟(RXRX时钟),它的频率和传送的波特率相同,时钟),它的频率和传送的波特率相同,另一种另一种是是位位检测器采样脉冲检测器采样脉冲,频率是频率是RXRX时钟的时钟的1616倍倍。以波特率的。以波特率的1616倍倍速率采样速率采样RXDRXD脚状态。脚状态。当采样到当采样到RXDRXD端从端从1 1到到0 0的负跳变时

27、就的负跳变时就启动检测器启动检测器,接收的值是接收的值是3 3次次连续采样(第连续采样(第7 7、8 8、9 9个脉冲个脉冲时采样)取时采样)取两次相同两次相同的值的值,以确认起始位(负跳变)的开,以确认起始位(负跳变)的开始,较好地消除干扰引起的影响。始,较好地消除干扰引起的影响。26镜环徘泌公室恿畜试病女辅诉踌奋足跨寂称洲伞宙酞恕谈牙泅碌按企坚磊单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口26图图7-12方式方式1接收时序接收时序27当确当确认认起始位有效起始位有效时时,开始接收开始接收一一帧帧信息。每一位数据,也信息。每一位数据,也都都进进行行3次次连续连续采

28、采样样(第(第7、8、9个脉冲采个脉冲采样样),接收的),接收的值值是是3次采次采样样中至少中至少两次相同的两次相同的值值。当一。当一帧帧数据数据接收完接收完毕毕后后,同同时时满满足以下两个条件足以下两个条件,接收才有效。,接收才有效。傣淡比虾乔居诽矩蜘躇修锻哗眶穴靳橇褥终旨抡桶坯痹邀拥峭刑瓦漾濒佬单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口27(1)RI=0,即上一帧数据接收完成时,即上一帧数据接收完成时,RI=1发出的中发出的中断请求已被响应,断请求已被响应,SBUF中的数据已被取走,中的数据已被取走,说明说明“接收接收SBUF”已空。已空。(2)SM2=0或收

29、到的停止位或收到的停止位=1(方式(方式1时,停止位已时,停止位已进入进入RB8),则将接收到的数据装入),则将接收到的数据装入SBUF和和RB8(装入(装入的是停止位),且中断标志的是停止位),且中断标志RI置置“1”。若不同时满足两个条件,收的数据不能装入若不同时满足两个条件,收的数据不能装入SBUF,该帧,该帧数据将丢弃。数据将丢弃。28采震艺扇挫路轧彰差濒番浆女布挞棺捣传植嘶轿踌爸歧屯拥延践愁笺牧太单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口287.2.3方式方式2方式方式2和方式和方式3,为,为9位异步通信接口。位异步通信接口。每帧数据为每帧数据为11位位

30、,1位起始位位起始位0,8位数据位(先低位),位数据位(先低位),1位可程控为位可程控为1或或0的第的第9位数据和位数据和1位停止位位停止位。方式。方式2、方式、方式3帧格式如帧格式如图图7-13所示所示。图图7-13方式方式2、方式、方式3的帧格式的帧格式方式方式2波特率波特率=fosc29启脆宇矿甸沏庇袋墙品担唾园爱引锡晓宫麦阴场厂棕栽汤创咸仔敌五懈爱单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口291方式方式2发送发送发送前,发送前,先根据通信协议由软件设置先根据通信协议由软件设置TB8(如奇偶校验(如奇偶校验位或多机通信的地址位或多机通信的地址/数据标志位),

31、然后将要发送的数据数据标志位),然后将要发送的数据写入写入SBUF,即启动发送。,即启动发送。TB8自动装入自动装入第第9位数据位,逐位数据位,逐一发送。发送完毕,使一发送。发送完毕,使TI位置位置“1”。发送时序如发送时序如图图7-14所示。所示。图图7-14方式方式2和方式和方式3发送时序发送时序30白预箕匿赁冬锗冉雇劣诱妇颁柞船筹傍财梭轰雅维捡峭铀美型菏举白罢强单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口30【例【例7-1】方式方式2发送在发送在双机串行通信双机串行通信中的应用中的应用下面的发送中断服务程序,以下面的发送中断服务程序,以TB8作为作为奇偶校验位

32、奇偶校验位,偶校验偶校验发送发送。数据写入。数据写入SBUF之前,之前,先将数据的偶校验位写入先将数据的偶校验位写入TB8(设第(设第2组的工作寄存器区的组的工作寄存器区的R0作为发送数据区地址指针)。作为发送数据区地址指针)。PIPTI: PUSHPSW;现场保护;现场保护PUSHAccSETBRS1;选择第;选择第2组工作寄存器区组工作寄存器区CLRRS0CLRTI;发送中断标志清;发送中断标志清“0”MOVA,R0;取数据;取数据MOVC,P;校验位送;校验位送TB8,采用偶校验采用偶校验MOVTB8,C;P=1,校验位,校验位TB8=1,P=0,校验,校验;位位TB8=031瓶础嵌让搞

33、滔熄隘敌策设耙受癌疫毯鲜泣妥肄勋传舞杉球滦螟遂钾禁秆恼单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口31MOVSBUF,A;A数据发送,同时发数据发送,同时发TB8INCR0;数据指针加;数据指针加1POP Acc;恢复现场;恢复现场POP PSWRETI;中断返回;中断返回32浊搪钮涝汕幸术析租凝复像午十滚吕窃蠢布斡瘤咬串肚猩资耙诫神情亢诲单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口322方式方式2接收接收SM0、SM1=10,且,且REN=1时,以方式时,以方式2接收数据。接收数据。数据由数据由RXD端端输入,接收输入,接收11位信息。

34、当位检测逻辑采样到位信息。当位检测逻辑采样到RXD的的负跳变负跳变,判断起始位有效,便开始接收一帧信息。,判断起始位有效,便开始接收一帧信息。在接收完第在接收完第9位数据后,位数据后,需满足以下两个条件,需满足以下两个条件,才能将接才能将接收到的数据送入收到的数据送入SBUF(接收缓冲器)。(接收缓冲器)。(1)RI=0,意味着接收缓冲器为空。,意味着接收缓冲器为空。(2)SM2=0或接收到的第或接收到的第9位数据位位数据位RB8=1。33钓弘稿粹否兵沧隶担冲亦橱臀单圣烟钓鸽涟鬼对敲混贰虫悯畦程辛卞千杯单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口33当当满足上述两个

35、条件满足上述两个条件时,时,收到的数据送收到的数据送SBUF(接收缓(接收缓冲器),第冲器),第9位数据送入位数据送入RB8,且,且RI置置“1”。若不满足这两若不满足这两个条件个条件,接收的信息将被丢弃。,接收的信息将被丢弃。串行口方式串行口方式2和方式和方式3接收时序接收时序如如图图7-15所示所示。图图7-15方式方式2和方式和方式3接收时序接收时序34治摘仙意蛀偶戒挖裙碱政姬缚顺塔侗犬窜弗扰坪磨抓瞒袋冬滞宣扼犹瓦包单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口34【例【例7-2】方式方式2接收在接收在双机通信双机通信中的应用。中的应用。本例对本例对例例7-1发

36、送的数据进行发送的数据进行偶校验接收偶校验接收,程序如下,程序如下(设(设1组寄存器区的组寄存器区的R0为数据缓冲区指针)。为数据缓冲区指针)。PIRI:PUSHPSW;保护现场;保护现场PUSHAccSETBRS0 ;选择;选择1组寄存器区组寄存器区CLRRS1CLRRIMOVA,SBUF;将接收到数据送到累加器;将接收到数据送到累加器AMOVC,P;接收到数据字节的奇偶性送入;接收到数据字节的奇偶性送入C位位35厦瞬全涝渗罐煤朝诣蹭啸府疆吕动肾阂痕亢饥欺芒汞敏湘驱羌剁涤烟骚肯单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口35JNCL1;C=0,收的字节,收的字节1

37、的个数为偶数,跳的个数为偶数,跳L1处处JNBRB8,ERP;C=1,再判,再判RB8=0?如?如RB8=0,则,则;出错,跳;出错,跳ERP出错处理出错处理AJMPL2;C=1,RB8=1,收的数据正确,跳,收的数据正确,跳L2处处L1:JBRB8,ERP;C=0,再判,再判RB8=1?如?如RB8=1,;则出错,跳;则出错,跳ERP出错处理出错处理L2:MOVR0,A;C=0,RB8=0或或C=1,RB8=1,;接收数据正确,存入数据缓冲区;接收数据正确,存入数据缓冲区INCR0;数据缓冲区指针增;数据缓冲区指针增1,为下次接收做准备,为下次接收做准备POP Acc;恢复现场;恢复现场PO

38、P PSWERP:;出错处理程序段入口;出错处理程序段入口RETI36焕葵八腺力党拼猿首徘妻箭鞠蔑礼啃过王窝伊帧庞蝶辐赊膝琵哲捌茄柱坟单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口367.2.4方式方式3SM0、SM1=11时,方式时,方式3。为波。为波特率可变的特率可变的9位异步通位异步通信信方式,方式,除了波特率外,方式除了波特率外,方式3和方式和方式2相同相同。方式。方式3发送发送和接收时序和接收时序如如图图7-11和和图图7-12所示。所示。方式方式3波特率波特率= 定时器定时器T1的溢出率的溢出率37溯肿芒蜡坛琳搓亚荚歌部指博用粤荆喧蚁字纶管嚼拍亩撇溉倘穆虽

39、排郸姑单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口377.3多机通信多机通信多个单片机可利用串行口进行多机通信,经常采用如多个单片机可利用串行口进行多机通信,经常采用如图图7-16所示的所示的主从式结构主从式结构。系统中有。系统中有1个主机(单片机或其个主机(单片机或其他有串行接口的微机)和多个单片机组成的从机系统。他有串行接口的微机)和多个单片机组成的从机系统。主主机的机的RXD与所有从机的与所有从机的TXD端相连端相连,TXD与所有从机的与所有从机的RXD端相连端相连。从机地址从机地址分别为分别为01H、02H和和03H。图图7-16多机通信系统示意图多机通信系

40、统示意图38腥捅樟楞迟派踪锑禽绣碟记料泻厂卤奎墨闪即舷浆萤茎榜邢寡蛤纯蜕女散单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口38主从式主从式是指多机系统中,只有一个主机,其余全是从机。是指多机系统中,只有一个主机,其余全是从机。主机主机发送的信息可以发送的信息可以被所有从机接收被所有从机接收,任何一个从机发送的任何一个从机发送的信息,只能由信息,只能由主机主机接收。从机和从机之间接收。从机和从机之间不能进行直接通信,不能进行直接通信,只能经主机只能经主机才能实现。才能实现。多机通信的工作原理:多机通信的工作原理:要保证要保证主机主机与与所选择的从机所选择的从机通信,须保

41、证通信,须保证串口有识别功串口有识别功能能。SCON中的中的SM2位位就是为满足这一条件设置的就是为满足这一条件设置的多机通信多机通信控制位控制位。其工作原理是在串行口以方式。其工作原理是在串行口以方式2(或方式(或方式3)接收时,)接收时,若若SM2=1,则表示进行多机通信,可能以下,则表示进行多机通信,可能以下两种情况两种情况:39德薄促狈节辙炔牧撮旱糊阵屋翱闰受揖仔泵郧阎弟浦锅衅艰忧童蜡何倾晌单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口39(1)从机接收到的主机发来的)从机接收到的主机发来的第第9位数据位数据RB8=1时,时,前前8位位数据才装入数据才装入SB

42、UF,并,并置中断标志置中断标志RI=1,向,向CPU发出中发出中断请求。断请求。在中断服务程序中,从机把接收到的在中断服务程序中,从机把接收到的SBUF中的数据存入数中的数据存入数据缓冲区中。据缓冲区中。(2)如果从机接收到的第)如果从机接收到的第9位数据位数据RB8=0时,则时,则不产生中断不产生中断标志标志RI=1,不引起中断不引起中断,从机,从机不接收主机发来的数据不接收主机发来的数据。若若SM2=0,则接收的第,则接收的第9位数据不论是位数据不论是0还是还是1,从机都将,从机都将产生产生RI=1中断标志,接收到的数据装入中断标志,接收到的数据装入SBUF中。中。荫肪拆滦厩炙咎漆陕拈聋

43、奇惦侧了泽殿泽苦合概涸眼扩饶酮匝遵皇饭想橱单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口40应用这一特性,可实现应用这一特性,可实现AT89S51单片机的多机通信。单片机的多机通信。多机多机通信的工作过程:通信的工作过程:(1)各各从机从机初始化程序初始化程序允许从机的串行口中断,将串行口允许从机的串行口中断,将串行口编程为方式编程为方式2或方式或方式3接收,即接收,即9位异步通信方式,且位异步通信方式,且SM2和和REN位位置置“1”,使从机处于多机通信且使从机处于多机通信且只接收地址帧只接收地址帧的状态。的状态。(2)在在主机和某个从机通信之前主机和某个从机通信之

44、前,先将从机地址(即准备先将从机地址(即准备接收数据的从机)发送给各个从机接收数据的从机)发送给各个从机,接着才传送数据(或命,接着才传送数据(或命令),主机发出的令),主机发出的地址帧信息的第地址帧信息的第9位为位为1,数据(或命令)数据(或命令)帧的第帧的第9位为位为0。当主机向各从机发送地址帧时,各从机的串。当主机向各从机发送地址帧时,各从机的串行口接收到的第行口接收到的第9位信息位信息RB8为为1,且由,且由于各从机的各从机的SM2=1,则则RI置置“1”,各从机各从机响应中断响应中断,在中断服务子程序中,在中断服务子程序中,判断主判断主机送来的地址是否和本机地址相符合,若为本机地址,

45、则该机送来的地址是否和本机地址相符合,若为本机地址,则该从机从机SM2位清位清“0”,准备接收主机的数据或命令;若准备接收主机的数据或命令;若地址不相地址不相符符,则,则保持保持SM2=1。41站暇服昏荫裤呀疾卡拇砌嗡骑呆词鞋者烁哮挽吃裕挨棘学逞飞裕评温忧是单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口41(3)接着主机发送数据(或命令)帧,数据帧的第接着主机发送数据(或命令)帧,数据帧的第9位位为为0。此时各从机接收到的。此时各从机接收到的RB8=0。只有与前面只有与前面地址相符合地址相符合的从机(即的从机(即SM2位已清位已清“0”的从的从机)才能机)才能激活中断

46、标志位激活中断标志位RI,从而进入中断服务程序,接,从而进入中断服务程序,接收主机发来的数据(或命令);收主机发来的数据(或命令);与主机发来的与主机发来的地址不相符地址不相符的从机,由于的从机,由于SM2保持为保持为1,又又RB8=0,因此,因此不能激活中断标志不能激活中断标志RI,就不能接受主机,就不能接受主机发来的数据帧。从而保证发来的数据帧。从而保证主机与从机间通信的正确性主机与从机间通信的正确性。此。此时主机与建立联系的从机已经设置为单机通信模式,即在时主机与建立联系的从机已经设置为单机通信模式,即在整个通信中,通信的双方都要保持发送数据的第整个通信中,通信的双方都要保持发送数据的第

47、9位(即位(即TB8位)为位)为0,防止其他的从机误接收数据。,防止其他的从机误接收数据。42焙习铅捞戒础租裂凝饱窘障袜淌纺遭酉卒函年售锻谨表远仰沮叉交励钧稽单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口42(4)结束数据通信并为下一次的多机通信做好准备。)结束数据通信并为下一次的多机通信做好准备。在多在多机系统,机系统,每个从机都被赋予唯一的地址。每个从机都被赋予唯一的地址。例如,例如,图图7-16三三个从机的地址可设为:个从机的地址可设为:01H、02H、03H。还要还要预留预留12个个“广播地址广播地址”,它是所有从机共有的地址,它是所有从机共有的地址,例如将例

48、如将“广播地址广播地址”设为设为00H。当主机与从机的数据当主机与从机的数据通信结通信结束后束后,一定要将从机,一定要将从机再设置为多机通信模式再设置为多机通信模式,以便进行下以便进行下一次的多机通信。这时要求与主机正在进行数据传输的从一次的多机通信。这时要求与主机正在进行数据传输的从机必须随时注意,机必须随时注意,一旦接收的数据第一旦接收的数据第9位(位(RB8)为)为“1”,说明主机传送的不再是数据,而是地址,这个地址就有说明主机传送的不再是数据,而是地址,这个地址就有可可能是能是“广播地址广播地址”。当当收到收到“广播地址广播地址”后后,便将从机的通信模式再设置成多机模,便将从机的通信模

49、式再设置成多机模式,为下一次的多机通信做好准备。式,为下一次的多机通信做好准备。茅家凄畸尝皮挞友葵拨添周选曲摸饲伎辨俭霹抽棒怔泛呸宇廷羔脆苏忱陋单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口437.4波特率的制定方法波特率的制定方法串行通信,收、发双方发送或接收的串行通信,收、发双方发送或接收的波特率必须一致。波特率必须一致。4种工作方式。种工作方式。方方式式0和方式和方式2的波特率是的波特率是固定固定的;的;方式方式1和方式和方式3的波特率是的波特率是可变的可变的,由,由T1溢出率溢出率确定。确定。7.4.1波特率的定义波特率的定义波特率的定义:波特率的定义:串行口

50、串行口每秒发送(或接收)的位数每秒发送(或接收)的位数。设。设发送一位所需要的时间为发送一位所需要的时间为T,则波特率为,则波特率为1/T。定时器的不同工作方式,得到的波特率的范围不一样,定时器的不同工作方式,得到的波特率的范围不一样,这是由这是由T1在在不同工作方式下不同工作方式下计数位数的不同计数位数的不同所决定。所决定。44锨葱袜好鹿挎低额婶霹泞郊粮笼唾零匠述幸卜姿联箍锐簇惶览陵愁蚕购锐单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口447.4.2定时器定时器T1产生波特率的计算产生波特率的计算和和串行口的工作方式有关串行口的工作方式有关。(1)方式方式0时,波特

51、率时,波特率固定为时钟频率固定为时钟频率fosc的的1/12,不受,不受SMOD位值的影响。若位值的影响。若fosc=12MHz,波特率为,波特率为1Mbit/s。(2)方式方式2时,波特率仅与时,波特率仅与SMOD位的值有关。位的值有关。方式方式2波特率波特率= fosc若若fosc=12MHz:SMOD=0,波特率,波特率=187.5kbit/s;SMOD=1,波特率,波特率为为375kbit/s。45燕盔瞎艾呀枝贫搏芍盈见箕昔妖轮奏邑涸脏拆瓢涩久格晰燕客朋榔饿沥矢单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口45(3)方式)方式1或方式或方式3定定时,常用时,常

52、用T1作为波特率发生器,其作为波特率发生器,其关系式为关系式为波特率波特率= 定时器定时器T1的溢出率的溢出率(7-1)由式(由式(7-1)见,)见,T1溢出率溢出率和和SMOD的值的值共同决定波特率共同决定波特率。在在实际设定波特率时实际设定波特率时,T1常设置为方式常设置为方式2定时(自动装初值)定时(自动装初值),即,即TL1作为作为8位计数器,位计数器,TH1存放备用初值。这种方式操作存放备用初值。这种方式操作方便,也避免方便,也避免因软件重装初值因软件重装初值带来的带来的定时误差定时误差。设定时器设定时器T1方式方式2的初值为的初值为X,则有,则有定时器定时器T1的溢出率的溢出率=

53、(7-2)46脊更盅伏膜钳集膳庶感叹侥迸狄寞酪呐蝎斗痈误读优聘祥固携毗诊兆具旅单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口46将将式(式(7-2)代入代入式(式(7-1),),则有则有波特率波特率=(7-3)由式(由式(7-3)可见,)可见,波特率波特率随随fosc、SMOD和初值和初值X而变化。而变化。实际使用时,经常根据实际使用时,经常根据已知波特率和时钟频率已知波特率和时钟频率fosc来来计算计算T1的初值的初值X。为避免繁杂的初值计算,。为避免繁杂的初值计算,常用的波特率和初值常用的波特率和初值X间间的关系常列成的关系常列成表表7-2的的形式形式,以供查用。

54、,以供查用。47颧束窖股滁宛迭霓氧玩扎塘翼房冀萤漓添哇怨澎攫泪寅交屯凿逻窘逞仅店单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口47表表7-2 用定时器用定时器T1产生的常用波特率产生的常用波特率48波 特 率foscSMOD位方式初值X62.5kbit/s12 MHz12FFH19.2kbit/s11.0592 MHz12FDH9.6kbit/s11.0592 MHz02FDH4.8kbit/s11.0592 MHz02FAH2.4kbit/s11.0592 MHz02F4H1.2kbit/s11.0592 MHz02E8H侈亮衡源滋釜邱毡侄阿魄垛溅辽牌哲素顽盒塑居檬

55、牧承决篇垣羔缅撞刮首单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口48对对表表7-2有两点需要注意:有两点需要注意:(1)在使用的时钟振荡频率)在使用的时钟振荡频率fosc为为12MHz或或6MHz时,时,将初值将初值X和和fosc带入式(带入式(7-3)中计算出的波特率)中计算出的波特率有一定误差有一定误差。消除误差可采用消除误差可采用时钟频率时钟频率11.0592MHz。(2)如果选用)如果选用很低的波特率很低的波特率,如波特率选为,如波特率选为55,可将,可将定时器定时器T1设置为方式设置为方式1定时。但在这种情况下,定时。但在这种情况下,T1溢出时,溢出时,需

56、在中断服务程序中重新装入初值。中断响应时间和执行需在中断服务程序中重新装入初值。中断响应时间和执行指令时间会使波特率产生一定的误差,可用改变初值的方指令时间会使波特率产生一定的误差,可用改变初值的方法加以调整。法加以调整。49浦俐闯运琶桑枣服助曹杨椭睛貉男眶姻御诈刊砖朴鲁午毗辜溃湾疡圈掌眨单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口49【例【例7-3】若时钟频率为若时钟频率为11.0592MHz,选用选用T1的的方式方式2定定时时作为波特率发生器,作为波特率发生器,波特率为波特率为2400bit/s,求初值。,求初值。设设T1为方式为方式2定时,选定时,选SMOD=

57、0。将已知条件带入将已知条件带入式(式(7-3)中中波特率波特率=2400从中解得从中解得X=244=F4H。只要把只要把F4H装入装入TH1和和TL1,则,则T1产生的波特率为产生的波特率为2400bit/s。该结果也可直接从。该结果也可直接从表表7-2中查到。中查到。这里时钟振荡频率选为这里时钟振荡频率选为11.0592MHz,就可使就可使初值为整数初值为整数,从而产生精确的波特率。从而产生精确的波特率。50骤丁腋搀砌疏撼幢谎紫邯蔑矾敞吕缸对沏辫蛹粤拖奎罗退稳廊误痪砚二赖单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口507.5串行口的应用串行口的应用利用串行口可实

58、现单片机间的利用串行口可实现单片机间的点对点串行通信点对点串行通信、多机通多机通信信以及以及单片机与单片机与PC机间机间的单机或多机通信。限于篇幅,的单机或多机通信。限于篇幅,本节仅介绍单片机间的本节仅介绍单片机间的双机串行通信双机串行通信的接口和软件设计。的接口和软件设计。7.5.1双机串行通信的硬件连接双机串行通信的硬件连接AT89S51串行口的输入、输出均为串行口的输入、输出均为TTL电平电平。抗干扰性抗干扰性差,传输距离短,传输速率低。差,传输距离短,传输速率低。为提高串行通信的可靠性,为提高串行通信的可靠性,增大增大串行通信的距离和提高传输速率串行通信的距离和提高传输速率,都采用,都

59、采用标准标准串行接串行接口口,如,如RS-232、RS-422A、RS-485等。等。根据通信距离和抗干扰性要求,可选择根据通信距离和抗干扰性要求,可选择TTL电平传输、电平传输、RS-232C、RS-422A、RS-485串口串口进行串行数据传输。进行串行数据传输。51帅茹善狄柔趋君鲁耸舰旗跺厢铃粘带昭芯捐甭挤湘扬慕臆板逝鼠则赠智热单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口511TTL电平通信接口电平通信接口如果两个单片机如果两个单片机相距在相距在1.5m之内,它们的串行口可之内,它们的串行口可直接相直接相连连,接口如,接口如图图7-9所示所示。甲机。甲机RXD

60、与乙机与乙机TXD端相连,乙机端相连,乙机RXD与甲机与甲机TXD端相连。端相连。52七嘴懂续傈汤叭扎董壹菲河银佬穴旷赡栋燕典楔坚丝椅贮巷啪拱渴锥涂晨单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口522RS-232C双机通信接口双机通信接口如果双机通信如果双机通信距离在距离在1.515m之间时,可用之间时,可用RS-232C标准标准接口接口实现点对点的双机通信,接口如实现点对点的双机通信,接口如图图7-17所示所示。图图7-17的的MAX232A是美国是美国MAXIM(美信)公司生产的(美信)公司生产的RS-232C双工双工发送器发送器/接收器电路芯片。接收器电路芯片

61、。53图图7-17RS-232C双机通信接口双机通信接口电电路路爸袭巨三泻凭冲声滑主迄耘谚蜘葱俯奶句哎嗜敌臣疯咯太镣唱千势钾艘医单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口533RS-422A双机通信接口双机通信接口RS-232C有有明显缺点明显缺点:传输速率低、通信距离短、接口传输速率低、通信距离短、接口处信号容易产生串扰处信号容易产生串扰等。国际上又推出了等。国际上又推出了RS-422A标准。标准。与与RS-232C的的主要区别主要区别是,是,收发双方的信号地收发双方的信号地不再共地不再共地,RS-422A采用了采用了平衡驱动平衡驱动和和差分接收差分接收的方法。

62、用于数据传的方法。用于数据传输的是输的是两条平衡导线两条平衡导线,这相当于两个单端驱动器。,这相当于两个单端驱动器。RS-422A能在能在长距离、高速率长距离、高速率下传输数据。它的下传输数据。它的最大传最大传输率为输率为10Mbit/s,电缆允许,电缆允许长度为长度为12m,如果,如果采用较低传采用较低传输速率时输速率时,最大传输距离最大传输距离可达可达1219m。54庆塑烘聪爱矛持矣谗膨荚究丁纹梭滋坐大啥苟一哑勋愁鞘奉隙挨旅酶奏犀单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口544RS-485双机通信接口双机通信接口RS-422A双机通信双机通信需四芯传输线需四芯

63、传输线,这对长距离通信很,这对长距离通信很不经济,故在工业现场,通常采用不经济,故在工业现场,通常采用双绞线传输的双绞线传输的RS-485串行通信接口串行通信接口,很容易实现多机通信。,很容易实现多机通信。RS-485是是RS-422A的变型,它的变型,它与与RS-422A的区别的区别:RS-422A为全双工为全双工,采用两对平衡差分信号线;,采用两对平衡差分信号线;RS-485为半双工为半双工,采用,采用一对平衡差分信号线一对平衡差分信号线。RS-485对于多站互连是十分方便的对于多站互连是十分方便的,很容易实现多机,很容易实现多机通信。通信。RS-485允许最多允许最多并联并联32台驱动器

64、和台驱动器和32台接收器台接收器。图图7-19为为RS-485通信接口电路。与通信接口电路。与RS-422A一样,最大一样,最大传输距离约为传输距离约为1219m,最大传输速率为最大传输速率为10Mbit/s。55洱氮慢灶私埃铁氓赠懈睡嚏支拦妄寒娩柜铸沮琶滴埂夹邮饯栽馈慌灯戚炽单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口5556图图7-19RS-485双机通信接口双机通信接口电电路路柴毗誊缠浅汤暗柠枉窘傻郭欢曝寅濒簧撩驴瞎厩骡雪爪冶瘦魂诧蓉滔参驰单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口567.5.2 7.5.2 串行通信设计需要考虑的

65、问题串行通信设计需要考虑的问题单片机的串行通信接口设计时,单片机的串行通信接口设计时,需考虑如下问题需考虑如下问题。(1 1)首先确定通信双方的)首先确定通信双方的数据传输速率数据传输速率。(2 2)由数据传输速率)由数据传输速率确定采用的串行通信接口确定采用的串行通信接口标准。标准。(3)在通信接口标准允许的范围内)在通信接口标准允许的范围内确定通信的波特率确定通信的波特率。为。为减小波特率的误差,通常减小波特率的误差,通常选用选用11.0592MHz的晶振频率。的晶振频率。(4)根据任务需要,确定收发双方使用的)根据任务需要,确定收发双方使用的通信协议通信协议。(5)通信线的选择通信线的选

66、择,这是要考虑的一个很重要的因素。通,这是要考虑的一个很重要的因素。通信线一般信线一般选用选用双绞线双绞线较好较好,并根据传输的距离选择纤芯的直,并根据传输的距离选择纤芯的直径。如果空间的干扰较多,还要选择带有屏蔽层的双绞线。径。如果空间的干扰较多,还要选择带有屏蔽层的双绞线。(6)通信协议确定后,进行通信)通信协议确定后,进行通信软件编程软件编程,请见下面介绍。,请见下面介绍。57额必席萌但辗卧创寡提磺刃举误杉隔斤拧迸恒朔陌翼肠孟涸纹芥冈覆口橡单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口577.5.3双机串行通信软件编程双机串行通信软件编程串行口的串行口的方式方式

67、13是是用于串行通信用于串行通信的,下面介绍双机串的,下面介绍双机串行通信软件编程。行通信软件编程。应当说明的是,下面介绍的双机串行通信的编程实际上应当说明的是,下面介绍的双机串行通信的编程实际上与上面介绍的各种串行标准的硬件接口电路无关,因为采与上面介绍的各种串行标准的硬件接口电路无关,因为采用不同的标准串行通信接口仅仅是由双机串行通信距离、用不同的标准串行通信接口仅仅是由双机串行通信距离、传输速率以及抗干扰性能来决定的。传输速率以及抗干扰性能来决定的。58预曾蔼娥耿唉运收拟凯鞭带撵舷定鸡吝喉援材角肩亢谚舆梳高懈渣脸歼石单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口

68、581串行口方式串行口方式1应用编程应用编程【例【例7-4】采用采用方式方式1进行双机串行通信,收、发双方均采进行双机串行通信,收、发双方均采用用6MHz晶振晶振,波特率为,波特率为2400bit/s,一帧信息为一帧信息为10位位,发送方把以发送方把以78H、77H单元的内容单元的内容为为首地址首地址,以,以76H、75H单元内容减单元内容减1为为末地址末地址的数据块通过串口发送给收方。的数据块通过串口发送给收方。发送方要发送的发送方要发送的数据块数据块的地址为的地址为2000H201FH。先发地址。先发地址帧,再发数据帧;接收方在接收时帧,再发数据帧;接收方在接收时使用一个标志位使用一个标志

69、位来来区分区分接收的是地址还是数据,然后将其分别存放到指定的单元接收的是地址还是数据,然后将其分别存放到指定的单元中。中。发送方发送方可可采用采用查询方式查询方式或或中断方式中断方式发送数据,发送数据,接收方接收方可可采用采用中断或查询方式接收中断或查询方式接收。及膛织赶连助些唆薪里打始德溶俘谚荐崎轨寂聊口哺婴阻完咱兹萌黑抛妓单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口59(1)甲机发送程序)甲机发送程序中断方式中断方式的发送程序如下:的发送程序如下:ORG0000H;程序初始入口;程序初始入口LJMP MAINORG0023H;串行中断入口;串行中断入口LJMP

70、COM_INTORG1000HMAIN:MOVSP,#53H;设置堆栈指针;设置堆栈指针MOV78H,#20H;设发送的数据块首、末地址;设发送的数据块首、末地址MOV77H,#00HMOV76H,#20HMOV75H,#40HACALLTRANS;调用发送子程序;调用发送子程序HERE:SJMP HERE淮术啮盛埃挎搂贵秘赡功燕宅混赔因产金三魔跺硝狗灼放爹狰付奎制绅媒单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口60TRANS:MOVTMOD,#20H;设置定时器;设置定时器/计数器工作方式计数器工作方式MOVTH1,#0F3H;设置计数器初值;设置计数器初值MOV

71、TL1,#0F3HMOVPCON,#80H;波特率加倍;波特率加倍SETB TR1;接通计数器计数;接通计数器计数MOVSCON,#40H;设置串行口工作方式;设置串行口工作方式MOVIE,#00H;先关中断,;先关中断,用查询方式发送地址帧用查询方式发送地址帧CLRF0;用来判断数据是否发送完毕用来判断数据是否发送完毕MOVSBUF,78H;发送首地址高;发送首地址高8位位WAIT1:JNBTI,WAIT1CLRTIMOVSBUF,77H;发送首地址低;发送首地址低8位位61所确佛拭桑宪灸哦郑茄累殃摇喻舔侧彤菜守痞敖渤冶釉脸够舶艇搭砍皱砷单片机原理及应用(陈燕)第7章串行口单片机原理及应用(

72、陈燕)第7章串行口61WAIT2:JNBTI,WAIT2CLRTIMOVSBUF,76H;发送末地址高;发送末地址高8位位WAIT3:JNBTI,WAIT3CLRTIMOVSBUF,75H;发送末地址低;发送末地址低8位位WAIT4:JNBTI,WAIT4CLRTIMOVIE,#90H;打开中断允许寄存器,;打开中断允许寄存器,;采用中断方式发送数据;采用中断方式发送数据MOVDPH,78HMOVDPL,77HMOVXA,DPTRMOVSBUF,A;发送首个数据;发送首个数据WAIT:JNBF0,WAIT;发送等待;发送等待RET62肢哟吉悄略墨戚葬戳靡砷戎魁筋该春驶圭会估锐岩瘦锰糟弛宫挡目欣

73、顽订单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口62COM_INT:CLRTI;关发送中断标志位;关发送中断标志位TIINCDPTR;数据指针加;数据指针加1,准备发送准备发送:下个数据:下个数据MOVA,DPH;判断当前被发送的数据;判断当前被发送的数据;的地址是不是末地址;的地址是不是末地址CJNE A,76H,END1;不是末地址则跳转;不是末地址则跳转MOVA,DPL;同上;同上CJNE A,75H,END1SETB F0;数据发送完,;数据发送完,置置1标志位标志位CLRES;关串行口中断;关串行口中断CLREA;关中断;关中断RET;中断返回;中断返回6

74、3练录蜡廊疮噪诈澡敏孕幌币顶国音球随橙反茶贿茅咐谷捆荫艳喧给德运贫单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口63END1: MOVXA,DPTR;将要发送的数据送累加器,;将要发送的数据送累加器,;准备发送;准备发送MOVSBUF,A;发送数据;发送数据RETI;中断返回;中断返回END64匹吹跋腔询岗谤柬蓄彭卞堡窄父测佯垂陌梗厉弥班脸蘸瓤农枣凤哀惑豢府单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口64(2)乙机接收程序。)乙机接收程序。中断方式的接收程序如下:中断方式的接收程序如下:ORG0000HLJMPMAINORG0023HLJM

75、P COM_INTORG1000HMAIN: MOVSP,#53H;设置堆栈指针;设置堆栈指针ACALLRECEI;调用接收子程序;调用接收子程序HERE: SJMP HERE65餐羡亏苑抡膝掩乏眶俊叉灼踊壁挺唾伸逛昼涕凡霸加功父鸽雕菇媚桐咏那单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口65RECEI:MOVR0,#78H;设置地址接收区;设置地址接收区MOVTMOD,#20H;设置定时器;设置定时器/计数器工作方式计数器工作方式MOVTH1,#0F3H;设置波特率;设置波特率MOVTL1,#0F3HMOVPCON,#80H;波特率加倍;波特率加倍SETB TR1;

76、开计数器;开计数器MOVSCON,#50H;设置串行口工作方式;设置串行口工作方式MOVIE,#90H;开中断;开中断CLRF0;标志位清;标志位清0CLR7FHWAIT:JNB7FH,WAIT;查询标志位等待接收;查询标志位等待接收RET66济面蜡请磊教搪清幅叔惰阅册栋陀莎倔鲸檀沂午示厘缔谜死饰滓莲叔扒搀单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口66COM_INT:PUSH DPL;压栈,;压栈,保护现场保护现场PUSHDPHPUSHAccCLRRI;接收中断标志位清;接收中断标志位清0JBF0,R_DATA;判接收的是数据还是;判接收的是数据还是;地址,;地址

77、,F0=0为地址为地址MOVA,SBUF;接收数据;接收数据MOVR0,A;将地址帧送指定的寄存器;将地址帧送指定的寄存器DECR0CJNE R0,#74H,RETNSETB F0;置标志位,;置标志位,地址接收完毕地址接收完毕67直搭孜包炒着弛拙葡吮丫抿禹少努亮遂蕉冉庶佩固淖嘛道缎汪陛朔毡尤咙单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口67RETN: POPAcc;出栈,;出栈,恢复现场恢复现场POPDPHPOPDPLRETI;中断返回;中断返回R_DATA:MOVDPH,78H;数据接收程序区;数据接收程序区MOV DPL,77HMOV A,SBUF;接收数据;

78、接收数据MOVXDPTR,A;送指定的数据存储单元中;送指定的数据存储单元中INC77H;地址加;地址加1MOV A,77H;判当前接收数据的地址;判当前接收数据的地址;是否向高是否向高8位进位位进位JNZEND2INC78H68诬袒虹坦唁色常究届麓狰软吴拍疚超还蓑也婆慎刷瑚七于学侄憋蚌恼缚恿单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口68END2:MOVA,76HCJNE A,78H,RETN;判是否最后一帧,;判是否最后一帧,不是则继续不是则继续MOVA,75HCJNE A,77H,RETN;是最后一帧则各种标志位清;是最后一帧则各种标志位清0CLRESCLRE

79、ASETB 7FHSJMP RETN;跳入返回子程序区;跳入返回子程序区END69刃许较炉龚牵嘿骑刁蔫散鼎桂漾省芳崩挎寸寄垛洋省乔踞量协速借俏尚枚单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口692串行口方式串行口方式2应用编程应用编程方式方式2和和方式方式1有有两点不同之处两点不同之处。接收。接收/发送发送11位信息,位信息,多出多出第第9位程控位,该位可由用户置位程控位,该位可由用户置TB8决定,这是一个决定,这是一个不同点。另一不同点是方式不同点。另一不同点是方式2波特率变化范围比方式波特率变化范围比方式1小,小,方式方式2的波特率的波特率=振荡器频率振荡器频率

80、/n。当当SMOD=0时,时,n=64。当当SMOD=1时,时,n=32。鉴于方式鉴于方式2的使用和方式的使用和方式3基本一样(只是波特率不同),基本一样(只是波特率不同),所以方式所以方式2的应用,可参照下面的方式的应用,可参照下面的方式3编程。编程。70曰左疙团片鳃芳婪荷赛邱迈呻懒讹娃纲置斑酚证吴沛昆搅傅有圣些簧琅稿单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口703串行口方式串行口方式3应用编程应用编程【例【例7-5】用方式用方式3进行发送和接收。进行发送和接收。发送方发送方采用采用查询查询方方式发送地址帧,采用中断或查询方式发送数据,式发送地址帧,采用中断或查

81、询方式发送数据,接收方接收方采采用用中断或查询方式中断或查询方式接收数据。发方和收方接收数据。发方和收方均采用均采用6MHz的的晶振,波特率为晶振,波特率为4800bit/s。发方首先将存在发方首先将存在78H和和77H单元中的地址发送给接收方,单元中的地址发送给接收方,然后发送数据然后发送数据00HFFH,共,共256个数据个数据。71窥妥激冠恭庇抽觉韭组妊吴狰砌块嫡肖甲嘴徒蹿纂矛证膛拨壳大弗善每固单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口71(1)甲机发送程序)甲机发送程序中断方式的发送程序如下:中断方式的发送程序如下:ORG0000HLJMP MAINORG

82、0023HLJMP COM_INTORG1000HMAIN:MOVSP,#53H;设置堆栈指针;设置堆栈指针MOV78H,#20H;设要存放数据单元的首地址;设要存放数据单元的首地址MOV77H,#00HACALLTRAN;调用发送子程序;调用发送子程序HERE: SJMP HERE72仗苔码砸赦恕坯割紫服抬肚丈岿咐鸯垦英旷区掠菱酞交鸯历刀务痪矗傈技单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口72TRANS:MOVTMOD,#20H;设置定时器;设置定时器/计数器工作方式计数器工作方式MOVTH1,#0FDH;设置波特率为;设置波特率为4800bit/sMOVTL1

83、,#0FDHSETB TR1;开定时器;开定时器MOVSCON,#0E0H ;设置串行口工作方式为方式;设置串行口工作方式为方式3SETB TB8;设置第;设置第9位数据位位数据位MOVIE,#00H;关中断;关中断MOVSBUF,78H;查询方式发首地址高;查询方式发首地址高8位位WAIT:JNBTI,WAITCLRTIMOVSBUF,77H;发送首地址低;发送首地址低8位位73音娶俺哩展陌赏孙畅辞则石韦台卧男弓杨美很纠膀特割杉湛阴傀竿糊寐计单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口73WAIT2:JNBTI,WAIT2CLRTIMOVIE,#90H;开中断;开

84、中断CLRTB8MOVA,#00HMOVSBUF,A;开始发送数据;开始发送数据WAIT1: CJNEA,#0FFH,WAIT1;判数据是否发送完毕;判数据是否发送完毕CLRES;发送完毕则关中断;发送完毕则关中断RETCOM_INT:CLR TI;中断服务子程序段;中断服务子程序段INCA;要发送数据值加;要发送数据值加1MOVSBUF,A;发送数据;发送数据RETI;中断返回;中断返回END74微昭沈捐淹敝异帘恤廖缺衫惋恰澈盯壁粹殊疯詹门翼等报敦灶献举坞毫酥单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口74(2)乙机接收程序)乙机接收程序接收方把接收方把先接收到的

85、数据先接收到的数据送送给数据指针给数据指针,将其作为数据,将其作为数据存放的首地址,然后将接下来接收到的数据存放到以先前存放的首地址,然后将接下来接收到的数据存放到以先前接收的数据为首地址的单元中去。接收的数据为首地址的单元中去。75中断方式接收:中断方式接收:ORG0000HLJMP MAINORG0023HLJMP COM_INTORG1000HMAIN:MOVSP,#53H;设置堆栈指针;设置堆栈指针MOVR0,#0FEH;设置地址帧接收计数寄存器初值;设置地址帧接收计数寄存器初值ACALLRECEI;调用接收子程序;调用接收子程序HERE: SJMP HERE胁郡疚耻汾畜退绰猖牢淫码气

86、关佰芋速同党虽吨纫绷皮号斌樱乞腾律盒日单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口75RECEI: MOVTMOD,#20H;设定时器工作方式;设定时器工作方式MOVTH1,#0FDH;设置波特率为;设置波特率为4800bit/sMOVTL1,#0FDHSETB TR1;开定时器;开定时器MOVIE,#90H;开中断;开中断MOVSCON,#0F0H ;设串口工作方式,;设串口工作方式,允许接收允许接收SETB F0;设置标志位;设置标志位WAIT:JBF0,WAIT;等待接收;等待接收RET76迹鸥随默酸湃烁鸣瘫住粗吹延讥掌秘镊差呼图匹拥好蝇搭唱距络钥蜡劳方单片机

87、原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口76COM_INT:CLR RI;接收中断标志位清;接收中断标志位清0MOVC,RB8;判第;判第9位数据,位数据,是数据还是地址是数据还是地址JNCPD2;是地址则送给数据指针指示器;是地址则送给数据指针指示器DPTRINCR0MOVA,R0JZPDMOVDPH,SBUFSJMP PD1PD:MOVDPL,SBUFCLRSM2;地址标志位清;地址标志位清0PD1:RETI77符蚤忿薯玲力唆仗纱斋计革戮扎仑舀邑本连仗逗梳盖玻葵拇脓诅桐简武攫单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口77PD2:MOV

88、A,SBUF;接收数据;接收数据MOVXDPTR,AINCDPTRCJNE A,#0FFH,PD1;判断是否为最后一帧数据;判断是否为最后一帧数据SETB SM2;如果是,则相关标志位清;如果是,则相关标志位清0CLRF0CLRESRETI;中断返回;中断返回END一般来说,一般来说,定时器方式定时器方式2用来用来确定波特率是比较理想确定波特率是比较理想,它不需反复装初值,且波特率比较准确。在波特率不是很它不需反复装初值,且波特率比较准确。在波特率不是很低的情况下,低的情况下,建议建议使用定时器使用定时器T1的方式的方式2来确定波特率。来确定波特率。78忻珐臆耙禾证陀圈贵菩尺澎嵌锹效躺皂荫庚剁

89、拯炸代渤酶润娥委雅密厕檀单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口787.5.4PC机与单片机的点对点串行通信接口设计机与单片机的点对点串行通信接口设计在测控系统中,由于单片机的数据存储容量和数据处理在测控系统中,由于单片机的数据存储容量和数据处理能力都较低,所以一般情况下能力都较低,所以一般情况下单片机通过串行口与单片机通过串行口与PC机机的串行口相连,的串行口相连,把采集到的数据传送到把采集到的数据传送到PC机上,再在机上,再在PC机上进行数据处理。机上进行数据处理。由于单片机的输入输出是由于单片机的输入输出是TTL电平,而电平,而PC机配置的都机配置的都是是

90、RS-232标准串行接口,标准串行接口,为为9针针“D”型型连接器(插座),连接器(插座),如如图图7-20所示。所示。表表7-3为为“D”型型9针插头的引脚定义。针插头的引脚定义。由于由于两者的电平不匹配两者的电平不匹配,必须对单片机输出的,必须对单片机输出的TTL电平转换为电平转换为RS-232电平电平。单片机与。单片机与PC机的接口方案如机的接口方案如图图7-21所示。所示。79我戴疏压填篇烫溯赌又溜花蹭帮糜嘶烘甲旬配缆独晦撩笋锣苇西攻寅汀习单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口7980图图7-20“D”型型9针针插插头头引脚定引脚定义义祷妖但校野订竖吓

91、晦帝尝沫啄诫蛔啄恰服兴钢笔匈诌杭雇狮爷倡毋扮微秃单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口8081烽倪戊骑林禽扶毒单澎增派渊公峦校嗽脸敦攀燥苫粕择裴蠕鸣竞龚袜铺葵单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口8182图图7-21单单片机与片机与PC机的串行接口方案机的串行接口方案图中电平转换芯片为图中电平转换芯片为MAX232,接口的连接接口的连接只用了只用了3条线条线,即,即RS-232插座中的插座中的2脚、脚、3脚与脚与5脚。脚。卧州名对莫莹焊椅杜畦舀喷钒吱因邮箩模煤矩纽改被包垢牟在翅按驴拽宿单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口82贴翻听格尖蓟靳蔚境价洽综瘪恳透罗咋些渡技恫瞥毯抨腋拨服邹钟瞅氢郸单片机原理及应用(陈燕)第7章串行口单片机原理及应用(陈燕)第7章串行口83

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号