导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→计数超过65535,该怎么办[yufanmiao]

 *第11030篇: 计数超过65535,该怎么办

  
楼 主:yufanmiao 2003年4月26日09:02
 计数超过65535,该怎么办
我用T1计数,范围0-99999,分辨率到个位,如何编程
  
2楼:红心J 2003年4月26日09:33
 T0_H EQU XXH
      

T0_H EQU XXH
        ORG 0000H
        SJMP MAIN
        ORG 000BH
        SJMP A_T0
        ORG 0030H 
A_T0:INC T0_H
        RETI
MAIN:MOV TMOD,#01H
        SETB ET0
        SETB EA

        MOV T0_H,#0
        MOV TH0,#0
        MOV TL0,#0
        SETB TR0

  
3楼:yufanmiao 2003年4月26日13:18
 我的为什么不行
我的程序如下,但当计数超过65536后,zscount一直为零,为何?
unsigned char count,T0H;
long zscount;
TMOD = 0x1D;//t1 定时器,t0 计数器
ET1 = 1;
ET0 = 1;
IT0 = 1;
EX0 = 1;
PT0 = 1;
TH1 =0x3c ;//per 50ms
TL1 = 0xb0;
TR1 = 1;
TR0 = 1;
EA = 1;
TH0 = 0x00;TL0 = 0x00;
T0H =0;
//////////////////
void Int0(void) interrupt 0 using 2
{
 if(bFlag==0)
 {
  P1_4 = 1;
  bFlag = 1;
 }
 else
 {
  P1_4 = 0;
  bFlag = 0;
 }
}
void timer0(void) interrupt 1 using 3
{
// TR0 = 0;
 T0H++;
 TH0 = 0;TL0 = 0;
// TR0=1;
 
}
void timer1(void) interrupt 3 using 1
{
   TR1 = 0;
    TH1 =0x3c ;
TL1 = 0xb0;
 
count++;
if(count == 20)//per 1s
{
count = 0;
zscount = T0H   <  < 8;
zscount   <  <=8;
zscount += (unsigned long)TH0   <  <8;
zscount = zscount +  TL0;
TH0 = 0;TL0 = 0;
//T0H = 0;
}
TR1 = 1;
}
  
4楼:yufanmiao 2003年4月26日09:54
 Thank You
以下是引用红心J在2003-4-26 9:33:21的发言:
T0_H EQU XXH
         ORG 0000H
         SJMP MAIN
         ORG 000BH
         SJMP A_T0
         ORG 0030H 
 A_T0:INC T0_H
         RETI
 MAIN:MOV TMOD,#01H
         SETB ET0
         SETB EA

         MOV T0_H,#0
         MOV TH0,#0
         MOV TL0,#0
         SETB TR0



>>>>>>对该主题发表你的看法

本主题贴数4,分页: [第1页]


[上一篇主题]:请问哪里有关于ARM芯片编程的例子??THX

[下一篇主题]:请教:哪儿有DK1下载?