第七章串行接口答案

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第七章串行接口答案

7·1 什么是串行异步通信?它有哪些特点?有哪几种帧格式?

答:串行通信是所传送数据的各位按顺序一位一位地发送或接收。串行通信分同步和异步两种方式。

在异步通信中数据或字符是一帧(frame)一帧地传送的。帧定义为一个字符的完整的通信格式,通常也称为帧格式。

它的主要特点:由于异步通信每传送一帧有固定格式,通信双方只需按约定的帧格式来发送和接收数据,所以硬件结构比同步通信方式简单;此外,它还能利用校验位检测错误。

帧格式的一般形式是先用一个起始位"0"表示字符的开始,然后是数据位,其后是奇偶校验位,最后是停止位,用以表示字符的结束。不同的帧格式主要表现在数据位可以不同,例如其位数为5~8位,停止位可以是1、1.5、2位;起始位和奇偶校验位可以有,也可以没有。起始位、数据位、奇偶校验位、停止位的不同组合就形成了多种形式的帧格式。不同的计算机规定适用的帧格式有所不同,例如适用于80C51的帧格式只有三种:8位数据位;一位起始位、8位数据位、一位停止位;一位起始位、8位数据位、一位奇偶校验位、一位停止位。

7·2 某异步通信接口按方式3传送,己知其每分钟传送3600个字符,计算其传送波特率。

答:设每个字符由1个起始位、8个数据位、1个可编程位和1个停止位组成,则其传送波特率为:

llb×3600/60s=660b/s

7·3 为什么定时器Tl用做串行口波特率发生器时,常采用工作方式2?若己知系统时钟频率、通信选用的波特率,姑何计算其初值?

答:在串行通信中,收发双方对发送或接收的数据速率(即波特率)要有一定的约定。我们通过软件对80C51串行口编程可约定4种工作方式。其中方式0和方式2波特率是固定的,而方式1和方式3的波特率是可变的,由定时器Tl的溢出率控制。定时器Tl用做串行口波特率发生器时,因为工作方式2是自动重装载方式,因而当定时器Tl作波特率发生器时常采用工作方式2。

在方式2中,TLl作计数用,但自动重装载的值放在THl内。假如已知系统时钟频率、通信选用的波特率,计算初值的方法如下:设计数初值为X,那么每过"256一X"个机器周期定时器1就会产生一次溢出。溢出周期是:

12

T= ×(256-X)

f ose

因溢出率为溢出周期之倒数,因此

2SMOD f ose

波特率= ×

32 l2×(256-X)

则定时器Tl在方式2 时的初值为:

f ose×2SMOD

X=256-

384×波特率

7·4 己定时器T1设置为方式2,用做波特率发生器,系统时钟频率为6 MHz ,求可能产生的最高和最低的波特率是多少?

答:最高波特率:

TH l= 0FFH TLl= 0FFH

波特率=2/32×6000 000/(12×(256- 255))b/s= 31 250 b/s 最低波特率:

TH l= OOH TLl= OOH 波特率= 1/32×6 000 000/(12×(256- 0))b/s= 61 b/s

7·5 请设计一个80C51 单片机的双机通信系统,并编写程序将甲机片外RAM 3400H ~ 3500H的教据块通过串行口传送到乙机的片外RAM 4400H ~ 4500H 单元中去。

答:设波特率为9600 b/s。当晶体频率为f= 11.0592 MHz和SMOD=1时,定时器T1按方式2工作,TH l=0FAH ,TLl=0FAH 。

甲机发送程序

SEND_SUB:

MOV TMOD,#20H ;设定时器TlI:作在方式2

MOV THl,#0FAH ;设定时器Tl的初值

MOV TLl,#0FAH

MOV PCON,#80H ;置SMOD=l

MOV SCON,#50H ;串口初始化为方式1,允许接收

SETB TR1 ;启动定时器Tl

EX5_SEND1:

MOV DPTR,#3400H ;置数据块首地址

MOV R6,#00H ;长度寄存器初始化

MOV R5,#00H ;校验和寄存器初始化

MOV SBUF,R6 ;发送长度

JNB TI,$ ;等待发送

CLR TI

EX5_SEND2:

MOVX A,@DPTR ;读取数据

MOV SBUF,A ;发送数据

ADD A,R5 ;形成累加和送R5

MOV R5,A

INC DPTR ;修改地址指针

JNB TI,$ ;等待发送

CLR TI

DJNZ R6,EX5_SEND2 ;发送末完,继续

MOV SBUF,R5 ;发校验码

JNB TI,$

CLR TI

JNB RI,$ ;等乙机回答

CLR RI

MOV A,SBUF

JZ EX5_SENDOK ;发送正确返回

LJMP EX5_SEND1 ;发送有错,重发

EX5_SENDOK:

RET

乙机接收程序

RECEIVE_SUB:.

MOV TMOD,#20H ;定时器Tl初始化

MOV THl,#0FAH

MOV TLl,#0FAH

MOV PCON,#80H

MOV SCON,#50H

SETB TR1

EX5_RCV1:

MOV DPTR,#4400H

JNB RI,$

CLR RI

MOV A,SBUF ;接收发送长度MOV R6,A

MOV R5,#00H ;累加和清0 EX5JRCV2;

JNB RI,$

CLR RI

MOV A,SBUF ;接收数据

相关文档
最新文档