单片机定时器/计数器的工作方式
问题1:单片机定时器/计数器的工作方式,比如说方式1吧。TH0=(65536-X)/256TL0=(65536-X)%256不明白第一个/是取整还是小数也要?第二个%是求...
问题1:单片机定时器/计数器的工作方式,比如说方式1吧。TH0=(65536-X)/256 TL0=(65536-X)%256 不明白第一个/是取整还是小数也要?第二个%是求模吧!为什么要这么算!云里雾里的!请说的详细点。
问题2:用C语言帮忙表达仔细阐述举例一下。怎么使用定时,计数器,它的原理在我脑袋里很离散,不知道用C怎么写,注意什么。打开EA=1 ...然后怎么处理,越详细越好,需要注意些什么,就当我小白好了!分一定会给,希望高手帮忙详细回答下~ 展开
问题2:用C语言帮忙表达仔细阐述举例一下。怎么使用定时,计数器,它的原理在我脑袋里很离散,不知道用C怎么写,注意什么。打开EA=1 ...然后怎么处理,越详细越好,需要注意些什么,就当我小白好了!分一定会给,希望高手帮忙详细回答下~ 展开
展开全部
问题1:定时器/计数器 TH0 & TL0 的 高 低 两个字节 的 计算方式 是
两个 字节 最大 数据 为 65536(十进制) , 或者 0FFFFH (十六进制)
高字节 为 TH0=(65536-X)/256 ,就是 除以 256 后的 整数部分,
低字节 为 TL0=(65536-X)%256 ,减去 高字节后 余下的部分,
问题2:可以看一下 仿真实例。
更多追问追答
追问
麻烦看下,我在下面一个人的追问,急能帮看下么?
追答
比如说这里 只是对没有使用 的功能 不去管他,有时在同一个字节中 随便
TMOD=0x01; // 因为只用了定时器0,设置方式1
TH0=(65536-50000)/256; // 这是12MHz 晶振时 50 mS
TL0=(65536-50000)%256;
EA=1; // 这是开总中断
ET0=1; // 这是开定时器0的中断
TR0=1; // 这是开定时器0
展开全部
第一个是取整,第二个是求模,就是取整后的余数,算法的话他就是这么固定的,郭天祥的视屏就是这么说的,你可以看看!
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;(开总中断)
ET0=1;(开定时器中断)
TR0=1;(定时器打开)
一般都是这种形式!
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;(开总中断)
ET0=1;(开定时器中断)
TR0=1;(定时器打开)
一般都是这种形式!
追问
TCON就只需要设置TR0或TR1其它的都不用设置???还有就是为什么要除以256,模式0除以32呢? TMOD高8位是设置定时器/计数器1的,低8位是设置定时器/计数器0的,你写的TMOD=0x01高8位就是 0000 0001 是不是高8位是忽略的,低8位意思是定时器手TR0控制 定时器模式 工作在模式1呢?但如果2个定时器都要用该怎么办?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |