PC机与单片机串行通信课程设计.docx

上传人:b****2 文档编号:723857 上传时间:2023-04-29 格式:DOCX 页数:25 大小:277.26KB
下载 相关 举报
PC机与单片机串行通信课程设计.docx_第1页
第1页 / 共25页
PC机与单片机串行通信课程设计.docx_第2页
第2页 / 共25页
PC机与单片机串行通信课程设计.docx_第3页
第3页 / 共25页
PC机与单片机串行通信课程设计.docx_第4页
第4页 / 共25页
PC机与单片机串行通信课程设计.docx_第5页
第5页 / 共25页
PC机与单片机串行通信课程设计.docx_第6页
第6页 / 共25页
PC机与单片机串行通信课程设计.docx_第7页
第7页 / 共25页
PC机与单片机串行通信课程设计.docx_第8页
第8页 / 共25页
PC机与单片机串行通信课程设计.docx_第9页
第9页 / 共25页
PC机与单片机串行通信课程设计.docx_第10页
第10页 / 共25页
PC机与单片机串行通信课程设计.docx_第11页
第11页 / 共25页
PC机与单片机串行通信课程设计.docx_第12页
第12页 / 共25页
PC机与单片机串行通信课程设计.docx_第13页
第13页 / 共25页
PC机与单片机串行通信课程设计.docx_第14页
第14页 / 共25页
PC机与单片机串行通信课程设计.docx_第15页
第15页 / 共25页
PC机与单片机串行通信课程设计.docx_第16页
第16页 / 共25页
PC机与单片机串行通信课程设计.docx_第17页
第17页 / 共25页
PC机与单片机串行通信课程设计.docx_第18页
第18页 / 共25页
PC机与单片机串行通信课程设计.docx_第19页
第19页 / 共25页
PC机与单片机串行通信课程设计.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

PC机与单片机串行通信课程设计.docx

《PC机与单片机串行通信课程设计.docx》由会员分享,可在线阅读,更多相关《PC机与单片机串行通信课程设计.docx(25页珍藏版)》请在冰点文库上搜索。

PC机与单片机串行通信课程设计.docx

PC机与单片机串行通信课程设计

课程设计

 

课程名称:

监控系统课程设计

设计题目:

PC机与单片机串行通信

院系:

专业:

年级:

姓名:

指导教师:

 

XX大学XX区

xx年xx月xx日

课程设计任务书

专业:

姓名学号

开题日期:

年月日完成日期:

年月日

题目:

PC机与单片机的串行通信

一、设计的目的

串行通信技术是单片机系统开发中常用的技术之一,串行口也是单片机常规内部集成的功能。

设计PC机与单片机进行串行通信硬件电路及软件流程,本设计通过定时器来设定通信的波特率,通过设置几个寄存器来设定工作方式。

PC机与单片机之间则由RS-232C接口相连。

 

二、设计的内容及要求

1、查阅资料,学习PC与一个或多个单片机串口通信设计;

2、硬件设计,给出原理框图,并简要介绍各组成部分;

3、软件设计,给出程序流程图和程序清单,并说明各部分程序要实现;

4、总结,结出结论

 

三、指导教师评语

 

四、成绩

指导教师(签章)

年月日

1设计意义

单片机由于性价比高、使用灵活等优点而广泛应用于各种电子系统、自动

控制系统,但是存储容量小。

处理的数据量不大。

为了克服这一缺点,可以将单

片机连接到PC机上,由单片机采集数据,然后将数据汇总到PC机,再进行各种数

据处理。

单片机与PC机之间的通讯是其中的关键技术之一,PC机与单片机间一般

采用的是串行通信,由于51系列单片机中一般集成了双全工的串行端口,只要配

以电平转换的驱动电路、隔离电路就可组成一个简单可行的通信接口。

2硬件设计

2.1整体设计

在PC系统中都装有异步通信适配器,利用它可以实现异步串行通信。

