已知单片机使用晶振为11.0592MHZ,选择定时器T1的工作方式2作为波特率发生器,串口通信的波特率为9600bps

(循环程序)1.写出T1定时器的初值计算过程2.写出程序... (循环程序)1.写出T1定时器的初值计算过程
2.写出程序
展开
 我来答
可轩163
2014-06-22 · TA获得超过1.3万个赞
知道大有可为答主
回答量:4824
采纳率:88%
帮助的人:1788万
展开全部
解答:

1.T1定时器的初值计算:
波特率=((2的SMOD次方)x F)/(32x12x(256-N)
其中:
SMOD是特殊功能寄存器PCON的第7位,取1或0(波特率倍增,或不倍增)。
N是置入定时器TH1的时间常数初值
F是晶振频率
当SMOD取0,波特率=F/(32x12x(256-N)),
N=256-F/(波特率x32x12)=256-1105920/(9600x32x12)=253 即0FDh

2.程序(待续),用MCS-1汇编语言可以吗?
追问
可以的
追答
初始化程序:
INIT: MOV TMOD,#20H ;定时器T1工作方式2
MOV TH1,#0FDH ;置入时间常数
MOV TL1,#OFDH
SETB TR1 ;启动T1
MOV PCON,#00H ;SMOD=0,波特率不倍增
MOV SCON, #50H ;串行口工作方式1
cchhang
2017-08-25
知道答主
回答量:49
采纳率:0%
帮助的人:12.9万
展开全部
void UartInit(void) //9600bps@11.0592MHz
{
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x40; //定时器1时钟为Fosc,即1T
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //设定定时器1为16位自动重装方式
TL1 = 0xE0; //设定定时初值
TH1 = 0xFE; //设定定时初值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2018-04-16
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式