




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
串口通信的设计课程报告设计人:刘绍春电力电子实验室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)单片机与计算机PC89C52MAX232RXDTXD(2)单片机与单片机89C5289C52数码管RXDTXD四、软件的设计 本次课程主要使用串口方式1编程与实现4.1、软件流程图(一)单片机与PC机通信 本次目的在于实现单片机与计算机的串口通信,具体为从计算机上给单片机发送指令,单片机接收到数据指令后返回给计算机,数据通过串口通信助手显示出来。串口初始化等待控制命令数据编码发送函数数据返回返回信息否是否 (二)单片机与单片机 本次设计单片机与单片机的通信主要是字符的传送,两块单片机分别为发送机和接收机。发送机发送数据,接收机将接收到的数据通过数码管显示出来以示通信成功。 流程图中的T表示发送机,R表示接收机R串口初始化中断是否产生接收数据发送给数码管数码管显示是T串口初始化数据编码是否发送数据否是否4.2、程序的设计(一)、单片机与计算机#include #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; /开总中断 ES=1; while(1) send(1); delay(1000); send(2); delay(1000); send(3); delay(1000); 2、接受程序#includereg52.h#define uint unsigned int #define uchar unsigned charuchar code tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void display(uchar num) P2=0x81;/控制数码管位 P0=tabnum;void main() TMOD=0x20; TH1=0xfd; TL1=0xfd; TR1=1; REN=1; /允许串口接受 SM0=0; SM1=1; EA=1; /开总中断 ES=1; /开串口中断 P0=0x00; while(1); /等待串口中断产生,然后更新显示void ser() interrupt 4 /中断函数 uchar a; RI=0; a=SBUF; display(a);五、系统硬件调试(一)、单片机与计算机 将程序下载到单片机里,单片机与计算机之间用串口连接。打开串口调试助手,选择串口,设置波特率,然后再发送的字符/数据里输入要发送的数据,在接收区观察是否接受到数据。 如:向单片机发送字符串“AT89C52”,选择手动发送,则可观察到如下结果。(二)、单片机与单片机 分别向两个单片下载发送程序和接收程序,发送机与接收机的TXD、RXD接口交叉连接,接收机与数码管显示模块正确连接,对两块单片机和相应模块供电、共地。观察显示结果如下。 接收机数码管显示发送机显示结果六、结论与心得 本次设计实现了单片机与计算机、单片机与单片机之间的串口通信,运用了51单片机的串口通信方式。在调试过程中也遇到了诸多难题。如硬件系统的选择与软件的设计,非电信号到电信号的电路实现原理以及单片机的串口接口。 在刚接触时,对于串口通信概念的模糊成了最大的问题,慢慢了解的过程中也是慢慢发现问题的过程。在此过程中,要特别了解51的串行口结构,串口方式的选择,波特率、晶振和定时器的计算以及一些特殊功能寄存器的应用。为更精确的实现串口通信,在晶振的选择上选择11.0592MHz晶振,两块单片机通信时设置相同的波特率。这些均有利于数据更精确、更准确的发送和接收。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论