广东工业大学单片机原理及应用教案第8章穿行通信接口技术

上传人:w****i 文档编号:92777171 上传时间:2019-07-12 格式:PPT 页数:28 大小:294KB
返回 下载 相关 举报
广东工业大学单片机原理及应用教案第8章穿行通信接口技术_第1页
第1页 / 共28页
广东工业大学单片机原理及应用教案第8章穿行通信接口技术_第2页
第2页 / 共28页
广东工业大学单片机原理及应用教案第8章穿行通信接口技术_第3页
第3页 / 共28页
广东工业大学单片机原理及应用教案第8章穿行通信接口技术_第4页
第4页 / 共28页
广东工业大学单片机原理及应用教案第8章穿行通信接口技术_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《广东工业大学单片机原理及应用教案第8章穿行通信接口技术》由会员分享,可在线阅读,更多相关《广东工业大学单片机原理及应用教案第8章穿行通信接口技术(28页珍藏版)》请在金锄头文库上搜索。

1、第8章 MCS51串行口,8.1 串行口及其通信方式,8.2 IBM-PC系列机与,单片机 的通信技术,8.1 串行口及其通信方式,8.1.1 串行通信基础知识 一、异步通讯方式 以字符为传送单位用起始位和停止位标识每个字符的 开始和结束字符间隔不固定,只需字符传送时同步。 1. 异步通讯常用格式:一个字符帧,二、同步通讯 以一串字符为一个传送单位,字符间不加标识位, 在一串字符开始用同步字符标识,硬件要求高,通讯双 方须严格同步。,2. 异步通讯双方的两项约定,(1)字符格式规定(一帧): 数据位,校验位,起始位和停止位。 (2)波特率(位/秒)对传送速率的规定 例:要求每秒传送120个字符

2、,每帧为10位。 解: B=120?0=1200波特每位0.83ms 数据位传输率=120?=960位/秒,三 串行接口功能,1.发送器:并串数据格式转换,添加标识位和校验位,一 帧发送结束,设置结束标志,申请中断。 2.接收器:串并数据格式转换,检查错误,去掉标识位, 保存有效数据,设置接收结束标志,申请中断。 3.控制器:接收编程命令和控制参数,设置工作方式:同步/ 异步、字符格式、波特率、校验方式、数据位与 同步时钟比例等。,四 串行数据传送方向 单工通讯:数据单向传送。 半双工通讯:数据可分时双向传送。 全双工通讯:可同时进行发送和接收。,8.1.2 串行口控制寄存器,一、1个全双工串

3、行接口,可同时进行发送和接收。 串行接口输入/输出引脚:TXD(P3.1)、RXD(P3.0) 数据格式(P.237图):按不同方式,一帧位数 8/10/11 发送/接收时,数据皆低位在前。,一帧字符发送/接收结束,置位标志位(TI/RI)并申请SIO中断。 中断控制:中断允许位ES 中断入口:0023H,二、串行接口控制,1. 数据缓冲器SBUF 发送SBUF和接收SBUF共用一个地址99H。 (1)发送SBUF存放待发送的8位数据,写入SBUF将同 时启动发送。 发送指令: MOV SBUF,A (2)接收SBUF存放已接收成功的8位数据,供CPU读取。 读取串行口接收数据指令:MOV A

4、,SBUF,2.串行口控制/状态寄存器SCON(98H),SM0,SM1:选择串行口4种工作方式。 SM2:多机控制位,用于多机通讯。 REN:允许接收控制位,REN=1,允许接收;REN=0,禁止接 收。 TB8: 发送的第9位数据位,可用作校验位和地址/数据标识位 RB8: 接收的第9位数据位或停止位 TI: 发送中断标志,发送一帧结束,TI=1,必须软件清零 RI: 接收中断标志,接收一帧结束,RI=1,必须软件清零 3.节电控制寄存器PCON SMOD(PCON.7):波特率加倍控制位。 SMOD=1,波特率加倍, SMOD=0,则不加倍。,SM0,SM1选择四种工作方式。 一、方式0