适配器的核心元件是可编程的intel8251芯片,它使PC有能力与其他具有RS-232标准的接口的计算机或设备进行通信,而MCS-51单片机本身具有一个双全工的串行口,因此只要配上电平转换电路就可以和RS-232接口组成一个简单的通信通道。

简单的PC与单片机通信只要3根线就可以了,单片机的TXD、RXD与PC的RXD、TXD分别相连,连接地线。

由于51系列单片机的串行口使用的是TTL电平,因此在PC和单片机间要有RS-232电平转换电路,图1所示为PC与单片机的通信图。

图1PC机与单片机的通信图

2.2芯片选择

(1)MCS-51单片机[1]

MCS-51单片机内部具有一个采用UART工作方式的全双工的串行通信接口。

该接口不仅可以同时进行数据的接受和发送,也可以作为同步移位寄存器使用。

该接口有4种工作方式,其中字符格式有8位、10位、11位,并可以以不同的波特率工作。

1〉串行口的内部结构

MCS-51单片机的串行接口结构如图2所示:

图2MCS-51单片机的串行接口图

该接口有两根串行通信传输线RXD(P3.0)和TXD(P3.1),以串行形式与外部逻辑接口。

数据的接收和发送就是通过这两根信号线来实现的。

在物理上存在两个互相独立的接收、发送缓冲器SBUF,属于特殊功能寄存器,这样可以同时进行数据的接收和发送,实现全双工传送。

2〉串行口的控制寄存器

①串行口数据缓冲器SBUF

两个互相独立的接收、发送缓冲器SBUF公用一个地址99H对应着2个寄存器:

发送寄存器和接收寄存器。

发送缓冲器用于存放要发送的数据,只能写入,不能读出。

接收缓冲器用于存放接收到的数据,只能读出,不能写入。

通过辨认对SBUF的指令是读指令还是写指令来区别是对接收缓冲器还是对发送缓冲器进行操作。

读SBUF,比如MOVA,SBUF指令,就是读接收缓冲器的内容;

写SBUF,比如MOVSBUF,A指令,就是修改发送缓冲器的内容。

②串行控制寄存器SCON

SCON可用于确定串行通信的工作方式和控制串行通道的某些功能,监视和控制串行口的工作状态,也可用于存放要发送和接收到的第9个数据(TB9、RB8),并没有接收和发送中断标志RI和TI。

表1SCON的格式

SM0

SM1

SM2

REN

TB8

RB8

TI

RI

SM0、SM1:

串行口操作模式选择位,指定了串行通信的工作方式。

串行接口有4种工作方式。

各种工作方式的区别在于功能、数据格式和波特率的不同。

表2串行口的各种工作方式

SM0

SM1

工作方式

功能

波特率

0

0

0

8位同步移位寄存器

f/12

0

0

0

10位UART

可变

1

0

2

11位UART

f/64或f/32

1

1

3

11位UART

可变

在任务6中,就是使用了MOVSCON,#40H(B)指令来设置单片机串行口的工作方式为方式1的。

SM2:

多机通信控制位。

主要用于方式2和方式3中(数据为9位)。

在方式2和方式3处于接收状态时,如SM2=1,REN=1,且接收到的第9位数据RB8是0,则RI(接收中断标志位)不会被置1。

只有在接收到的第9位数据RB8是1,则RI才会被置1。

在方式2和方式3处于接收状态时,如SM2=0,无论接收到的第9位数据RB8时0还是1,RI都会被置1。

在方式1中,如SM2=1,只有在接收到有效停止位时,则RI才会被置1。

在模式0中,SM2必须为0。

REN:

允许串行接收控制位。

由软件置1或清除。

REN=1,允许接收。

启动串行口的RXD,开始接收数据;REN=0,禁止接收。

在任务6中就是用指令SETBREN来允许乙机的串行口接收的。

TB8:

在方式2和方式3时,它就是要发送的第9个数据位,一般是程控位2。

按需要由软件进行置1或清0。

如在多处理通信中,用于表示是地址桢还是数据桢。

在模式9中。

