完整版51单片机串行通信课程设计Word格式.docx

上传人:b****4 文档编号:17118217 上传时间:2022-11-28 格式:DOCX 页数:21 大小:281.81KB
下载 相关 举报
完整版51单片机串行通信课程设计Word格式.docx_第1页
第1页 / 共21页
完整版51单片机串行通信课程设计Word格式.docx_第2页
第2页 / 共21页
完整版51单片机串行通信课程设计Word格式.docx_第3页
第3页 / 共21页
完整版51单片机串行通信课程设计Word格式.docx_第4页
第4页 / 共21页
完整版51单片机串行通信课程设计Word格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

完整版51单片机串行通信课程设计Word格式.docx

《完整版51单片机串行通信课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《完整版51单片机串行通信课程设计Word格式.docx(21页珍藏版)》请在冰豆网上搜索。

完整版51单片机串行通信课程设计Word格式.docx

学生结合自己的实际情况,选择适合的方法来完成51单片机与PC机的串口通信。

该题目概括了《通信原理》、《单片机原理》等课程的主要知识点,让人们对当代通信技术有一定程度的了解,知道我们是怎么利用单片机来进行串行通信的。

第一章基本原理

串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计算机端,而且也能实现计算机对单片机的控制。

由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。

单片机有一个全双工的串行通讯口,所以单片机和计算机之间可以方便地进行串口通讯。

进行串行通讯时要满足一定的条件,比如计算机的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。

利用AT89C51芯片、复位电路、时钟电路、LED数码管等,使A机控制B机的两个LED闪烁,B机控制A机的数码管加一显示。

使用DS18B20温度传感器,由B机测量温度后由A机显示.把P1口的高7位与数码管相连,绿灯表示通行方向。

P2口与LED显示器相连,用来输出显示的数字。

系统的原理框图如下:

图1系统原理框图

图2原理图

第二章系统分析

2.1单片机

单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

在我国,单片机已经不是一个陌生的名词,它的出现是近代计算机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。

在单片机诞生之前,为了满足工程对象的嵌入式应用要求,只能将通用计算机进行机械加固、电气加固后嵌入到对象系统中构成。

由于通用计算机的巨大体积和高成本,无法嵌入到大多数对象体系中。

单片机则应嵌入式应用而诞生。

单片机的单芯片的微小体积和极低的成本,可广泛的嵌入到玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具。

单片机作为最典型的嵌入式系统,它的成功应用推动了嵌入式系统的发展。

近年来。

除了各种类型的工控机,各种以通用微处理器构成的计算机主模板快、以通用处理器为核,片内扩展一些外围功能电路单元构成的嵌入式微处理器,甚至单片形式的PC及等,都实现了嵌入式应用,成为嵌入式系统的庞大家族。

作为典型的嵌入式系统的单片机,在我国大规模应用已有十余年历史。

在全国高等工科院校中,已普遍开设单片机及相关课程。

单片机已成为电子系统中最普遍的应用手段。

除了单设课程外,在涉及的许多环节,如课程设计、毕业设计、研究生论文课题中,单片机系统都是最广泛的应用手段。

目前,许多单片机教材都Shiite以80C51系列为基础来讲述其原理及应用的。

这是因为MCS-51系列单片机奠定了8位单片机的基础,形成了单片机的经典体系结构。

单片机是现代计算机、电子技术的新兴领域,无论是单片机本身还是单片机应用系统设计方案都会随着时代不断发生变变化。

2.2串行通信

在通信领域内,有两种数据通信方式:

并行通信和串行通信。

随着计算机网络化和微机分级分布式应用系统的发展,通信的功能越来越重要。

而凭借着其改善的信号完整性和传播速度,串行通信总线正在变得越来越普遍。

在远程通信和计算机科学中,串行通信是指在计算机总线或其他数据通道上,每次传输一个位元数据,并连续进行以上单次过程的通信方式。

与之对应的是并行通信,它在串行端口上通过一次同时传输若干位元数据的方式进行通信。

一位接一位地顺序传送。

这样一个字节的数据要分8次由低位到高位按顺序一位位地传送。

由此可见,串行通信的特点如下:

1、节省传输线,这是显而易见的。

尤其是在远程通信时,此特点尤为重要。

这也是串行通信的主要优点;

2、数据传送效率低。

与并行通信比,这也这是显而易见的。

这也是串行通信的主要缺点。

同步和异步都属于串行数据传送方式,但二者的传送格式有所不同。

同步方式的一帧内含有很多数据位,而异步方式一帧内只含有几个数据位。

