5.设计一个串行方式1发送子程序。已知-_11.0592MHz,SMOD=1,波特率为9600发送的8个字节的数据放在内部RAM的40H4 47H单元内:
1个回答
关注
展开全部
串行方式1波特率取决于T1溢出率,计算T1定时初值: 发送程序如下: TXDA:MOV TMOD,#20H ;置T1定时器工作方式2 MOV TL1,#0E8H ;置T1定时初值 MOV TH1,#0E8H ;置T1定时重装值 CLR ET1 ;禁止T1中断 SETB TR1 ;T1启动 MOV SCON,#40H ;置串行方式1,禁止接收 MOV PCON,#80H ;置SMOD=1(SMOD不能位操作) CLR ES ;禁止串行中断 MOV R0,#30H ;置发送数据区首地址 MOV R2,#16 ;置发送数据长度 TRSA:MOVX A,@R0 ;读一个数据 MOV SBUF,A ;发送 JNB TI,$ ;等待一帧数据发送完毕 CLR TI ;清发送中断标志 INC R0 ;指向下一字节单元 DJNZ R2,TRSA ;判10个数据发完否?未完继续 RET ;
咨询记录 · 回答于2021-05-21
5.设计一个串行方式1发送子程序。已知-_11.0592MHz,SMOD=1,波特率为9600发送的8个字节的数据放在内部RAM的40H4 47H单元内:
您好,我正在帮您查询相关资料和案例,整理完马上回复您。
串行方式1波特率取决于T1溢出率,计算T1定时初值: 发送程序如下: TXDA:MOV TMOD,#20H ;置T1定时器工作方式2 MOV TL1,#0E8H ;置T1定时初值 MOV TH1,#0E8H ;置T1定时重装值 CLR ET1 ;禁止T1中断 SETB TR1 ;T1启动 MOV SCON,#40H ;置串行方式1,禁止接收 MOV PCON,#80H ;置SMOD=1(SMOD不能位操作) CLR ES ;禁止串行中断 MOV R0,#30H ;置发送数据区首地址 MOV R2,#16 ;置发送数据长度 TRSA:MOVX A,@R0 ;读一个数据 MOV SBUF,A ;发送 JNB TI,$ ;等待一帧数据发送完毕 CLR TI ;清发送中断标志 INC R0 ;指向下一字节单元 DJNZ R2,TRSA ;判10个数据发完否?未完继续 RET ;
已赞过
评论
收起
你对这个回答的评价是?