此位不用。

RB8:

接收数据位8。

在方式2和3时,它是接收到的第9个数据位。

在模式1中,如SM2=0,RB8时接收到的停止位;在模式0中,此位不用。

TI:

发送中断标志位。

在模式0中,当发送完第8位数据时,由硬件置1;在其他模式中,在发送停止位前,由硬件置1。

TI=1时,申请中断,CPU响应中断后,发送下一桢数据。

RI:

接收中断标志位。

在模式0中,接收第8位结束时,由硬件置1;在其他模式中,在接收停止位的半中间,由硬件置1。

RI=1时,申请中断,要求CPU取走数据。

但在模式一中,SM2=1时,如未接收到有效的停止位,则不会对RI置位。

在任何模式中,CPU响应中断后,都必须用软件来清除RI和TI。

在任务6中,在甲机发送和乙机接收程序中,都有JBC这样一条指令,就是用来清除TI和RI标志的。

③特殊功能寄存器PCON

PCON主要是为CHMOS型单片机的电源控制而设置的SFR,在HMOS的MCS-51单片机中,除了最高位SMOD位外,其他位都是虚设的。

表3PCON的格式

SMOD

GF1

GF0

PD

IDL

SMOD是串行口波特率选择位,只有这一位和串行通信有关。

方式0的波特率固定,当使SMOD=1时,则使方式1、方式2、方式3的波特率加倍。

当SMOD=0时,各工作方式的波特率不加倍。

3〉串行口的工作方式

MCS-51单片机的串行接口有四种工作方式,用户可以通过SCON中的SM1、SM0位来选择。

①方式0

方式0为同步移位寄存器方式,其波特率是固定的,为振荡频率f的1/12,数据由RXD(P3.0脚)端输入,同步移位脉冲由TXD(P3.1脚)端输出,发送、接收的是8位数据,低位在前。

发送:

当一个数据写入串行口发送缓冲器SBUF时,串行口将8位数据以fosc/12的波特率从RXD引脚输出(低位在前),发送完置中断标志TI为1,请求中断。

在再次发送数据之前,必须由软件清TI为0。

具体接线图如图3所示。

其中,74LS164为串入并出移位寄存器。

图3方式0的发送接线图

接收:

在满足REN=1和RI=0的条件下,串行口即开始从RXD端以fosc/12的波特率输入数据(低位在前),当接收完8位数据后,置中断标志RI为1,请求中断。

在再次接收数据之前,必须由软件清RI为0。

具体接线图如图4所示。

其中,74LS165为并入串出移位寄存器。

图4方式0的接收接线图

串行控制寄存器SCON中的TB8和RB8在方式0中未用。

值得注意的是,每当发送或接收完8位数据后,硬件会自动置TI或RI为1,CPU响应TI或RI中断后,必须由用户用软件清0。

方式0时,SM2必须为0。

②方式1

在方式1状态下,串行口为8位异步通信接口。

一桢信息为10位,包括1位起始位(0),8位数据位(低位在前)和1位停止位

(1)。

如图5所示

图5方式1的信息格式

TXD为发送端,RXD为接收端。

波特率不变。

方式1是单片机与PC机串行通信最常用的方式。

发送:

发送时,数据从TXD端输出,当数据写入发送缓冲器SBUF后,启动发送器发送。

当发送完一帧数据后,置中断标志TI为1。

方式1所传送的波特率取决于定时器1的溢出率和PCON中的SMOD位。

接收:

接收时,由REN置1,允许接收,串行口采样RXD,当采样由1到0跳变时,确认是起始位“0”,开始接收一帧数据。

当RI=0,且停止位为1或SM2=0时,停止位进入RB8位,同时置中断标志RI;否则信息将丢失。

所以,方式1接收时,应先用软件清除RI或SM2标志。

③方式2

方式2下,串行口为11位UART,传送波特率与SMOD有关。

发送或接收一帧数据包括1位起始位0,8位数据位,1位可编程位(用于奇偶校验)和1位停止位1。

