[51单片机] 定时器0工作方式2装初值的问题

[复制链接]
 楼主| vitamin007 发表于 2019-8-17 16:08 | 显示全部楼层 |阅读模式
郭天祥的书中第10章定时器的应用提高有这第一个代码、
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. sbit led1=P1^0;
  5. uint num;

  6. void main(){
  7.         TMOD=0X02;
  8.         TH0=6;
  9.         TL0=6;
  10.         EA=1;
  11.         ET0=1;
  12.         TR0=1;
  13.         while(1){
  14.                 if(num==3686){
  15.                         num=0;
  16.                         led1=~led1;
  17.                 }
  18.         }
  19. }

  20. void T0_time() interrupt 1{
  21.         num++;
  22. }

装初值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

粉丝
快速回复 在线客服 返回列表 返回顶部

3

主题

4

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部