5、:同步移位寄存器方式。用于扩展并行I/O接口。 1. 一帧8位,无起始位和停止位。 2. RXD:数据输入/输出端。 TXD:同步脉冲输出端,每个脉冲对应一个数据位。 3. 波特率B = fosc/12 如: fosc=12MHz, B=1MHz,每位数据占1s。,8.1.3 串行接口的工作方式,4. 发送过程:写入SBUF,启动发送,一帧发送结束,TI=1。 接收过程:REN=1且RI=0,启动接收,一帧接收完毕,RI=1。,数据从RXD(P3.0)引脚串行输出,低位在先,高位 在后;TXD(P3.1)引脚输出移位脉冲,其频率为foc/12; 发送完毕后,中断标志位TI为1。如要发送数据,如

6、下所示: MOV SCON,#00H ;串行口方式0 MOV SBUF,A ;将数据送出 JNB TI,$ ;等待数据发送完毕,5. 移位寄存器方式举例,二、 方式1,8位数据异步通讯方式。 1. 一帧10位:8位数据位,1个起始位(0),1个停止位(1)。 2. RXD:接收数据端。 TXD:发送数据端。 3. 波特率:用T1作为波特率发生器,B=(2SMOD/32)T1溢出率。 4. 发送:写入SBUF,同时启动发送,一帧发送结束,TI=1。 接收:REN=1,允许接收。接收完一帧,若RI=0且停止位为1 (或SM2=0),将接收数据装入SBUF,停止位装入RB8,并使RI=1;否则丢弃接

7、收数据,不置位RI。,当REN=1,CPU开始采样RXD引脚负跳变信号,若出 现负跳变,才进入数据接收状态,先检测起始位,若第一 位为0,继续接收其余位;否则,停止接收,重新采样负跳 变。数据采样速率为波特率16倍频,在数据位中间,用第7、 8、9个脉冲采样3次数据位,并3中取2保留采样值。,9位数据异步通讯方式。 1. 一帧为11位:9位数据位,1个起始位(0),1个停止位(1)。第9位数据位在TB8/RB8中,常用作校验位和多机通讯标识位。 2. RXD:接收数据端,TXD:发送数据端。 3. 波特率: 方式2:B=(2SMOD/64)fosc 。 方式3:B=(2SMOD/32)T1溢出

8、率 。,三、 方式2和方式3,4. 发送:先装入TB8,写入SBUF并启动发送,发送结束, TI=1。 接收:REN=1,允许接收。接收完一帧,若RI=0且第9位 为1 (或SM2=0),将接收数据装入接收SBUF,第9 位装入RB8,使RI=1;否则丢弃接收数据,不置位 RI。,8.1.4、计算波特率,方式0为固定波特率: B=fosc/12 方式2可选两种波特率: B=(2SMOD /64)fosc 方式1、3为可变波特率,用T1作波特率发生器。 B=(2SMOD/32)T1溢出率 T1为方式2的时间常数: X = 28 - t/T 溢出时间: t= (28 -X)T = (28 -X)1

9、2/ fosc T1溢出率=1/t= fosc /12(2n -X) 波特率B=(2SMOD /32)fosc/12(28-X) 串行口方式1、3,根据波特率选择T1工作方式,计算 时间常数。 T1选方式2: TH1=X= 28-fosc/122SMOD/(32B) T1选方式1用于低波特率,需考虑T1重装时间常数时间。,8.1.5 串行口的应用,串行口初始化编程格式: SIO:MOV SCON,#控制状态字;写方式字且TI=RI=0 (MOV PCON,#80H) ;波特率加倍 ( MOV TMOD,#20H ) ;T1作波特率发生器 ( MOV TH1,#X ) ;选定波特率 ( MOV

10、TL1,#X ) ( SETB TR1) ( SETB EA) ;开串行口中断 ( SETB ES),一、串行口初始化,二、发送程序,1. 查询方式: TRAM: MOV A,R0 ;取数据 MOV SBUF,A ;发送一个字符 WAIT: JBC TI,NEXT ;等待发送结束 SJMP WAIT NEXT: INC R0 ;准备下一次发送 SJMP TRAM,2.中断方式:,ORG 0023H ;串行口中断入口 AJMP SINT MAIN: ;初始化编程 TRAM: MOV A,R0 ;取数据 MOV SBUF,A ;发送第一个字符 H: SJMP H ;其它工作 SINT: CLR T

