久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 為什么示數不動啊 [打印本頁]

作者: 1120320067    時間: 2016-5-1 17:34
標題: 為什么示數不動啊
大神請指教   本程序測得是增量式編碼器位置  說白了就是計數A B脈沖  但是燒進去之后示數一直是0  轉動編碼器不會有反應  前后改了幾次實在是改不出來了  求大神支招


#include <REG51.H>
#include <intrins.h>

#define  uchar unsigned char

#define GPIO_DIG P0

sbit LSA=P2^0;
sbit LSB=P2^1;
sbit LSC=P2^2;
sbit PINA = P1^0;          //A相
sbit PINB = P1^1;          //B相
sbit PIND  = P1^2;
static unsigned int  counter = 0;          //編碼器脈沖計數
int xx[3]={0,0,0};
unsigned char code DIG_CODE[17]=
{
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71
};


/************************************
void Timer0Init(void)
{
        TMOD &= 0xF0;        //設置定時器模式
        TMOD |= 0x01;        //設置定時器模式
        TL0 = 0x30;                //設置定時初值
        TH0 = 0xF8;                //設置定時初值
        PT0 = 0;
        TF0 = 0;                //清除TF0標志
        ET0 = 1;
        TR0 = 1;                //定時器0開始計時
        PT0 = 1;                //數碼管刷新優先
        EA = 1;
}


*****利用STC89系列的外中斷模式*******

void Inti_INT0()
{
                            //set INT1 int type (1:Falling only 0:Low level)
                          //enable INT1 interrupt
     EA = 1;  
}
************************************/
void main (void)
{
       
        TMOD &= 0xF0;        //設置定時器模式
        TMOD |= 0x01;        //設置定時器模式
        TL0 = 0x30;                //設置定時初值
        TH0 = 0xF8;                //設置定時初值
        PT0 = 0;
        TF0 = 0;                //清除TF0標志
        ET0 = 1;
        TR0 = 1;                //定時器0開始計時
        PT0 = 1;                //數碼管刷新優先
        EA = 1;

       
  while(1)
  {       

  }
}

void Timer0() interrupt 1
{
static        unsigned char i;
        unsigned int j;
        unsigned char check[8];
        check[0]=counter/100;
        check[1]=counter%100/10;
        check[2]=counter%100%10;
        check[3]=0;
        check[4]=0;
        check[5]=0;
        check[6]=0;
        check[7]=0;
        TL0 = 0x30;                //設置定時初值
        TH0 = 0xF8;                //設置定時初值
                switch(i)         //位選,選擇點亮的數碼管,
                {
                        case(0):
                                LSA=0;LSB=0;LSC=0; break;//顯示第0位
                        case(1):
                                LSA=1;LSB=0;LSC=0; break;//顯示第1位
                        case(2):
                                LSA=0;LSB=1;LSC=0; break;//顯示第2位
                        case(3):
                                LSA=1;LSB=1;LSC=0; break;//顯示第3位
                        case(4):
                                LSA=0;LSB=0;LSC=1; break;//顯示第4位
                        case(5):
                                LSA=1;LSB=0;LSC=1; break;//顯示第5位
                        case(6):
                                LSA=0;LSB=1;LSC=1; break;//顯示第6位
                        case(7):
                                LSA=1;LSB=1;LSC=1; break;//顯示第7位       
                }
                GPIO_DIG=DIG_CODE[check[i]];//發送段碼
                j=5;       
                i++;
                if(i==8)
                {
                 i=0;
                }                                         //掃描間隔時間設定
                while(j--);       
                GPIO_DIG=0x00;//消隱

}

void exint1() interrupt 0           //(location at 0013H)
{
  static  bit  Curr_encoder_b;  //定義一個變量來儲存當前B信號
   static  bit  Last_encoder_b;  //定義一個變量來儲存上次B腳信號
   static  bit  updata= 0;
   if(PINA && PINB)           //編碼器無轉動退出
   {
     updata = 0;
     return;
   }

         Last_encoder_b = PINB;
        while(!PINA)
        {
         Curr_encoder_b = PINB;
         updata = 1;
        }
        if(updata)
        {
          updata = 0;
          if(Last_encoder_b==1&&Curr_encoder_b==0)
          {
          if(counter == 400)
            return;       
           counter++;
          }
          else if(Last_encoder_b==0&&Curr_encoder_b==1)
          {
          if(counter == 0)
                    return;
           counter--;              
          }
        }

}







歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 在线免费观看黄视频 | 四虎午夜剧场 | 亚洲毛片在线观看 | 中文字幕高清一区 | 精品一二区 | 亚洲精品在线观 | 精品成人佐山爱一区二区 | 成人在线免费视频 | 欧美一区二区三区的 | 欧美不卡一区二区三区 | 一区二区三区高清不卡 | 日韩在线xx | 狠狠操狠狠干 | av黄色在线 | 国产资源一区二区三区 | 欧美日韩精品久久久免费观看 | 看一级毛片 | 人成在线视频 | 中文字幕一区二区在线观看 | 欧美日韩电影一区 | 午夜精品一区二区三区在线观看 | av免费网站在线观看 | 久草免费福利 | 欧美日韩国产在线观看 | 91精品久久久久久久久久入口 | 亚洲欧美另类在线观看 | 国产精品久久久久久吹潮日韩动画 | 久久久99精品免费观看 | 免费观看色 | 亚洲国产精品久久久久 | 免费99精品国产自在在线 | 国产精品激情在线 | 一区二区三 | 台湾佬成人网 | 91精品国产91久久久久久吃药 | 久久久久久久久精 | 亚洲高清在线 | 成人精品鲁一区一区二区 | 国产一区二区三区四区 | 国产精品美女www爽爽爽视频 | 日韩一区二区福利视频 |