当要求定时器T1实现1S定时时,你将如何实现1秒钟的定时间隔;

1个回答
展开全部
摘要 定时时间=(最大计数值-计数器初值)*机器周期=(最大计数值-计数器初值)*(12/晶振频率(Hz))(s)=(256-TH1)*(12/OSC_FREQ(Hz))(s)。那么溢出频率自然就为:OSC_FREQ(Hz)/((256-TH1)*12)。所以最后推到出波特率为:(2SMOD/32)*(OSC_FREQ(Hz)/((256-TH1)*12))。波特率的计算公式有了,那自然就可以根据波特率推导出TH1的初值了:BAUD_RATE=(2SMOD/32)*(OSC_FREQ(Hz)/((256-TH1)*12))32*12*(256-TH1)=(2SMOD*OSC_FREQ(Hz))/BAUD_RATE256-TH1=(2SMOD*OSC_FREQ(Hz))/(BAUD_RATE*32*12)TH1=256-(2SMOD*OSC_FREQ(Hz))/(BAUD_RATE*32*12)假设晶振频率为11.0592MHz,波特率为9600,SMOD=0,TH1初值应该为多少呢?根据上面公式可以计算得TH1=256-11059200/(9600*32*12)=0xFD。
咨询记录 · 回答于2022-05-19
当要求定时器T1实现1S定时时,你将如何实现1秒钟的定时间隔;
您好
采用中断方法编写串行口方式3下的发送接收程序,并回答下面问题。假设51单片机主频为11.0592MHz。波特率对应计数器的初值为多少?写出计算公式
定时时间=(最大计数值-计数器初值)*机器周期=(最大计数值-计数器初值)*(12/晶振频率(Hz))(s)=(256-TH1)*(12/OSC_FREQ(Hz))(s)。那么溢出频率自然就为:OSC_FREQ(Hz)/((256-TH1)*12)。所以最后推到出波特率为:(2SMOD/32)*(OSC_FREQ(Hz)/((256-TH1)*12))。波特率的计算公式有了,那自然就可以根据波特率推导出TH1的初值了:BAUD_RATE=(2SMOD/32)*(OSC_FREQ(Hz)/((256-TH1)*12))32*12*(256-TH1)=(2SMOD*OSC_FREQ(Hz))/BAUD_RATE256-TH1=(2SMOD*OSC_FREQ(Hz))/(BAUD_RATE*32*12)TH1=256-(2SMOD*OSC_FREQ(Hz))/(BAUD_RATE*32*12)假设晶振频率为11.0592MHz,波特率为9600,SMOD=0,TH1初值应该为多少呢?根据上面公式可以计算得TH1=256-11059200/(9600*32*12)=0xFD。
已赞过
你对这个回答的评价是?
评论 收起
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

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

说明

0/200

提交
取消