某89c51单片机系统的外接晶振频率为11.0592MHz,现要求工作于Mode1,波特率为9600bit/s,且SMOD位被设置为0,请计算Timer1的计数器初值TH1

1个回答
展开全部
摘要 1.确定计数器源,此处采用系统时钟12MHz作为计数器源。2.计数器初始化,设置计数器初值为0,方便计数器从0开始计数。3.编写程序,当P3.2口电平为低电平时,计数器开始计数,当P3.2口电平为高电平时,计数器停止计数,并将计数器的值转换成BCD码,按照小端字节序存入片内存储单元。4.测试程序,在P3.2口接上正脉冲,测量脉冲宽度,查看结果是否符合预期。5.优化程序,可以考虑用定时器定时中断检测P3.2口电平,减少轮询时间,提高程序效率。
咨询记录 · 回答于2023-02-24
某89c51单片机系统的外接晶振频率为11.0592MHz,现要求工作于Mode1,波特率为9600bit/s,且SMOD位被设置为0,请计算Timer1的计数器初值TH1
亲,您好啊,很高兴为您解答。TMOD寄存器位7,6,5,4,3,2,1,0,其中,当TMOD位7,6,5,4被设置为0011时,表示Timer1工作在Mode1,即16位自动重装载模式。按照公式:TH1 = 256 - (11.0592MHz/12/9600) = 256 - 651 = -395因为TH1的值最大为255,实际的TH1的值应该是:TH1 = 256 + 395 = 651
亲,1. 将LED连接到单片机的输出IO口,利用单片机的某个IO口作为按键的输入IO口,当按键按下时,IO口电平由高变低,单片机根据IO口电平的变化,通过程序识别按键变化,并根据按键情况控制LED灯的亮灯和熄灭。2. 在单片机程序中,可以设置一个标志位,来标志按键是否按下,当按键按下时,标志位置1,LED灯亮;当按键松开时,标志位置0,LED灯熄灭,再次按下按键LED灯亮,此时标志位仍然置1保持LED灯亮,直到按键松开时,标志位置0,LED灯熄灭,以此达到按键动作使相应灯亮,并将亮灯保持到下次按键动作时为止的效果。
1.确定计数器源,此处采用系统时钟12MHz作为计数器源。2.计数器初始化,设置计数器初值为0,方便计数器从0开始计数。3.编写程序,当P3.2口电平为低电平时,计数器开始计数,当P3.2口电平为高电平时,计数器停止计数,并将计数器的值转换成BCD码,按照小端字节序存入片内存储单元。4.测试程序,在P3.2口接上正脉冲,测量脉冲宽度,查看结果是否符合预期。5.优化程序,可以考虑用定时器定时中断检测P3.2口电平,减少轮询时间,提高程序效率。
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

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

说明

0/200

提交
取消