其帧格式如图6所示。

图6方式2的信息帧格式

发送:

发送时,先根据通信协议由软件设置TB8,然后用指令将要发送的数据写入SBUF,启动发送器。

写SBUF的指令,除了将8位数据送入SBUF外,同时还将TB8装入发送移位寄存器的第9位,并通知发送控制器进行一次发送。

一帧信息即从TXD发送,在送完一帧信息后,TI被自动置1,在发送下一帧信息之前,TI必须由中断服务程序或查询程序清0。

接收:

当REN=1时,允许串行口接收数据。

数据由RXD端输入,接收11位的信息。

当接收器采样到RXD端的负跳变,并判断起始位有效后,开始接收一帧信息。

当接收器接收到第9位数据后,若同时满足以下两个条件:

RI=0和SM2=0或接收到的第9位数据为1,则接收数据有效,8位数据送入SBUF,第9位送入RB8,并置RI=1。

若不满足上述两个条件,则信息丢失。

④方式3

方式3为波特率可变的11位UART通信方式,除了波特率以外,方式3和方式2完全相同。

4〉MCS-51串行口的波特率

在串行通信中,收发双方对传送的数据速率,即波特率要有一定的约定。

MCS-51单片机的串行口通过编程可以有4种工作方式。

其中,方式0和方式2的波特率是固定的,方式1和方式3的波特率可变,由定时器1的溢出率决定,下面加以分析。

①方式0和方式2

在方式0中,波特率为时钟频率的1/12,即fosc/12,固定不变。

在方式2中,波特率取决于PCON中的SMOD值,当SMOD=0时,波特率为fosc/64;当SMOD=1时,波特率为fosc/32。

②方式1和方式3

在方式1和方式3下,波特率由定时器1的溢出率和SMOD共同决定。

即:

方式1和方式3的波特率=·定时器1溢出率

其中,定时器1的溢出率取决于单片机定时器1的计数速率和定时器的预置值。

计数速率与TMOD寄存器中的C/位有关。

当C/=0时,计数速率为fosc/12;当C/=1时,计数速率为外部输入时钟频率。

下表列出了各种常用的波特率及获得办法。

表4定时器1产生的常用波特率

波特率(b/s)

f/MHz

SMOD

定时器1

C/T

模式

初始值

方式0:

1

12

*

*

*

*

方式2:

375k

12

1

*

*

*

方式1、3:

62.5k

12

1

0

2

FFH

19.2k

11.059

1

0

2

FDH

9.6k

11.059

0

0

2

FDH

4.8k

11.059

0

0

2

FAH

2.4k

11.059

0

0

2

F4H

1.2k

11.059

0

0

2

E8H

137.5k

11.986

0

0

2

1DH

110

6

0

0

2

72H

110

12

0

0

1

FEEBH

2.3RS-232接口简介

(1)信息格式

PC的主板上通常都预留有一个或两个九针(DB一9)全双工串行接口(COM1、COi2),其电气标准遵循RS一232C标准.

RS-232是使用最早、应用最多的一种异步串行通信总线标准,它是美国电子工业协会1962年公布,1969年最后修订而成的。

其中RS表示recommendedstandard,232是该标准的识别号。

RS-232主要用来定义各电路数据终端之间的电气性能。

RS-232接口总线适用于设备之间的通信距离不大于15米,传输速度最大为20Kbit/s。

RS-232采用标准的异步通信串行数据格式,即信息的开始为起始位,信息的结束为停止位1,信息本身可以是5、6、7、8位,可根据需要再加上一位奇偶校验位,如果两个信息之间有间隔,加上空闲位1。

如图7所示

图7RS-232的信息格式

在通常的异步串行通信中只使用其中三个引脚,即引脚2(接收RXD)、引脚3(发送TXD)、引脚5(信号地SG).各引脚功能如图8所示.

图8九针串口引脚功能图

(2)RS-232C的接口信号

RS-232C规标准接口有25条线,4条数据线、11条控制线、3条定时线、7条备用和未定义线。