如果要传送一大堆数据,同步方式只给这串数据进行一次外包装(即添加“头帧”、“尾帧”、“校验”帧),而异步方式在传送这串数据时则要对数据的每一个字节分别加以包装(即添加“头”位、“尾”位和校验)。

显然在相同的数据传输波特率下,同步方式比异步方式的传送速度快,但同步方式要求收发双方在整个事件传送过程中始终保持严格同步,这将增加硬件上的难度,而异步通信只要求每帧(字节)的传送中短时间保持同步即可,实现起来要容易得多。

串行通信被用于长距离通信以及大多数计算机网络,在这些应用场合里,电缆和同步化使并行通信实际应用面临困难。

凭借着其改善的信号完整性和传播速度,串行通信总线正在变得越来越普遍,甚至在短程距离的应用中,其优越性已经开始超越并行总线不需要串行化元件等缺点。

串行通信的分类:

同步通信和异步通信。

所谓同步通信,是指数据传送是以数据块(一组字符)为单位,字符与字符之间、字符内部的位与位之间都同步.同步串行通信的特点可以概括为:

①以数据块为单位传送信息;

②在一个数据块(信息帧)内,字符与字符间无间隔;

③接收时钟与发送进钟严格同步。

所谓异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本上是同步的.异步串行通信的特点可以概括为:

①以字符为单位传送信息;

②相邻两字符间的间隔是任意长;

③接收时钟和发送时钟只要相近就可以。

异步方式特点简单的说就是:

字符间异步,字符内部各位同步。

两台机器的通信方式可分为单工通信、半双工通信、双工通信,他们的通信原理及通信方式为:

单工通信:

是指消息只能单方向传输的工作方式。

单工通信信道是单向信道,发送端和接收端的身份是固定的,发送端只能发送信息,不能接收信息;

接收端只能接收信息,不能发送信息,数据信号仅从一端传送到另一端,即信息流是单方向的。

通信双方采用“按——讲”(PushToTalk,PTT)单工通信属于点到点的通信。

根据收发频率的异同,单工通信可分为同频通信和异频通信。

半双工通信:

这种通信方式可以实现双向的通信,但不能在两个方向上同时进行,必须轮流交替地进行。

也就是说,通信信道的每一段都可以是发送端,也可以是接端。

但同一时刻里,信息只能有一个传输方向。

如日常生活中的例子有步话机通信等。

双工通信:

双工通信是指在同一时刻信息可以进行双向传输,和打电话一样,说的同时也能听,边说边听。

这种发射机和接收机分别在两个不同的频率上(两个频率差有一定要求)能同时进行工作的双工机也称为异频双工机。

双工机的特点是使用方便,但线路设计较复杂,价格也较高。

2.3RS-232接口标准

RS-232C标准(协议)的全称是EIA-RS-232C标准,定义是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。

它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。

其中EIA(ElectronicIndustryAssociation)代表美国电子工业协会,RS(Recommendedstandard)代表推荐标准,232是标识号,C代表RS232的最新一次修改。

1、RS-232C接口引脚定义

由于RS-232C并未定义连接器的物理特性,因此,出现了DB-25、DB-15和DB-9各种类型的连接器,其引脚的定义也各不相同。

下面是常用的DB-25和DB-9连接器接口图:

图3 

DB25和DB9引脚图

 

旧制JIS名称

新制JIS名称

全称

说明

FG

SG

FrameGround

连到机器的接地线

TXD

SD

TransmittedData

数据输出线

RXD

RD

ReceivedData

数据输入线

RTS

RS

RequesttoSend

要求发送数据

CTS

CS

CleartoSend

回应对方发送的RTS的发送许可,告诉对方可以发送

DSR

DR

DataSetReady

告知本机在待命状态

DTR

ER

DataTerminalReady

告知数据终端处于待命状态

CD

CarrierDetect

载波检出,用以确认是否收到Modem的载波

SignalGround

信号线的接地线(严格的说是信号线的零标准线)

• 

RS-232C规标准接口有25条线,4条数据线、11条控制线、3条定时线、7条备用和未定义线,常用的只有9根,它们是:

(1)状态线:

数据准备就绪(Datasetready-DSR)——有效时(ON)状态,表明数据通信设备可以使用。

(DCE->

DTE)

数据终端就绪(Datasetready-DTR)——有效时(ON)状态,表明数据终端设备可以使用。

(DTE->

DCE)

这两个信号有时连到电源上,上电就立即有效。

这两个设备状态信号有效,只表示设备本身可用,并不说明通信链路可以开始进行通信了,能否开始进行通信要由下面的控制信号决定。

(2)联络线

