36351 发表于 2007-1-19 01:29:16

为什么不是20秒?

#include <REGX51.H>
#define TIMER0_COUNT 0xEE11
//code seven_seg={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
unsigned char T1s,i=0,cout;
static void timer0_isr(void)interrupt TF0_VECTOR using 1
{
P0_7=0;
TR0=0;
    TH0=(65536-50000)/256;
   TL0=(65536-50000)%256;
TR0=1;
T1s++;
if (T1s==200){
i++;
   if(i==2)
    {i=0;
   T1s=0;
   P0_6=~P0_6;
   cout++;
    if (cout==4)P0=0XFF;
   }
}
}
static void timer0_initialize(void)
{
EA=0;
T1s=0;
TR0=0;
TMOD=0X01;
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
PT0=0;
ET0=1;
TR0=1;
EA=1;
}
void main (void){
timer0_initialize();
while(1);

这个程序在cpubbs上led7跑时我的计划是20秒亮灭一次。
但是跑起来却是25秒?
为什么?
页: [1]
查看完整版本: 为什么不是20秒?