【2017年整理】串口通信的设计课程报告

上传人:爱****1 文档编号:942139 上传时间:2017-05-23 格式:DOCX 页数:11 大小:745.85KB
返回 下载 相关 举报
【2017年整理】串口通信的设计课程报告_第1页
第1页 / 共11页
【2017年整理】串口通信的设计课程报告_第2页
第2页 / 共11页
【2017年整理】串口通信的设计课程报告_第3页
第3页 / 共11页
【2017年整理】串口通信的设计课程报告_第4页
第4页 / 共11页
【2017年整理】串口通信的设计课程报告_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《【2017年整理】串口通信的设计课程报告》由会员分享,可在线阅读,更多相关《【2017年整理】串口通信的设计课程报告(11页珍藏版)》请在金锄头文库上搜索。

1、串口通信的设计课程报告设计人:刘绍春电力电子实验室2014年 4月目 录一、课程设计内容二、原理分析三、硬件系统设计3.1主要芯片介绍3.2硬件设计框图四、软件系统设计4.1、软件流程图4.2、程序的设计五、系统硬件调试六、结论与心得摘 要随着计算机技术尤其是单片机技术的发展,人们已越来越多地采用单片机对控制系统中如温度、流量和压力等参数进行检测和控制。计算机具有强大的监控和管理功能,而单片机则具有快速灵活的控制特点。计算机与单片机、单片机与单片机之间的通信具有非常重要的现实意义。本次设计在了解一定通信有关知识的基础上利用单片机串口进行多个单片机通信。一、课程设计内容单片机在工业控制、尖端武器

2、、通信设备、信息处理、家用电器等各种测控领域的应用非常广泛。单片机之所以能在通信设备的测控领域中广泛应用的一个重要的基础就是它具有数据通信的能力。而串行数据通信又是数据通信中最基本的也是最重要的一种。本次设计旨在实现计算机与单片机之间、单片机与单片机的数据通信。二、原理分析通信有并行和串行两种。并行通信时数据的各个位同时传送,可以字或字节为单位并行进行。串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。串行通信又分为同步串行通信和异步串行通信。所谓异步串行通信是指具有不规则数据段传送特性的串行数据传输。在单片机与计算机、单片机与单片机之间通常采用异步串行通

3、信。本次设计用 51 的可编程全双工串行口进行数据的发送与接收,它是有串行数据缓冲器 SBUF(一个发送缓冲寄存器,一个接收缓冲寄存器)和发送控制器、接收控制器、输入位移寄存器及若干控制门电路组成。串口方式有 4种工作方式 ,方式 0-方式 3。通常我们在做单片机与单片机通信、单片机与计算机通信、计算机与计算机串口通信时基本都选择方式 1。所以本次设计就运用串口方式 1进行串口通信。三、硬件系统设计3.1主要芯片介绍本次设计主要运用 AT89C52和 MAX232芯片。89C52 为主要工作芯片,MAX232 为数据下载传输芯片。3.2硬件设计框图(1)单片机与计算机RXDTXD(2)单片机与

4、单片机RXDPC89C52 MAX23289C52 89C52数码管TXD四、软件的设计本次课程主要使用串口方式 1编程与实现4.1、软件流程图(一)单片机与 PC机通信本次目的在于实现单片机与计算机的串口通信,具体为从计算机上给单片机发送指令,单片机接收到数据指令后返回给计算机,数据通过串口通信助手显示出来。否 是 否(二)单片机与单片机串口初始化等待控制命令数据编码发送函数数据返回返回信息 本次设计单片机与单片机的通信主要是字符的传送,两块单片机分别为发送机和接收机。发送机发送数据,接收机将接收到的数据通过数码管显示出来以示通信成功。流程图中的 T表示发送机,R 表示接收机4.2、程序的设

5、计(一) 、单片机与计算机#include #defien uchar unsigned intuchar num;void send(uchar txd);main()TMOD = 0x20; / 定时器 1 工作于 8 位自动重载模式 , 用于产生波特率R 串口初始化中断是否产生接收数据发送给数码管数码管显示是T 串口初始化数据编码是否发送数据否是否TH1 = 0xfd; / 波特率 9600TL1 = 0xfd;SCON = 0x50; / 设定串行口工作方式 1PCON &= 0xef; / 波特率不倍增TR1 = 1; / 启动定时器 1IE = 0x0; / 禁止任何中断while

6、(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=1

7、10;j0;j-);void send(uchar num)SBUF=num;while(!TI)TI=0;void main()TMOD=0x20; /设置 T1 定时器工作方式 1 TH1=0xfd; /设置波特率 9600TL1=0xfd;TR1=1; /启动定时器 1SM0=0; /设置串口工作方式 1SM1=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 #defi

8、ne 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;

9、 RI=0;a=SBUF;display(a);五、系统硬件调试(一) 、单片机与计算机将程序下载到单片机里,单片机与计算机之间用串口连接。打开串口调试助手,选择串口,设置波特率,然后再发送的字符/数据里输入要发送的数据,在接收区观察是否接受到数据。如:向单片机发送字符串“AT89C52” ,选择手动发送,则可观察到如下结果。(二) 、单片机与单片机分别向两个单片下载发送程序和接收程序,发送机与接收机的 TXD、RXD 接口交叉连接,接收机与数码管显示模块正确连接,对两块单片机和相应模块供电、共地。观察显示结果如下。显示结果发送机接收机数码管显示六、结论与心得本次设计实现了单片机与计算机、单片

10、机与单片机之间的串口通信,运用了 51 单片机的串口通信方式。在调试过程中也遇到了诸多难题。如硬件系统的选择与软件的设计,非电信号到电信号的电路实现原理以及单片机的串口接口。在刚接触时,对于串口通信概念的模糊成了最大的问题,慢慢了解的过程中也是慢慢发现问题的过程。在此过程中,要特别了解51 的串行口结构,串口方式的选择,波特率、晶振和定时器的计算以及一些特殊功能寄存器的应用。为更精确的实现串口通信,在晶振的选择上选择 11.0592MHz 晶振,两块单片机通信时设置相同的波特率。这些均有利于数据更精确、更准确的发送和接收。在软件的编程中要了解串口通信数据发送与接收的时序,正确写出程序,在硬件上进行调试,直至出现结果。 通过本次设计,更加深入的了解单片机的串口通信。在整个过程中,发现有很多东西需要通过实践才能更加理解,很多经验是通过动手才能积累。所以,这次课程不仅丰富了我的书本知识,留给我的是如火如荼发现问题,解决问题的经验。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号