打印

这个外部中断计数程序哪错了

[复制链接]
510|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
司徒老鹰|  楼主 | 2015-9-13 17:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

sbit LS138A=P2^2;  
sbit LS138B=P2^3;
sbit LS138C=P2^4;


unsigned int LedNumVal = 0 ,LedOut[8];

// 此表为 LED 的字模            // 0    1    2    3    4    5    6   7    8    9    A    b    c    d    E    -    L   P    U    Hidden  _ (20)
unsigned char code Disp_Tab[] = { ~0xC0,~0xF9,~0xA4,~0xB0,~0x99,~0x92,~0x82,~0xF8,~0x80,~0x90,~0x88,~0x83,~0xC6,~0xA1,~0x86,~0xbf,~0xc7,~0x8c,~0xc1, ~0xff,  ~0xf7 };



void delay(unsigned int i)
{
    char j;
    for(i; i > 0; i--)
        for(j = 200; j > 0; j--);
}


display()
{  unsigned char i;

     LedOut[0]=Disp_Tab[LedNumVal%10000/1000];
     LedOut[1]=Disp_Tab[LedNumVal%1000/100]&0x7f;
     LedOut[2]=Disp_Tab[LedNumVal%100/10];
     LedOut[3]=Disp_Tab[LedNumVal%10];


         for( i=0; i<8; i++)
         {         P0 = LedOut[i];
                        
          switch(i)                                          
             {            
                        case 0S138A=0; LS138B=0; LS138C=0; break;         
                case 1S138A=1; LS138B=0; LS138C=0; break;                     
                case 2S138A=0; LS138B=1; LS138C=0; break;
                case 3S138A=1; LS138B=1; LS138C=0; break;
                        case 4S138A=0; LS138B=0; LS138C=1; break;
                        case 5S138A=1; LS138B=0; LS138C=1; break;
                        case 6S138A=0; LS138B=1; LS138C=1; break;
                        case 7S138A=1; LS138B=1; LS138C=1; break;
                        
             }

                delay(150);
         }
}



/********************************************************
* 主程序                                               *
********************************************************/
void main(void)
{  
   P0=0xff;
   P1=0xff;
   P2=0xff;   
   
// IT0=0;       //低电平触发
   IT0=1;       //下降沿触发
   EX0=1;

   while(1)
   {   
     display();
   }
}
/********************************************************
* INT0中断函数   
(crazybc.com)                                      *
********************************************************/
void  counter(void) interrupt 0
{
//   unsigned char  x;
   EX0=0;
   LedNumVal++;     //中断计数  
   EX0=1;
}
/********************************************************/
沙发
llljh| | 2015-9-13 17:57 | 只看该作者
楼主说一下啥现象吧

使用特权

评论回复
板凳
dingy| | 2015-9-13 17:58 | 只看该作者
好像没有看到清标志的操作啊,   你中断会不停进入啊

使用特权

评论回复
地板
司徒老鹰|  楼主 | 2015-9-13 17:58 | 只看该作者
哦,呵呵,这样啊

使用特权

评论回复
5
袖口——光阴| | 2015-9-18 21:18 | 只看该作者
你好我是刚刚学习的小白,求助!!!请问这个程序能用于方波信号周期或者频率的检测吗? 我不是抄袭  ,只想学习一下。。。。。。求助

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

427

主题

3735

帖子

8

粉丝