『家电维修论坛 163DZ.COM』

 找回密码
 免费注册

QQ登录

只需一步,快速开始

搜索
查看: 5578|回复: 5

求高手帮忙看下定时器装初值的问题

[复制链接]

该用户从未签到

发表于 2016-3-19 08:49:52 | 显示全部楼层 |阅读模式
本帖最后由 永明家电制冷 于 2016-3-19 11:20 编辑

大家好,我初学单片机,自己写了一个定时器的程序,不知为什么到赋初值  TH0=(65536-a)/256,TL0=(65536-a)%256时,在a大于16000时定时器不工作
                            # include <reg52.h>  #define uchar unsigned char
  #define uint unsigned int
sbit  wei=P2^7;
sbit  duan=P2^6;

uint shi,ge,a,j;

  uchar code tab[ ]= {0x3f,0x06,0x5b,0x4f,0x66,
                                          0x6d,0x7d,0x07,0x7f,
                                        0x6f,0x77,0x7c};
  void delay(uint k)
          {
        uint m, n;
                for(m=k;m>0;m--)
                        for(n=100;n>0;n--);               
         }
  void dispiay(  )
        {        P0=0xff;
           wei=1;
           P0=0xfd;
           wei=0;
          
           duan=1;
           P0=tab[ge];
           duan=0;
           delay(5);

           P0=0xff;
           wei=1;
           P0=0xfe;
           wei=0;
         
           duan=1;
           P0=tab[shi];
           duan=0;
       delay(10);       
         }

  void dingshiqi()
   {
   TMOD=0x01;
   TR0=1;
   TH0=(65536-13000)/256;
   TL0=(65536-13000)%256;
    if (TF0==1)
         {TF0=0;
          TH0=(65536-13000)/256;
      TL0=(65536-13000)%256;
            a++;}
        if (a==10)
          {a=0;       
        j++;
           }
   if (j==100)
   {j=0;
    }
}
void main()
{               

while(1)
{  
        { shi=j/10;
        ge=j%10;
        dispiay();
   dingshiqi();
        }
}
}

该用户从未签到

 楼主| 发表于 2016-3-19 09:34:11 | 显示全部楼层
欧思锐售后服务管理系统
高手快来给看看吧,我想了一天一夜也找不出问题出在哪里呀,愁死了。
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2016-3-19 11:21:02 | 显示全部楼层
自己顶一下
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    昨天 17:41
  • 签到天数: 81 天

    [LV.6]常住居民II

    发表于 2016-3-19 16:11:52 | 显示全部楼层
    欧思锐售后服务管理系统
    我再帮你顶一下。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2016-3-20 16:12:49 | 显示全部楼层
    高大上,我们不懂,要不试下别的微机论坛
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2016-4-13 16:57:45 | 显示全部楼层
    欧思锐售后服务管理系统
    式一下
    void main()
    {
    TMOD=0x01;
        TH0=(65536-13000)/256;
       TL0=(65536-13000)%256;              
            EA=1;
            ET0=1;
            TR0=1;
    while(1)
    {  
            { shi=j/10;
            ge=j%10;
            dispiay();
            }
    }
    }
    void exter1() interrupt 1   
    {
             TH0=(65536-13000)/256;
       TL0=(65536-13000)%256;
               a++;
            if (a==10)
              {a=0;        
                j++;
               }
       if (j==100)
       {j=0;
        }
    }
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    QQ|小黑屋|手机版|Archiver|『家电维修网 163DZ.COM』 ( 粤ICP备05049683号  

    GMT+8, 2019-3-24 08:33 , Processed in 0.054571 second(s), 12 queries , File On.

    Powered by Discuz! X3.3

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表