常用的只有9根,它们是:

①联络控制信号线:

数据装置准备好(Datasetready-DSR)——有效时(ON)状态,表明MODEM处于可以使用的状态。

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

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

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

请求发送(Requesttosend-RTS)——用来表示DTE请求DCE发送数据,即当终端要发送数据时,使该信号有效(ON状态),向MODEM请求发送。

它用来控制MODEM是否要进入发送状态。

允许发送(Cleartosend-CTS)——用来表示DCE准备好接收DTE发来的数据,是对请求发送信号RTS的响应信号。

当MODEM已准备好接收终端传来的数据,并向前发送时,使该信号有效,通知终端开始沿发送数据线TxD发送数据。

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

在全双工系统中作发送方式和接收方式之间的切换。

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

接收线信号检出(ReceivedLinedetection-RLSD)——用来表示DCE已接通通信链路,告知DTE准备接收数据。

当本地的MODEM收到由通信链路另一端(远地)的MODEM送来的载波信号时,使RLSD信号有效,通知终端准备接收,并且由MODEM将接收下来的载波信号解调成数字两数据后,沿接收数据线RxD送到终端。

此线也叫做数据载波检出(DataCarrierdectection-DCD)线。

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

②数据发送与接收线:

发送数据(Transmitteddata-TxD)——通过TxD终端将串行数据发送到MODEM,(DTE→DCE)。

接收数据(Receiveddata-RxD)——通过RxD线终端接收从MODEM发来的串行数据,(DCE→DTE)。

③地线

有两根线SG、PG——信号地和保护地信号线,无方向。

上述控制信号线何时有效,何时无效的顺序表示了接口信号的传送过程。

例如,只有当DSR和DTR都处于有效(ON)状态时,才能在DTE和DCE之间进行传送操作。

若DTE要发送数据,则预先将DTR线置成有效(ON)状态,等CTS线上收到有效(ON)状态的回答后,才能在TxD线上发送串行数据。

这种顺序的规定对半双工的通信线路特别有用,因为半双工的通信才能确定DCE已由接收方向改为发送方向,这时线路才能开始发送。

2个数据信号:

发送TXD;接收RXD。

1个信号地线:

SG。

6个控制信号:

DSR��数传机(即modem)准备好,DataSetReady.

DTR��数据终端(DTE,即微机接口电路,如Intel8250/8251,16550)准备好,DataTerminalReady。

RTS��DTE请求DCE发送(RequestToSend)。

CTS��DCE允许DTE发送(ClearToSend),该信号是对RTS信号的回答。

DCD��数据载波检出,DataCarrierDetection当本地DCE设备(Modem)收到对方的DCE设备送来的载波信号时,使DCD有效,通知DTE准备接收,并且由DCE将接收到的载波信号解调为数字信号,经RXD线送给DTE。

RI��振铃信号Ringing当DCE收到交换机送来的振铃呼叫信号时,使该信号有效,通知DTE已被呼叫。

表5RS-232C的接口信号

232引脚

CCITT

Modem

名称

说明

用途

异步

同步

1

101

AA

保护地

设备外壳接地

PE

PE√

2

103

BA

发送数据

数据送Modem

TXD

 

3

104

BB

接收数据

从Modem接收数据

RXD

 

4

105

CA

请求发送

在半双工时控制发送器的开和关

RTS

 

5

106

CB

允许发送

Modem允许发送

CTS

 

6

107

CC

数据终端准备好

Modem准备好

DSR

 

7

102

AB

信号地

信号公共地

SG

SG√

8

109

CF

载波信号检测

Modem正在接收另一端送来的信号

DCD

  

9

  

  

   

  

   

10

  

  

  

  

  

11

  

  

  

  

  

12

 

 

接收信号检测

(2)

在第二通道检测到信号

  

13

 

 

允许发送

(2)

第二通道允许发送

  

14

118

  

发送数据

(2)

第二通道发送数据

  

15

113

DA

发送器定时

