第7讲 串行口.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
表7-2有两点需要注意: (1)在使用的时钟振荡频率fosc为12MHz或6MHz时,将初值X和fosc带入式(7-3)中计算出的波特率有一定误差。消除误差可采用时钟频率11.0592MHz。 (2)如果选用很低的波特率,如选为55,可将定时器T1设为方式1定时。但这种情况,T1溢出时,需在中断服务程序中重新装入初值。中断响应时间和执行指令时间会使波特率产生一定的误差,可用改变初值的方法加以调整。 * 7.5.2 方式1的应用 【例7-4】如图7-20所示,甲、乙双机串行通信,双机的RXD和TXD相互交叉相连,甲机的P1口接8个开关,乙机的P1口接8个发光二极管。甲机设置为只发不收的单工方式。要求甲机读入P1口的8个开关的状态后,通过串行口发送到乙机,乙机将接收到的甲机的8个开关的状态数据送入P1口, * 【例7-3】 若时钟频率为11.0592MHz,选用T1的方式2定时作为波特率发生器,波特率为2?400bit/s,求初值。 设T1为方式2定时,选SMOD?=?0。 将已知条件带入式(7-3)中 波特率?=? ?=?2400 从中解得:X?=?244?=?F4H。 只要把F4H装入TH1和TL1,则T1产生的波特率为2 400bit/s。也可直接从表7-2中查到。 这里时钟振荡频率选为11.0592MHz,就可使初值为整数,从而产生精确的波特率。 * * 图7-20 单片机方式1双机通信的连接 由P1口的8个发光二极管来显示8个开关的状态。双方晶振均采用11.0592MHz。参考程序如下。 /*甲机串行发送*/ #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; /*串行口初始化为方式0*/ * TR1=1; /*启动T1*/ P1=0xff; /* P1口为输入*/ while(1) {temp=P1; /*读入P1口开关的状态数据*/ SBUF=temp; /*数据送串行口发送*/ while(TI==0); /*如果TI=0,未发送完,循环等待*/ TI=0; /*已发送完,再把TI清0*/ } } /*乙机串行接收*/ #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的亮与灭*/ } } 7.5.5 单片机与PC机的串行通信 测控系统中,常使用单片机进行数据采集,但由于单片机的数据存储容量和数据处理能力都较低,所以一般情况下单片机通过串口与PC机串口相连,把采集到的数据传送到PC机上,再在PC机上进行数据处理。由于单片机的输入输出是TTL电平,而PC机配置的都是RS-232标准串行接口,为9针“D”型连接器(插座),如图7-22所示。表7-3为RS-232C的“D”型9针插头的引脚定义。 图7-22 “D”型9针插头引脚定义 图7-23 单片机与PC机的串行通信接口 由于两者的电平不匹配,因此必须把单片机输出的TTL电平转换为RS-232电平。单片机与PC机的接口方案如图7-23。图中所用的电平转换芯片为MAX232,接口连接只用3条线,即RS-232插座中的2脚、3脚与5脚。 一、单片机向计算机发送数据 【例7-8】单片机向计算机发送数据的接口电路如图7-23。要求单片机通过串行口的TXD脚向计算机串行发送8个数据字节。实际上单片机向计算机与单片机向单片机发送数据的方法是完全一样的。单片机向计算机发送数据的参

文档评论(0)

0520 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档