授课日期 班次 授课时数 2
课题,任务十一 两台单片机数据互传教学目的:了解单片机串行通信的基本概念与串行通讯程序的编制掌握单片机的串行通信接口电路重点,单片机的串行通信接口难点,串口的工作及方式字的设定教具,多媒体作业,5.7 5.8
自用参考书:《单片机应用技术》耿长清主编、《单片机应用技术》刘守义主编教学过程,由任务十一:两台单片机数据互传引入本次课内容
1.任务描述详细描述任务,并演示本任务的结果,给同学们留下深刻的印象
2.串行通信的基本概念由计算机与外界进行信息交换并结合本课题的任务引出串行通信的基本概念
1)数据通讯的传输方式
2)串行数据通信的两种方式
3.MCS-51串行口及工作方式
1)串行接口结合前面学过的定时 /计数器使用方法,引出串行接口的两个特殊功能寄存器
2)串行接口的工作方式
4.串行通讯程序的编制
5.串行口的应用举例
6.课堂小结课后小结:
5,3 任务十一 两台单片机数据互传
5,3,1 硬件电路与工作原理任务描述,两台单片机之间,要求将对方单片机的按键值
( S1=1,S2=2,S3=3,S4=4)通过串口传送给另外一方,并在发光二极管显示。 R 1 I N13
R 2 I N
8
T 1 I N
11
T 2 I N
10
GND
15
V+
2
V-
6
V
C
C
16
R 1 O U T
12
R 2 O U T
9
T 1 O U T
14
T 2 O U T
7
C 1 +
1
C 1 -
3
C 2 +
4
C 2 -
5
U6
IN
NV-
N R X
N T X
IN
V C C C 1 0
1 04
C 1 4
1 04C 1 1
1 04
C 1 3
1 04
C 1 2
1 04
M A X 2 32
1
6
2
7
3
8
4
9
5
J3
串口
5,3 任务十一 两台单片机数据互传
5,3,2 控制程序清除发送标志发送完毕?
结束开始初始化
S1 键合上?
启动串行发送开始初始化接收标志= 1?
清除标志接收缓冲区内容送 P1
结束
5,3 任务十一 两台单片机数据互传
5,3,3 源程序的编辑、编译、下载打开“伟福”模拟仿真软件进行程序的编辑、编译。
1、正确选择单片机类型 8751或 8031
2、正确选择编译器-伟福编译器
3、选择模拟仿真功能
4、打开或新建文件进行编辑
5、编译打开,ISP下载软件”将目标文件下载到 ISP-4实验开发板上的
AT89S51单片机芯片,观察程序运行结果。
1、编译成功后打开下载软件
2、选择好单片机 89S51并测试
3、打开伟福 6000编译生成的,BIN或,HEX文件
4、选择自动写完成擦除、写、读、校验过程
5、观看运行结果
5,3任务十一 两台单片机数据互传
5,3,4 相关知识
1、单片机如何能收、发数据?
基本概念
数据通信的传输方式常用于数据通信的传输方式有单工、半双工、全双工和多工方式。
单工方式:数据仅按一个固定方向传送。因而这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集。
半双工方式:数据可实现双向传送,但不能同时进行,实际的应用采用某种协议实现收 /发开关转换。
全双工方式:允许双方同时进行数据双向传送,但一般全双工传输方式的线路和设备较复杂。
多工方式:以上三种传输方式都是用同一线路传输一种频率信号,
为了充分地利用线路资源,可通过使用多路复用器或多路集线器,采用频分、时分或码分复用技术,即可实现在同一线路上资源共享功能,
我们称之为多工传输方式。
5,3任务十一 两台单片机数据互传
5,3,4 相关知识
1、单片机如何能收、发数据?
串行数据通信两种形式
异步通信在这种通信方式中,接收器和发送器有各自的时钟,它们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下:一个起始位,
仅接着是若干个数据位。
5,3任务十一 两台单片机数据互传
同步通信同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步通信中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送数据量较大的场合,速度就慢得多。同步传输方式去掉了这些起始位和停止位,只在传输数据块时先送出一个同步头
(字符)标志即可
5,3任务十一 两台单片机数据互传
串行数据通信的传输速率在串行通信中,数据的传诵是逐位按顺序传送的。数据传诵的速率常用波特率来表示。
所谓波特率,是指在串行数据通信中每秒传送的二进制数位数,即 1波特 =1bit/s( 1位 /秒)
国际上规定了标准拨特率系列,这些标准波特率系列为 110,300,600、
1200,1800,2400,4800,9600和 192000bit/s等。
与拨特率相对应的是传送每位二进制数所用的时间( Td),它是波特率的倒数。在进行串行通信中的发送端和接收端进行波特率设置时,必须采用相同的波特率,才能保证串行通信的正确性。一般穿行通信的波特率在 50~9600bit/s之间
5,3 任务十一 两台单片机数据互传
5,3,4 相关知识
MCS-51的串行口和控制寄存器
串行口控制寄存器
MCS-51单片机串行口寄存器结构如图所示。 SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发送器寄存器,可以实现全双工通信。但这两个寄存器具有同一地址( 99H)。 MCS-51的串行数据传输很简单,只要向发送缓冲器写入数据即可发送数据。而从接收缓冲器读出数据即可接收数据。
5,3 任务十一 两台单片机数据互传
5,3,4 相关知识
串行通信控制寄存器 SCON
字节地址为 98H,SCON的低二位是串行口的发送和接收中断标志,其格式如下:
SCON寄存器结构
SCON
D7 D6 D5 D4 D3 D2 D1 D0
SM0 SM1 SM2 REN TB8 RB8 TI RI
位地址 9FH 9EH 8DH 9CH 9BH 9AH 99H 98H
·TI:MCS-51串行口的发送中断标志,在串行口以方式 0发送时,每当发送完 8位数据,由硬件置位 。 如果以方式 1,方式 2或方式 3发送时,在发送停止位的开始时 TI被置 1,TI=1表示串行发送器正向
CPU发出中断请求,向串行口的数据缓冲器 SBUF写入一个数据后就立即启动发送器继续发送 。 但是 CPU响应中断请求后,转向执行中断服务程序时,并不清零 TI,TI必须由用户的中断服务程序清
,0”,即中断服务程序必须有,CLR TI”或,ANL SCON,#0FDH”等指令来清零 TI。
·RI:串行口接收中断标志,若串行口接收器允许接收,并以方式 0工作,每当接收到 8位数据时,RI被置 1,若以方式 1,2,3方式工作,
当接收到半个停止位时,TI被置 1,当串行口一方式 2或 3方式工作,
且当 SM2=1时,仅当接收到第 9位数据 RB8为 1后,同时还要在接收到半个停止位时,RI被置 1。 RI为 1表示串行口接收器正向 CPU申请中断。同样 RI标志栩栩如生由用户的软件清,0” 。
5,3 任务十一 两台单片机数据互传
5,3 任务十三 两台单片机数据互传下面我们对各控制位功能介绍如下:
SM0,SM1,串行口工作方式控制位
SM0,SM1 工作方式
00 方式 0 01 方式 1
10 方式 2 11 方式 3
SM2,多机通信控制位多机通信是工作于方式 2和方式 3,SM2位主要用于方式 2和方式 3。 接收状态,当串行口工作于方式 2或 3,以及 SM2=1时,只有当接收到第 9位数据 ( RB8) 为 1时,才把接收到的前 8位数据送入 SBUF,且置位 RI发出中断申请,否则会将接受到的数据放弃 。 当 SM2=0时,就不管第位数据是 0还是 1,都难得数据送入 SBUF,并发出中断申请 。
工作于方式 0时,SM2必须为 0。
REN,允许接收位
REN用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,
禁止接收 。
5,3 任务十三 两台单片机数据互传
TB8,发送接收数据位 8
在方式 2和方式 3中,TB8是要发送的 —— 即第 9位数据位 。 在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,
TB8=1时为地址 。
RB8,接收数据位 8
在方式 2和方式 3中,RB8存放接收到的第 9位数据,用以识别接收到的数据特征。
TI,发送中断标志位可寻址标志位 。 方式 0时,发送完第 8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI
可由软件清,0” 。
RI,接收中断标志位可寻址标志位。接收完第 8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。
5,3 任务十一 两台单片机数据互传
电源管理寄存器 PCON
PCON主要是为 CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是 87H,其结构格式如下:
PCON电源管理寄存器结构
PCON D7 D6 D5 D4 D3 D2 D1 D0
位符号 SMOD - - - GF1 GF0 PD IDL
在 CHMOS型单片机中,除 SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当 SMOD=1时,串行口波特率加倍。系统复位默认为
SMOD=0。
中断允许寄存器 IE
5,3 任务十一 两台单片机数据互传中断允许寄存器在前一节中已阐述,这里重述一下对串行口有影响的位 ES。 ES为串行中断允许控制位,ES=1允许串行中断,
ES=0,禁止串行中断
IE中断允许控制寄存器结构位符号 EA - - ES ET1 EX1 ET0 EX0
位地址 AFH AEH ADH ACH ABH AAH A9H A8H
5,3 任务十一 两台单片机数据互传
单片机怎样收发数据?
串口程序的编制和定时,计数器以及中断程序编制一样,首先也应该初始化,
先设定 SCON,设定好串口工作方式如:任务程序中的 MOV SCON,#40H 设定串口工作方式一 。
如果用到中断的,还必须设定 IE或 IP。
如:任务中的接收程序可以改成:
……
ORG 0023H
LJMP P_JS
ORG 0030H
……
SETB EA
SETB ES
P_JS,CLR RI
……
RETI
5,3 任务十一 两台单片机数据互传
然后设定波特率,即根据工作方式设置定时计数器 T1,以及 PCON
寄存器 。
如任务中的 MOVPCON,#80H ;波特率加倍
MOV TMOD,#20H ;定时器 1工作在方式 2
MOV TH1,#0FDH ;设置波特率为 9600
值得注意的是,由于串行发送,接收标志不能硬件自动清除,所以,
不管是中断方式还是查询方式编程时都必须用软件方式清除 TI,RI。
课堂小结:
1、任务十一的硬件电路与工作原理
2、控制程序
3、单片机如何能收、发数据?
4、单片机怎样通过程序控制收、发数据?
作业:
1、预习串口通讯实验实训项目,完成预习报告、编写控制程序
2,P135 5.7 5.8