11、I ;中断服务程序 INC R0 MOV A,R0 ;取数据 MOV SBUF,A ;发送下一个字符 RETI,三、接收程序,REN=1、RI=0等待接收,当RI=1,从SBUF读取数据。 1.查询方式: WAIT: JBC RI,NEXT ;查询等待 SJMP WAIT NEXT: MOV A,SBUF ;读取接收数据 MOV R0,A ;保存数据 INC R0 ;准备下一次接收 SJMP WAIT,四、串行口方式0,用于扩展单片机的并行I/O接口。 串行口实现:并行串行的数据转换 74LS165/74LS164实现:串行并行的数据转换。,五、异步通讯程序举例 1.发送程序:将片内RAM 5

12、0H起始单元的16个数由串 行口发送。要求发送波特率为系统时钟 的32分频,并进行奇偶校验。,MAINT: MOV SCON,#80H ;串行口初始化 MOV PCON,#80H ;波特率 SETB EA SETB ES ;开串行口中断 MOV R0,#50H ;设数据指针 MOV R7,#10H ;数据长度 LOOP: MOV A,R0 ;取一个字符 MOV C,P ;加奇偶校验 MOV TB8,C MOV SBUF,A ;启动一次发送 HERE: SJMP HERE ;CPU执行其它任务,ORG 0023H ;串行口中断入口 AJMP TRANI,TRANI: PUSH A ;保护现场 P

13、USH PSW CLR TI ;清发送结束标志 DJNZ R7,NEXT ;是否发送完? CLR ES ;发送完,关闭串行口中断 SJMP TEND NEXT: INC R0 ;未发送完,修改指针 MOV A,R0 ;取下一个字符 MOV C,P ;加奇偶校验 MOV TB8,C MOV SBUF,A ;发送一个字符 POP PSW ;恢复现场 POP A TEND: RETI ;中断返回,2. 接收程序:串行输入16个字符,存入片内RAM的50H起 始单元,串行口波特率为2400(设晶振为11.0592MHz)。,RECS: MOV SCON,#50H ;串行口方式1允许接收 MOV TMO

14、D,#20H ;T1方式2定时 MOV TL1,#0F4H ;写入T1时间常数 MOV TH1,#0F4H SETB TR1 ;启动T1 MOV R0,#50H ;设数据指针 MOV R7,#10H ;接收数据长度 WAIT: JBC RI,NEXT ;等待串行口接收 SJMP WAIT NEXT: MOV A,SBUF ;读取接收字符 MOV R0,A ;保存一个字符 INC R0 ;修改指针 DJNZ R7,WAIT ;全部字符接收完? RET,3. 接收程序:串行输入16个字符,进行奇偶校验。,RECS: MOV SCON,#0D0H ;串行口方式3允许接收 MOV TMOD,#20H

15、;T1方式2定时 MOV TL1,#0F4H ;写入T1时间常数 MOV TH1,#0F4H SETB TR1 ;启动T1 MOV R0,#50H ;设数据指针 MOV R7,#10H ;接收数据长度 WAIT: JBC RI,NEXT ;等待串行口接收 SJMP WAIT NEXT: MOV A,SBUF ;取一个接收字符 JNB P,COMP ;奇偶校验 JNB RB8,ERR ;PRB8,数据出错 SJMP RIGHT ;P=RB8,数据正确 COMP: JB RB8,ERR RIGHT: MOV R0,A ;保存一个字符 INC R0 ;修改指针 DJNZ R7,WAIT ;全部字符接收完? CLR F0 ;F0 =0,接收数据全部正确RETERR: SETB F0 ;F0 =1,接收数据出错 RET,8.2 IBM-PC系列机与 单片机的通信技术(选),一、异步通信适配器 二、IBM-PC机与8031双机通信技术 三、IBM-PC机与803l

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

当前位置:首页 > 高等教育 > 其它相关文档

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