为Modem提供发送器定时信号

  

16

119

 

接收数据

(2)

第二通道接收数据

  

17

115

DD

接收器定时

为接口和终端提供定时

  

18

 

 

 

  

  

19

 

 

请求发送

(2)

连接第二通道的发送器

  

20

108

CD

数据终端准备好

数据终端准备好

DTR

 

21

 

 

 

 

  

22

125

 

振铃

振铃指示

RI

  

23

111

CH

数据率选择

选择两个同步数据率

  

24

114

DB

发送器定时

为接口和终端提供定时

  

25

 

 

(3)RS-232电平转换器—MAX232

RS-232规定了自己的电气标准,由于它是在TTL电路之前研制的,因此它的电平不是+5V和地,而是采用负逻辑,即逻辑“0”:

+5V~—5V,逻辑“1”:

—5V~—15V。

因此RS-232不能和TTL电平直接相连,必须进行电平转换。

本设计选用MAX232。

MAX232的引脚图如下所示:

图9MAX232的引脚图

管脚说明如下

①C0+、C0-、C1+、C1-是外接电容端;

②R1IN、R2IN是2路RS-232C电平信号接收输入端;

③RlOUT、R2OUT是2路转换后的TTL电平接收信号输出端,送8051的RXD接收端;

④TlIN、T2IN是2路TTL电平发送输入端,接8051的TxD发送端;

⑤TlOUT、T2OUT是2路转换后的发送RS-232C电平信号输出端,接传输线;

⑥V+经电容接电源+5V;

⑦V-经电容接地。

这种连接的传输介质一般采用双绞线,通信距离一般不超过15m,传输率小于20kB/s。

(4)RS-232总线规定[2]

RS-232标准总线为25根,采用标准的D型25芯插头座。

引脚及功能如图10所示

图10RS-232C引脚图

在最简单的全双工系统中,仅有发送数据、接收数据和信号地三根线即可。

对于MCS-51单片机。

利用其RXD线、TXD线和一根地线。

就可以构成符合RS-232接口标准的全双工串行通信口,这是PC机和单片机最简单的零调制经济型连接,是进行全双工通信所必须的最少线路。

图11给出了采用MAX232芯片的PC机与单片机串行通信接口电路,与PC机相连采用PC机的9芯标准插座。

图11PC机与单片机串行通信接口电路

3软件编程

将PC机键盘的输入发送给单片机,单片机收到PC机发来的数据后,回送同一数据给PC机,并在屏幕上显示出来。

只要屏幕上显示的字符和所键入的字符相同,说明两者之间的通信正常。

[3]

双方约定:

波特率为2400bit/s,通信格式为8个数据位,一个停止位,无奇偶校验位。

3.1单片机通讯软件。

单片机通过中断方式接收PC机发送的数据,并回送。

根据信息格式,可以设定单片机的串行口工作在方式1。

在串行口方式1中,波特率是由定时器T1产生的。

如晶振为6MHZ,波特率为2400bit/s,这时T1工作在方式2(自动重新装入初值)。

经计算,T1的初始值应为F3H,SMOD=1。

程序框图如图12、13所示:

图12主程序流程图

图13中断服务子程序流程图

程序设计如下:

ORG0000H

LJMPSTART;主程序入口

ORG0023H

LJMPINTS;串行口中断入口

ORG0100H

START:

MOVTMOD,#20H;初始化定时器1为方式2

MOVTL1,#0F3H;与2400波特率相应的定时器初值

MOVTH1,#0F3H

SETBTR1;启动定时器1

MOVSCON,#50H;串行口工作在方式1,允许接收

MOVPCON,#80H;SMOD=1

SETBEA;开串行口中断

SETBES;允许中断

LOOP:

SJMPLOOP;等待数据接收

INTS:

CLREA;禁止中断

CLRRI;清除中断标志RI

MOVA,SBUF;从SBUF取接收到的数据

MOVSBUF,A;回送

WAIT:

JNBTI,WAIT;判断回送是否

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2