单片机原理及接口技术(第三版)李朝青编著 第七章作业答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.5 思考题与习题
4. 89C51串行口有几种工作方式?有几种帧格式?各工作方式的波特率如何确定?
答:四种工作方式及波特率:
三种帧格式,一帧位数8/10/11三种:
5. 若异步通信接口按方式3传送,已知其每分钟传送3600个字符,其波特率是多少? 答:波特率:
3600/60×11=660 bps.
6. 89C51中SCON 的SM2、TB8和RB8有何作用? 答:SM2:多机通讯控制位,用于方式2和方式3中。
TB8:在方式2,3中,是发送机要发送的第9位数据。 RB8:在方式2,3中,接收来自发送机的第9位数据(TB8)
7. 设fosc=11.0592 MHz ,试编写一段程序,其功能为对串行口初始化,使之工作于方式1,波特率为1200 b/s ;并用查询串行口状态的方法,读出接收缓冲器的数据并回送到发送缓冲器。
D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 停止位 起始位 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 D 0
D 1
D 2
D 3
D 4
D 5
D 6
D 8
停止位
起始位
D 7
SM0 SM1 工作方式 功能 波特率 0 0 方式0 8位同步移位寄存
器 f osc /12 0 1 方式1 10位UART 可变 1 0 方式2 11位UART f osc /64或f osc /32
1 1
方式3
11位UART
可变
答:SIO: MOV SCON,#01000000B ;串口方式1,且TI=RI=0 MOV TMOD,#20H ;T1作波特率发生器
MOV TH1,#0E8H ;选定波特率=1200bps
MOV TL1,#0E8H
SETB TR1
WAIT: JBC RI,NEXT ;查询等待
SJMP WAIT
NEXT:MOV A,SBUF ;读取接收数据
MOV SBUF,A ;回送到发送缓冲器
SJMP $
8.若晶振为11.0592 MHz,串行口工作于方式1,波特率为4800 b/s。写出用
T1作为波特率发生器的方式字和计数初值。
答:TMOD=20H,TH1=TL1=F4H
17.设计一个单片机的双机通信系统,并编写通信程序。将甲机内部RAM
30H~3FH存储区的数据块通过串行口传送到乙机内部RAM 40H~4FH存储区中去。
答:硬件系统:
程序甲(发送):
ORG 0000H
LJMP MAINT
ORG 0023H ;串行口中断入口
LJMP TRANI
MAINT:MOV SCON,#01000000B ;串行口方式1初始化MOV PCON,#80H ;波特率
MOV TMOD,#20H ;T1作波特率发生器
MOV TH1,#0E8H ;选定波特率=2400bps
MOV TL1,#0E8H
SETB TR1
SETB EA
SETB ES ;开串行口中断
MOV R0,#30H ;设数据指针
MOV R7,#10H ;数据长度
MOV A,@R0 ;取一个字符
MOV SBUF,A ;启动一次发送
SJMP $
TRANI: CLR TI ;清发送结束标志
DJNZ R7,NEXT ;是否发送完?
CLR ES ;发送完,关闭串行口中断
SJMP TEND
NEXT: INC R0 ;未发送完,修改指针
MOV A,@R0 ;取下一个字符
MOV SBUF,A ;发送一个字符
TEND: RETI ;中断返回
程序乙:
ORG 0000H
LJMP MAINT
ORG 0023H ;串行口中断入口
AJMP RINT
MAINT:MOV SCON,#01010000B ;串行口方式1允许接收MOV PCON,#80H ;波特率
MOV TMOD,#20H ;T1作波特率发生器
MOV TH1,#0E8H ;选定波特率=2400bps
MOV TL1,#0E8H
SETB TR1
SETB EA
SETB ES ;开串行口中断
MOV R0,#40H ;设数据指针
MOV R7,#10H ;接收数据长度
SJMP $
RINT:CLR RI ;清接收结束标志
MOV A,SBUF ;读取接收字符
MOV @R0,A ;保存一个字符
INC R0 ;修改指针
DJNZ R7,REND ;未全部接收完,转NEXT
CLR ES ;全部接收完,关闭串行口中断REND: RETI ;中断返回