串口通信的设计课程报告.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
串口通信的设计课程报告

串口通信的设计课程报告设计人:刘绍春电力电子实验室2014年4月目 录一、课程设计内容二、原理分析三、硬件系统设计3.1主要芯片介绍 3.2硬件设计框图四、软件系统设计 4.1、软件流程图 4.2、程序的设计五、系统硬件调试六、结论与心得摘 要 随着计算机技术尤其是单片机技术的发展,人们已越来越多地采用单片机对控制系统中如温度、流量和压力等参数进行检测和控制。计算机具有强大的监控和管理功能,而单片机则具有快速灵活的控制特点。计算机与单片机、单片机与单片机之间的通信具有非常重要的现实意义。本次设计在了解一定通信有关知识的基础上利用单片机串口进行多个单片机通信。一、课程设计内容单片机在工业控制、尖端武器、通信设备、信息处理、家用电器等各种测控领域的应用非常广泛。单片机之所以能在通信设备的测控领域中广泛应用的一个重要的基础就是它具有数据通信的能力。而串行数据通信又是数据通信中最基本的也是最重要的一种。本次设计旨在实现计算机与单片机之间、单片机与单片机的数据通信。二、原理分析通信有并行和串行两种。并行通信时数据的各个位同时传送,可以字或字节为单位并行进行。串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。串行通信又分为同步串行通信和异步串行通信。所谓异步串行通信是指具有不规则数据段传送特性的串行数据传输。在单片机与计算机、单片机与单片机之间通常采用异步串行通信。本次设计用51的可编程全双工串行口进行数据的发送与接收,它是有串行数据缓冲器SBUF(一个发送缓冲寄存器,一个接收缓冲寄存器)和发送控制器、接收控制器、输入位移寄存器及若干控制门电路组成。串口方式有4种工作方式 ,方式0-方式3。通常我们在做单片机与单片机通信、单片机与计算机通信、计算机与计算机串口通信时基本都选择方式1。所以本次设计就运用串口方式1进行串口通信。三、硬件系统设计3.1主要芯片介绍 本次设计主要运用AT89C52和MAX232芯片。89C52为主要工作芯片,MAX232为数据下载传输芯片。3.2硬件设计框图(1)单片机与计算机RXDTXD(2)单片机与单片机数码管RXDTXD四、软件的设计 本次课程主要使用串口方式1编程与实现4.1、软件流程图(一)单片机与PC机通信 本次目的在于实现单片机与计算机的串口通信,具体为从计算机上给单片机发送指令,单片机接收到数据指令后返回给计算机,数据通过串口通信助手显示出来。数据返回返回信息否是否 (二)单片机与单片机 本次设计单片机与单片机的通信主要是字符的传送,两块单片机分别为发送机和接收机。发送机发送数据,接收机将接收到的数据通过数码管显示出来以示通信成功。 流程图中的T表示发送机,R表示接收机是T串口初始化数据编码是否发送数据否是否4.2、程序的设计(一)、单片机与计算机#include reg51.h#defien uchar unsigned intuchar num;void send(uchar txd);main(){ TMOD = 0x20;// 定时器1工作于8位自动重载模式, 用于产生波特率TH1 = 0xfd;// 波特率9600TL1 = 0xfd;SCON = 0x50;// 设定串行口工作方式1PCON = 0xef;// 波特率不倍增TR1 = 1;// 启动定时器1IE = 0x0;// 禁止任何中断while(1){ if(RI) // 是否有数据到来 { RI = 0;num = SBUF; // 暂存接收到的数据send(num); // 回传接收到的数据 } }}void send(uchar txd) // 传送一个字符{SBUF = txd;while(!TI); // 等特数据传送TI = 0; // 清除数据传送标志}(二)、计算机与计算机1、发送程序#includereg52.h#define uint unsigned int #define uchar unsigned charvoid delay(uint x) //i=xms即延时约xms毫秒{ uint i,j; for(i=x;i0;i--) for(j=110;j0;j--);}void send(uchar num){ SBUF=num; while(!TI) TI=0;}void main(){ TMOD=0x20; //设置T1定时器工作方式1 TH1=0xfd; //设置波特率9600 TL1=0xfd; TR1=1; //启动定时器1 SM0=0; //设置串口工作方式1 SM1=1; EA=1;

文档评论(0)

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

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

1亿VIP精品文档

相关文档