请求发送(Requesttosend-RTS)——DTE准备向DCE发送数据,DTE使该信号有效(ON状态),通知DCE要发送数据给DCE了。

允许发送(Cleartosend-CTS)——是对RTS的响应信号。

当DCE已准备好接收DTE传来的数据时,使该信号有效,通知DTE开始发送数据。

RTS/CTS请求应答联络信号是用于半双工MODEM系统中发送方式和接收方式之间的切换。

在全双工系统中,因配置双向通道,故不需要RTS/CTS联络信号,使其变高。

(3)数据线

发送数据(Transmitteddata-TxD)——DTE发送数据到DCE。

接收数据(Receiveddata-RxD)——DCE发送数据到DTE(DCE->

(4)地线

有两根线SG、PG——信号地和保护地信号线。

(5)其余

载波检测(CarrierDetection-CD)——用来表示DCE已接通通信链路,告知DTE准备接收数据。

振铃指示(Ringing-RI)——当DCE收到交换台送来的振铃呼叫信号时,使该信号有效(ON状态),通知DTE,已被呼叫。

通常的应用系统中,往往是CPU和I/O设备之间传送信息,两者都是DTE,比如PC和色温计,PC和单片机之间的通信,双方都能发送和接收,它们的连接只需要使用三根线即可,即RXD,TXD和GND,连接方式见图4。

图4“三线连接法”

2、RS-232C的电气特性

(1)逻辑电平

在TXD和RXD上:

逻辑1(MARK)=-3V~-15V

逻辑0(SPACE)=+3~+15V

在RTS、CTS、DSR、DTR和DCD等控制线上:

信号有效(接通,ON状态,正电压)=+3V~+15V

信号无效(断开,OFF状态,负电压)=-3V~-15V

由以上定义可以看出,信号无效的电平低于-3V,也就是当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于-3~+3V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义,因此,实际工作时,应保证电平的绝对值在(3~15)V之间。

当计算机和TTL电平的设备通信时,如计算机和单片机通信时,需要使用RS-232C/TTL电平转换器件,常用的有MAX232。

(2)传输距离

由RS-232C标准规定在码元畸变小于4%的情况下,传输电缆长度应为15m,其实这个4%的码元畸变是很保守的,在实际应用中,约有99%的用户是按码元畸变10-20%的范围工作的,所以实际使用中最大距离会远超过15m。

3、RS-232C的不足之处

由于RS-232C接口标准出现较早,难免有不足之处,主要有以下四点:

(1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。

(2)传输速率较低,在异步传输时,波特率最大为19200bps。

(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。

(4)传输距离有限,实际最大传输距离只有50米左右.

第三章系统设计及系统调试

3.1设计方案

本次设计,对于两片89C51,采用RS232进行双机通信。

发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。

接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。

接受方接收后,在数码管上显示接收的信息。

为提高抗干扰能力,还可以在输入输出端加光耦合进行光电隔离。

软件部分,通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。

主机收到BBH后就把数码表TAB[16]中的10个数据送给从机,并发送检验和。

从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;

否则发送FFH给主机,重新接受。

从机收到16个正确数据后送到一个数码管显示。

3.2硬件设计

1.51单片机串行通信功能

图1.AT89C51

计算机与外界的信息交换称为通信,常用的通信方式有两种:

51单片机用4个接口与外界进行数据输入与数据输出就是并行通信,并行通信的特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。

串行通信的特点是只用两条信号线(一条信号线,再加一条地线作为信号回路)即可完成通信,成本低,传输的距离较远。

51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。

51单片机串行接口的结构如下:

(1)数据缓冲器(SBUF)

接受或发送的数据都要先送到SBUF缓存。

有两个,一个缓存,另一个接受,用同一直接地址99H,发送时用指令将数据送到SBUF即可启动发送;

接收时用指令将SBUF中接收到的数据取出。

(2)串行控制寄存器(PCON)

SCON用于串行通信方式的选择,收发控制及状态指示,各位含义如下:

SM0

SM1

SM2

REN

TB8

RB8

TI

RI

SM0,SM1:

串行接口工作方式选择位,这两位组合成00,01,10,11对应于工作方式0、1、2、3。

串行接口工作方式特点见下表

工作方式

功能

波特率

0

8位同步移位寄存器(用于I/O扩展)

fORC/12

1

10位异步串行通信(UART)

可变(T1溢出率*2SMOD/32)

2

11位异步串行通信(UART)

fORC/64或fORC/32

3

SM2:

多机通信控制位。

REN:

接收允许控制位。

软件置1允许接收;

软件置0禁止接收。

TB8:

方式2或3时,TB8为要发送的第9位数据,根据需要由软件置1或清0。

RB9:

在方式2或3时,RB8位接收到的第9位数据,实际为主机发送的第9位数据TB8,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。

TI:

发送中断标志。

发送完一帧数据后由硬件自动置位,并申请中断。

必须要软件清零后才能继续发送。

RI:

接收中断标志。

接收完一帧数据后由硬件自动置位,并申请中断。

必须要软件清零后才能继续接收。

(3)输入移位寄存器

接收的数据先串行进入输入移位寄存器,8位数据全移入后,再并行送入接收SBUF中。

(4)波特率发生器

波特率发生器用来控制串行通信的数据传输速率的,51系列单片机用定时器T1作为波特率发生器,T1设置在定时方式。

波特率时用来表示串行通信数据传输快慢程度的物理量,定义为每秒钟传送的数据位数。

(5)电源控制寄存器PCON

其最高位为SMOD。

(6)波特率计算

当定时器T1工作在定时方式的时候,定时器T1溢出率=(T1计数率)/(产生溢出所需机器周期)。

由于是定时方式,T1计数率=fORC/12。

产生溢出所需机器周期数=模M-计数初值X。

2.MAX232芯片

用8051串行接口通信,如果两台8051单片机之间的距离很近(不超过1.5m),可以采用直接将两台8051单片机的串行接口直接相连,利用其自身的TTL电平(0-5V)直接传输数据信息。

如果传输距离较远(超过1.5m),由于传输线的阻抗与分布电容,会产生电平损耗和波形畸变,以至于检测不出数据或数据出错。

此时可利用RS232标准总线接口,将单片机输出的TTL电平转换为RS232标准电平(逻辑1为-15—-5V;

逻辑0为+5-—+15V)。

用RS232可将传输距离提高到15m,如果想远距离传输,可以采用RS422或者RS485。

电平转换芯片MAX232是美信公司(MAXIM)生产,专用于进行将TTL电平转换为RS232电平的芯片,MAX232内部有泵电源,能将+5V电源电压在芯片内提高到RS232电平所需的+10V或者-10V电平。

图2.电平转换芯片MAX232

3.整体电路设计

最终设计电路如下图3所示,发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。

接受方接收后,通过P1口在数码管上显示接收的信息。

图3.串行通信电路

3.3软件设计

通过通信协议进行发送接收,主机先送CDH给从机,当从机接收到CDH后,向主机回答DCH。

主机收到DCH后就把数码表TAB[16]中的10个数据送给从机,并发送检验和。

1.串行通信软件实现

(1)串行口工作于方式3;

用定时器1产生4800bit/s的波特率,晶振频率为11.0592MHZ。

(2)功能:

将本机ROM中数码表TAB[16]中的16个数发送到从机,并保存在从机内部ROM中,从机收到这16个数据后送到一个数码管循环显示。

(3)通信协议:

主机首先发送连络信号(CDH),从机接收到之后返回一个连络信号(DCH)表示从机已准备好接收。

(4)通信过程使用第九位发送奇偶校验位。

(5)从机接收到一个数据后,立即进行奇偶校验,若数据没有错误,则返回00H,否则返回FFH。

(6)主机发送一个数据后,等待从机返回数据;

若为00H,则继续发送下一个数据,若为FFH,则重新发送数据。

2.程序流程图

(1)发送端程序流程图

(2)接收方程序流程图

A、B两台51单片机的异步串行接收采用查询方式,它们详细的C51程序如下所示。

//A机程序

#include<

reg51.h>

//包含单片机寄存器的头文件

unsignedcharcodeddata[]={

0x88,0x83,0xc6,0xa1,0x86,0x8e,0xc0,0xf9,0xa4,0xb0,0x99,

0x92,0x82,0xf8,0x80,0x90,

};

//A,B,C,D,E,F,0,1...,8,9的段码

/************************

函数功能:

发送一个字节数据

*************************/

voidSend(unsignedchardat)

{

SBUF=dat;

While(TI==0)

;

//等待

TI=0;

}

/***********************

接收一个字节数据

************************/

unsignedcharReceive(void)

unsignedchardat;

while(RI==0)

//等待,直至接收完毕(RI=1)

RI=0;

//为了接收下一帧数据,需将RI清0

dat=SBUF;

//将接收缓冲器中的数据存于dat

returndat;

}

/**********************

延时约150ms

***********************/

voiddelay(void)

unsignedcharm,n;

for(m=0;

m<

200;

m++)

for(n=0;

n<

250;

n++)

}

/*****************

主函数

******************/

voidmain(void)

unsignedchari;

TMOD=0x

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1