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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1749|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

為什么示數(shù)不動(dòng)啊

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:116352 發(fā)表于 2016-5-1 17:34 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
大神請(qǐng)指教   本程序測(cè)得是增量式編碼器位置  說(shuō)白了就是計(jì)數(shù)A B脈沖  但是燒進(jìn)去之后示數(shù)一直是0  轉(zhuǎn)動(dòng)編碼器不會(huì)有反應(yīng)  前后改了幾次實(shí)在是改不出來(lái)了  求大神支招


#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;          //編碼器脈沖計(jì)數(shù)
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;        //設(shè)置定時(shí)器模式
        TMOD |= 0x01;        //設(shè)置定時(shí)器模式
        TL0 = 0x30;                //設(shè)置定時(shí)初值
        TH0 = 0xF8;                //設(shè)置定時(shí)初值
        PT0 = 0;
        TF0 = 0;                //清除TF0標(biāo)志
        ET0 = 1;
        TR0 = 1;                //定時(shí)器0開(kāi)始計(jì)時(shí)
        PT0 = 1;                //數(shù)碼管刷新優(yōu)先
        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;        //設(shè)置定時(shí)器模式
        TMOD |= 0x01;        //設(shè)置定時(shí)器模式
        TL0 = 0x30;                //設(shè)置定時(shí)初值
        TH0 = 0xF8;                //設(shè)置定時(shí)初值
        PT0 = 0;
        TF0 = 0;                //清除TF0標(biāo)志
        ET0 = 1;
        TR0 = 1;                //定時(shí)器0開(kāi)始計(jì)時(shí)
        PT0 = 1;                //數(shù)碼管刷新優(yōu)先
        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;                //設(shè)置定時(shí)初值
        TH0 = 0xF8;                //設(shè)置定時(shí)初值
                switch(i)         //位選,選擇點(diǎn)亮的數(shù)碼管,
                {
                        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]];//發(fā)送段碼
                j=5;       
                i++;
                if(i==8)
                {
                 i=0;
                }                                         //掃描間隔時(shí)間設(shè)定
                while(j--);       
                GPIO_DIG=0x00;//消隱

}

void exint1() interrupt 0           //(location at 0013H)
{
  static  bit  Curr_encoder_b;  //定義一個(gè)變量來(lái)儲(chǔ)存當(dāng)前B信號(hào)
   static  bit  Last_encoder_b;  //定義一個(gè)變量來(lái)儲(chǔ)存上次B腳信號(hào)
   static  bit  updata= 0;
   if(PINA && PINB)           //編碼器無(wú)轉(zhuǎn)動(dòng)退出
   {
     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--;              
          }
        }

}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品欧美一区二区中文字幕视频 | 激情久久网 | 91视频官网 | 免费一级毛片 | 成人国产在线观看 | 国产精品久久久久久久久久99 | 日韩中文字幕一区 | 国产99久久精品一区二区永久免费 | 亚洲欧美一区二区三区视频 | 久草视频在线看 | 免费在线黄| 伊人伊成久久人综合网站 | 偷拍自拍网 | 久久99这里只有精品 | 一区二区三区四区在线播放 | 国产精品一级在线观看 | 欧美久久精品一级黑人c片 91免费在线视频 | 天天爽夜夜爽精品视频婷婷 | 亚洲综合大片69999 | 久久一二 | 一区二区久久 | 日韩免费福利视频 | 日韩波多野结衣 | 亚洲国产精品99久久久久久久久 | 欧美不卡视频 | 狠狠色香婷婷久久亚洲精品 | 国产精品99久久久久久人 | 日韩精品一区二区不卡 | 中文字幕成人在线 | 91视频精选| 欧美毛片免费观看 | 麻豆精品国产91久久久久久 | 国产精品久久久久久久久免费丝袜 | 日本a级大片 | 中文字幕国产一区 | 三级成人片 | 久久精品亚洲一区二区三区浴池 | 91在线视频观看免费 | 黄色片在线免费看 | 天天影视色综合 | 亚洲一级视频在线 |