打印
[51单片机]

定时器0工作方式2装初值的问题

[复制链接]
1368|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vitamin007|  楼主 | 2019-8-17 16:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
郭天祥的书中第10章定时器的应用提高有这第一个代码、
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit led1=P1^0;
uint num;

void main(){
        TMOD=0X02;
        TH0=6;
        TL0=6;
        EA=1;
        ET0=1;
        TR0=1;
        while(1){
                if(num==3686){
                        num=0;
                        led1=~led1;
                }
        }
}

void T0_time() interrupt 1{
        num++;
}

装初值6是什么意思?
这个不是自动重装初值的吗?
不写这句也能用,肉眼看不出区别。

使用特权

评论回复

相关帖子

沙发
airwill| | 2019-8-18 21:14 | 只看该作者
从 6 开始加,  跟 0 开始加虽然时间差别不大, 但计时还是有精度误差的

使用特权

评论回复
板凳
ayb_ice| | 2019-8-19 08:40 | 只看该作者
这初值6,实际计数值是256-6=250,标准51就是250us,是个便于计算的整数,一ms就是计数4次,计数4000次就是1秒

使用特权

评论回复
地板
cabot168| | 2019-8-19 16:27 | 只看该作者
你这个选的是模式2,是自动转载的,但也得给个初始值,以后进定时中断就不用再赋值了。每次溢出后THO值每次自动赋值给TL0,按TL0算,因为值是6跟256差别比较大,所以你肉眼没看出来,你可以赋值大值就很明显了。
打个广告:本人做义隆,晟矽微芯片,有要的联系企鹅1297792327

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

4

帖子

1

粉丝