PC机与单片机串行通信.docx
- 文档编号:23361625
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:27
- 大小:275.09KB
PC机与单片机串行通信.docx
《PC机与单片机串行通信.docx》由会员分享,可在线阅读,更多相关《PC机与单片机串行通信.docx(27页珍藏版)》请在冰豆网上搜索。
PC机与单片机串行通信
郑州航空工业管理学院
《单片机原理与应用》
课程设计说明书
07级电气工程及其自动化专业0706071班级
题目单片机和计算机的串行通信
姓名赵彬植学号*********
指导教师职称
二О年月日
课程设计任务书
摘要:
单片机由于性价比高、使用灵活等优点而广泛应用于各种电子系统、自动
控制系统,但是存储容量小。
处理的数据量不大。
为了克服这一缺点,可以将单
片机连接到PC机上,由单片机采集数据,然后将数据汇总到PC机,再进行各种数
据处理。
单片机与PC机之间的通讯是其中的关键技术之一,PC机与单片机间一般
采用的是串行通信,由于51系列单片机中一般集成了双全工的串行端口,只要配
以电平转换的驱动电路、隔离电路就可组成一个简单可行的通信接口。
关键词:
pc机、MCS-51单片机、RS-232接口、串行通信
一、课程设计的目的
二、课程设计具体要求
三、单片机发展简史
四、硬件设计及MCS-51单片机系统和RS-232接口简介
五、软件编程(包括程序流程和程序代码)
六、实验总结
七、参考文献
一、课程设计的目的
串行通信技术是单片机系统开发中常用的技术之一,串行口也是单片机常规内部集成的功能。
设计PC机与单片机进行串行通信硬件电路及软件流程,本设计通过定时器来设定通信的波特率,通过设置几个寄存器来设定工作方式。
PC机与单片机之间则由RS-232C接口相连。
1.进一步熟悉和掌握单片机的结构及工作原理。
2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。
3.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。
4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
5.通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应的工作打下基础
二、课程设计具体要求
1、查阅资料,学习PC与一个或多个单片机串口通信设计;
2、硬件设计,给出原理框图,并简要介绍各组成部分;
3、软件设计,给出程序流程图和程序清单,并说明各部分程序要实现;
4、总结,结出结论
三、单片机发展简史
如果将8位单片机的推出作为起点,那么单片机的发展历史大致可分为以下几个阶段
(1)第一阶段(1976-1978):
单片机的控索阶段。
以Intel公司的MCS–48为代表。
MCS–48的推出是在工控领域的控索,参与这一控索的公司还有Motorola、Zilog等,都取得了满意的效果。
这就是SCM的诞生年代,“单机片”一词即由此而来。
(2)第二阶段(1978-1982)单片机的完善阶段。
Intel公司在MCS–48基础上推出了完善的、典型的单片机系列MCS–51。
(3)第三阶段(1982-1990):
8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。
Intel公司推出的MCS–96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。
随着MCS–51系列的广应用,许多电气厂商竞相使用80C51为内核,将许多测控系统中使用的电路技术、接口技术、多通道A/D转换部件、可靠性技术等应用到单片机中,增强了外围电路路功能,强化了智能控制的特征。
(4)第四阶段(1990—):
微控制器的全面发展阶段。
随着单片机在各个领域全面深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。
四、硬件设计
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、MCS-51单片机系统
(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(01000000B)指令来设置单片机串行口的工作方式为方式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
3、RS-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。
RTSDTE请求DCE发送(RequestToSend)。
CTSDCE允许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接收端;(R代表RS232)
④TlIN、T2IN是2路TTL电平发送输入端,接8051的TxD发送端;
⑤TlOUT、T2OUT是2路转换后的发送RS-232C电平信号输出端,接传输线;(T代表TTL)
⑥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机
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PC 单片机 串行 通信
![提示](https://static.bdocx.com/images/bang_tan.gif)