单片机原理及接口技术第8章 AT89S51单片机的串行口.ppt

单片机原理及接口技术第8章 AT89S51单片机的串行口.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
发送门打开,接收门关闭;当P1.0=0时,接收门打开,发送门关闭。  图8-21的SN75176片内集成一个差分驱动器和一个差分接收器,且兼有TTL电平到RS-485电平、RS-485电平到TTL电平的转换功能。此外常用的RS-485接口芯片还有MAX485。   * 图8-21 RS-485双机通信接口电路  8.5.2 方式1的应用设计  【例8-4】图8-22为单片机甲、乙双机串行通信,双机RXD和TXD相互交叉相连,甲机P1口接8个开关,乙机P1口接8个发光二极管。甲机设置为只能发送不能接收的单工方式。要求甲机读入P1口的8个开关的状态后,通过串行口发送到乙机,乙机将接收到的甲机的8个开关的状态数据送入P1口,由P1口的8个发光二极管来显示8个开关的状态。双方晶振均采用11.0592MHz。  *    * 图8-22 单片机方式1双机通信的连接 参考程序如下:   //甲机串行发送   #include reg51.h   #define uchar unsigned char   #define uint unsigned int   void main()   { uchar temp=0;    TMOD=0x20; //设置定时器T1为方式2    TH1=0xfd; //波特率9600    TL1=0xfd;    SCON=0x40; //串口初始化方式1发送,不接收    PCON=0x00; // SMOD=0    TR1=1; //启动T1    P1=0xff; //设置P1口为输入    while(1)    {    while(TI==0); //如果TI=0,未发送完,循环等待    TI=0; //已发送完,把TI清0    temp=P1; //读入P1口开关的状态    SBUF=temp;} //数据送串行口发送 } *  //乙机串行接收   #include reg51.h   #define uchar unsigned char   #define uint unsigned int   void main( )   {    uchar temp=0;    TMOD=0x20; //设置定时器T1为方式2    TH1=0xfd; //波特率9600    TL1=0xfd;    SCON=0x50; //设置串口为方式1接收,REN=1    PCON=0x00; //SMOD=0    TR1=1; //启动T1    while(1)    {    while(RI==0); // 若RI为0,未接收到数据    RI=0; // 接收到数据,则把RI清0   temp=SBUF; // 读取数据存入temp中    P1=temp; //接收的数据送P1口控制8个LED的亮灭 } }       * 【例8-5】如图8-23,甲乙两机以方式1进行串行通信,双方晶振频率均为11.059?2MHz,波特率为2400bit/s。甲机TXD脚、RXD脚分别与乙机RXD、TXD 脚相连。为观察串行口传输的数据,电路中添加了两个虚拟终端来分别显示串口发出的数据。添加虚拟终端,只需单击图4-2左侧工具箱中的虚拟仪器图标,在预览窗口中显示的各种虚拟仪器选项,点击“VIRTUAL TERMINAL”项,并放置在原理图编辑窗口,然后把虚拟终端的“RXD”端与单片机的“TXD”端相连即可。   当串行通信开始时,甲机首先发送数据AAH,乙机收到后应答BBH,表示同意接收。甲机收到BBH后,即可发送数据。如果乙机发现数据出错,就向甲机发送FFH,甲机收到FFH后,重新发送数据给乙机。  *    * 图8-23 方式1双机通信的连接 串行通信时,如观察单片机仿真运行时串行口发送出的数据,只需用鼠标右键点击虚拟终端,会出现选择菜单,点击最下方 “Virtual Terminal”项,会弹出窗口,窗口显示了单片机串口 “TXD”端发出的一个个数据字节,如图8-24所示。  设发送字节块长度为10字节,数据缓冲区为buf,数据发送完毕要立即发送校验和,进行数据发送准确性验证。乙机接收到的数据存储到数据缓冲区buf,收到一个数据块后,再接收甲机发来的校验和,并将其与乙机求得的校验和比较:若相等,说明接收正确,乙机回答00H;若不

文档评论(0)

132****9295 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档