|  | 
 
| //定时2.5MS,外部输入脉冲频率约80KHZ左右,用在2.5MS内有多少外部输入中断来计算输入脉冲的个数, //现在的问题时显示不了外部中断输入脉冲的个数,不知道问题出在哪里,  是不是外部中断的速度达不到9US左右?
 //救助大家指导一下
 void Timer0Init(void)                //2.5MS@24.000MHz
 void Timer0Init(void)                //2.5MS@24.000MHz
 {
 AUXR |= 0x80;                //¶¨Ê±Æ÷ʱÖÓ1Tģʽ
 TMOD &= 0xF0;                //ÉèÖö¨Ê±Æ÷ģʽ
 TL0 = 0xA0;                //ÉèÖö¨Ê±Æ÷ ³õÖµ
 TH0 = 0x15;                //ÉèÖö¨Ê±Æ÷ ³õÖµ
 TF0 = 0;                //Çå³ýTF0±êÖ¾
 TR0 =0;                //¶¨Ê±Æ÷0¼ÆÊý
 
 ET0 = 1;   //?????0
 TR0 =1;    //???0????
 
 //P32=1;      //??????
 IT0 = 1;                    //??INT0????(1:??? 0:???????)
 EX0 = 1;                    //??INT0??
 EA = 1;
 
 }
 
 void tm0_isr() interrupt 1 using 1
 {
 EX0 = 0; //½ûÖ¹INT0ÖжÏ
 TR0 =0;
 t5=        (long int)(((n*10)/25)*100);//¼ÆËãÆµÂÊ
 //displaydata(t5,0,0,0,0);
 delay6();
 //n=0;
 EX0 = 1;  //ʹÄÜINT0ÖжÏ
 TR0 =1;   //Timer0 Run
 
 }
 
 void exint0() interrupt 0       //ÍⲿÖжÏ0  INT0
 {
 n++;
 }
 
 void main()
 {
 P1M0 = 0x00;        //1.01234567 power put
 P1M1 = 0x00;
 P3M0 = 0x7F;        //3.23456 power put
 P3M1 = 0x80;
 P36 = 1;//CS
 P33 = 1;// DATA
 P31 = 1;// WR
 P37 = 0; //TSS1
 n=0;
 delay3();
 Init_1621();
 delay2();
 HT1621_all_on();
 delay7();
 HT1621_all_off() ;
 
 Timer0Init( );
 t5=0;
 
 while (OK)
 {
 
 displaydata(n,0,0,0,0);//ÓÐÕâ¸ö¾ÍÒ»Ö±ÏÔʾ0,Èç¹ûÆÁ±ÎÄÇôÆÁʲôҲ²»ÏÔʾ
 
 }
 
 }
 
 
 | 
 |