8.1 什么是串行异步通信?它有哪些特点?MCS-51单片机的串行通信有哪几种帧格式? 8.1见8.1节
8.2 某异步通信接口按方式3传送,已知其每分钟传送3600个字符,计算其传送波特率。
8.2 方式3为每帧11位数据格式.即3600*11/60=660(波特)
8.3 为什么定时器T1用做串行口波特率发生器时,常采用工作方式2? 若已知系统时钟频率、通信选用的波特率,如何计算其初值?
8.3 T1的方式2模式不需要重装时间常数(计数初值),不影响cPU执行通信程序。设波特率为fboud计数初值为X,依据公式
fbaud=(2smod/32)*(fosc/12(256-X)) 求得X=256-((2smod/32)*(fosc/fbaud))。
8.4 已知定时器T1设置为方式2,用做波特率发生器,系统时钟频率为6MHz,求可能产生的最高和最低的波特率是多少?
8.4最低波特率为,T1定时最大值时,此时计数初值为256,并且SMOD=0,得
fbaud=(1/32)*(fosc/(12(256-0))=61
最高波特率为T1定时最小值且SOMD=1时,得 fbaud=(2/32)*fosc/(12(256-1))=31250
8.5 设甲、乙两机采用方式1通信,波特率为4800,甲机发送O,1,2,?,1FH,乙机接收存放在内部 RAM以20H为首址的单元,试用查询方式编写甲、乙两机的程序(两机的fosc=6MHz)。
8.5取SMOD=1计算TH1=TL1=B2;
;***********************发送查询方式******
ORG 0000H
MOV TMOD,#20H MOV THl,#OB2H MOV TL1,#0B2H SETB TR1
MOV SCON,#40H MOV A,#O
NEXT:MOV SBUF,A TES:JBC T1,ADD1 SJMP TES ADD1:INC A
CJNE A,#20H,NEXT SJMP $ END
;************************发送中断方式********************************* ORG 0000H
AJMP MAIN;转主程序 ORG 0023H ;中断服务 CLR TI INC A
MOV SBUF,A
CJNE A,#20H,RE
29
CLR ES RE:RETI
MAIN:MOV TMOD,#20H;主程序 MOV TH1,#0B2H MOV TL1,#082H SETB TR1
MOV SCON,#40H SETB EA SETB ES MOV A,#O MOV SBUF,A
SJMP$ ;等待中断
;*******************************接收查询方式***************************
ORG 0000H MOV TMOD,#20H MOV TH1,#0B2H MOV TL1,#0B2H SETB TR1
MOV SCON,#50H MOV RO。#20H TEC:JBC R1,REC
SJMP TES REC:MOV @R0,SBUF INC R0
CJNE R0,#40H,TEC
SJMP $ END
;******************************接收中断斤方式*************************