微型计算机控制技术第3章习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3-1 什么是串行通信?串行通信有哪两种基本方式?串行通信有何特点?
在串行通信中,有两种最基本方式,异步通信和同步通信
串行通信是通过串行口来实现的,数据逐位顺序传送。
3-2 某异步通信接口,其帧格式由1个起始位,7个数据位,1个偶校验位和1个停止位组成。当接口每分钟传送1800字符时,试计算出传送波特率。
当接口每分钟传送1800字符时,它的波特率:
Band=1800×10÷60=300bit/秒
3-3 试说明MCS-51单片机的串行口有哪几种工作方式?其波特率如何确定?
串行口有四种工作方式,如表所示。
3-4如果晶振为11.0592MH Z,串行工作方式1,波特率为2400,第9位数据为奇校验位。试编制一个程序,对串行口初始化,并用查询方式接收串行口上输入的10个字符,存于内部RAM50H开始的区域,若对RB8校验出错则停止接收,并使p1.2清零,若正确地接收到10个字符,则停止接收,并使p1.7清零。
N=256-SMOD
f/(384⨯波特率)
2⨯
osc
N=256-126
⨯(384⨯2400)
11⨯
.
059
10
N=E8H
TX:MOV SCON,#70H
ORL PCON,#80H
MOV TMOD,#20H
MOV TH1,#0E8H
MOV TL1,#0E8H
SETB TR1
CLR ES
MOV R2,#0AH
MOV R0,#50H LOOP:JMB RI,$
CLR RI
MOV A,SBUF
JNB P,ONE
JB RB8,FALSE RIGHT:MOV @R0,A
INC R0
DJNZ R2,LOOP
CLR TR1
CLR REN
CLT P1.7
RET
ONE:JNB RB8,FALSE LJMP LIGHT FLASE:CLR TR1
CLR REN
CLR P1.2 RET
3-5 设8031单片机串行口置于工作方式3,通信波特率为2400,第9位用作奇
校验位。发送数据区的首地址4000H ,接收数据区地址为5000H ,设数据传送采用中断方式,试编写双工通信的有关程序,时钟频率为6MHZ 。
N=256-SMOD 2osc f ⨯/(384⨯波特率)
N=256-126106⨯⨯/3842400⨯ N=F3H
TRANSFER :LCALL TIMER LCALL SERIES MOV DPTR ,#4000H MOV R7,#N MOV SBUF ,#00H SETB ES SETB EA SJMP $ SENT :CLR TI MOVX A ,@DPTR MOV C , P CPL C MOV 7B8, C MOV SBUF , A INC DPTR
DJNZ R7,EXIT
CLR TR1
CLR ES
EXIT:RETI
TIME:MOV TMOD,#20H
MOV TH1,#0F3H
MOV TL1,#0F3H
SETB TR1
RET
SEVIES:MOV SCON,#0C0H
ORL PCON,#80H
RET
RECEIVER:LCALL TIMER
LCALL TIMEI
LCALL SERIES
MOV DPTR,#5000H
MOV R7,#N
JNB RI,$
CLR RI
MOV @R0,SBUF
SETB ES
SUBZ:MOV A,SBUF
CLR RI
JNB P,D1
JB RB8,FALSE
LJMP LIGHT
D1:JNB RB8,FALSE
RIGHT:MOVX @DPTR,A
INC DPTR
DJNZ R7,EXIT
FALSE:CLR ES
CLR TR1
CLR REN
RET
3-6 某单片机系统利用MAX232与上位机PC实现 RS—232C通信,若单片机系统只作接收用,通信波特率为2400,请画出接口电路并编写程序。
N=256-SMOD 2osc f ⨯/(384⨯波特率)
N=256-126106⨯⨯/3842400⨯ N=F4H
RECEIVE:MOV TMOD,#20H
MOV TH1,#0F4H MOV TL1,#0F4H CLR ET1 SETB TR1 CLR RI MOV R0,#30H MOV R6,#N
LOOP1:JNB RI $
CLR RI MOV A,SBUF MOV @R0.A INC R0
DJNZ R6,LOOP1 CLR REN CLR TR1 RET
3-7 利用VB 编制一个测试PC 机串口的程序,在电路上把串口的发送端和接收端
连接在一起,通过自发自收可以检查有无错误,在程序的窗体上放置一个
MSComm控件、一个文本框、一个时钟控件、一个按钮、一个标签,程序运行时,用户任意在文本框里输入一个字符,按下按钮后,进行自发自收(数据格式是波特率是9600、8位数据位、无校验、2位终止位)。如果接收到的字符与文本框的字符不同,或经过2秒后仍未完成接收,则在标签上显示“串行通信线路故障”;否则在标签上显示“串行通信线路畅通”。