串口通信实报告.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机实验报告 课程名称 单片机技术与应用 实验名称 串口通信实验 专 业 光电信息工程 班 级 光电121班 学 号 050312113 姓 名 蒯玄 实验地点 躬行楼528 实验日期 2015.5.28 一、实验目的 1、掌握8051单片机串行口工作原理; 2、掌握串口编程与调试方法; 3、了解Modbus协议及其应用; 4、了解数据传输的可靠性措施与CRC校验实现方法; 5、掌握8051单片机的Modbus编程; 二、实验仪器 编号 仪器设备 数量 单位 1 WD990微机电源 1 个 2 8051最小系统板 1 套 3 键盘显示接口板 1 块 4 万用表 1 套 5 示波器 1 台 三、实验内容 串口功能验证:PC机与8051单片机通信实验:若PC机发送数据a,则单片机接收a后向PC机发送a+1;用串口工具软件(sscom32)观察通信结果。 设计思路: PC机采用主动方式,单片机为被动方式,因单片机端不知道PC何时发数据,若单片机采用查询方式接收,会产生接收不到PC数据而“死等”的现象。因此为了不影响单片机端的主程序运行,单片机应采用中断方式接收; 参考源码: //中断服务程序 unsigned char Rxd_Data;//串口接收数据 unsigned char Rxd_Over;//串口接收完成标志 //串口初始化函数9600bps void Sbuf_Init(void) { SCON=0x50; //10位方式 //波特率设置 PCON=0x00; //波特率不倍增 TMOD=(TMOD0x0f)|0x20;//T1方式2 TH1=0xfd; //T1计数初值 TL1=0xfd; ES=1;EA=1; //串口中断使能 TR1=1; //启动定时器 } void UART_ISR(void) interrupt 4 { if(RI)//接收产生的中断 { RI=0;//清接收标志 Rxd_Data=SBUF; //接收数据 Rxd_Over=1; //置Rxd_Over标志 } } void main(void) { Sbuf_Init(); //串口初始化 while(1) { if(Rxd_Over) //若接收完成 { //串口数据发送 SBUF=a+1; //串口发送 while(TI==0); //等待发送完成 TI=0;//清发送标志 Rxd_Over=0; //清Rxd_Over标志 } } } 利用此程序可以判断串口通信是否正常。串口通信失败的原因有如下几种情况: (1)串口线未连接,用一根导线将串口线2,3脚短接,scomm32工具发送数据,根据能否接收数据判断串口线连接是否正常; (2)最小系统板硬件故障:借助示波器观察单片机的串口接收与发送CMOS电平与RS232电平可排查硬件故障; (3)软件问题。 预习要求 完成实验源码的预编写。 实验步骤 使用串口前,应对它进行初始化。 设置串行口工作方式控制(SCON); 设置串口通信波特率:T1(TMOD、TH1、TL1、ET1、EA、TR1 、PCON); 串口中断使能(ES、EA)。具体步骤如下: (1)设置串行口工作方式控制(SCON) 如11位波特率可变的异步通信方式: SCON SM0 SM1 SM2 REN TB8 RB8 TI RI SCON=0xd0; (2)借助T1初使化通信波特率(TMOD) PCON SMOD - - - - - - - 87H TMOD GATE C/T# M1 M0 GATE C/T# M1 M0 89H Baud=2^SMOD×(T1溢出率/32) 令SMOD=0,则9600=1/(n*12/fosc*32) ,若fosc=11.0592则n=3 T1:采用方式2(8位自动载入) 即:PCON=0x00

文档评论(0)

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

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

1亿VIP精品文档

相关文档