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

標(biāo)題: 51單片機(jī)使用ec11旋轉(zhuǎn)編碼器 數(shù)碼管顯示 [打印本頁]

作者: valiantzhang    時間: 2016-10-31 21:39
標(biāo)題: 51單片機(jī)使用ec11旋轉(zhuǎn)編碼器 數(shù)碼管顯示
#include<reg51.h>
#define GPIO_DIG P0
unsigned char code DIG_CODE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//顯示0~9的值
int tmp = 1;
#define uchar unsigned char
sbit BB  = P1^0;//接編碼器A端
sbit AA  = P1^1;//接編碼器B端
void delayms(uchar count)
{
        uchar i,j;
        for(i = 0; i < count; i++)
                for(j = 0; j < 120; j++);
}
/**********************************
  5ms延時函數(shù)
**********************************/
void delay(void) //延時5ms
{
        uchar a, b;
        for(b = 19; b > 0; b--)
                for(a = 130; a > 0; a--);
}
void main()
{
        while(1)
        {          if(tmp<1){tmp=1;}
                  if(tmp>8){tmp=9;}
                GPIO_DIG=~DIG_CODE[tmp];
               
                if(AA == 0)//開始檢測是否旋轉(zhuǎn)了開關(guān)
                {
                        delayms(10);//消除抖動
                        if(AA == 0) //確實(shí)是旋轉(zhuǎn)了,進(jìn)行正反轉(zhuǎn)判斷
                        {
                                if(BB == 0)//正轉(zhuǎn),進(jìn)行正轉(zhuǎn)處理
                                {
                                        tmp++;//為了使LED正向遞增
                                }
                                if(BB == 1)//反轉(zhuǎn),進(jìn)行反轉(zhuǎn)處理
                                {
                                        tmp--;//為了使LED反向遞減
                                }
                        }
                        while(AA == 0)//等待開關(guān)A端復(fù)位(斷開),防止出現(xiàn)亂加減的現(xiàn)象
                        {
                                delayms(20);//延時等待
                        }
                }

        }
}



作者: 1031565585    時間: 2018-1-3 15:38
我用到我的編碼器上,怎么正轉(zhuǎn)和反轉(zhuǎn)一樣,都是反轉(zhuǎn)的結(jié)果呢
作者: 如鹿歸林    時間: 2018-4-1 09:52
旋轉(zhuǎn)編碼器怎么接到單片機(jī)上?您這個程序數(shù)碼管顯示的是什么
作者: frank123098    時間: 2018-10-23 09:51
樓主,這程序計數(shù)問題知道怎么弄?
作者: yywxyhnyll    時間: 2019-8-27 14:28
測試可以用  謝謝
作者: bbcs852    時間: 2020-8-18 21:17
先收藏,等我買這個EC11編碼器回來實(shí)驗(yàn)
作者: ZMRGHY    時間: 2021-10-21 05:09
如何不使用delay...51單片機(jī)使用延時做旋轉(zhuǎn)編碼器原理展示還可以。。。
實(shí)用開發(fā)中如果用延時,就太消耗單片機(jī)資源了。。。。
作者: qqhuacong    時間: 2021-10-24 21:14
ZMRGHY 發(fā)表于 2021-10-21 05:09
如何不使用delay...51單片機(jī)使用延時做旋轉(zhuǎn)編碼器原理展示還可以。。。
實(shí)用開發(fā)中如果用延時,就太消耗單 ...

核心算法:
unsigned char Trg;
unsigned char Cont;
void KeyRead( void )
{
    unsigned char ReadData = PINB^0xff;      // 1
    Trg = ReadData & (ReadData ^ Cont);      // 2
    Cont = ReadData;                         // 3
}

//Trg(triger) 代表的是觸發(fā),Cont(continue)代表的是連續(xù)按下。

#define KEY_BEEP 0x01
void KeyProc(void)
{
       if (Trg & KEY_BEEP) // 如果按下的是KEY_BEEP
      {
         Beep();            // 執(zhí)行蜂鳴器處理函數(shù)
    }
}

作者: xiexugang    時間: 2021-10-25 09:57
程序?qū)懙暮芎?思路比較好,A接通的瞬間,如果B沒有接通,說明A是超前的; 如果B接通了,則說明B超前的, 以此判斷旋轉(zhuǎn)方向,是簡單有效的
作者: 新鄉(xiāng)家電維修    時間: 2021-10-26 09:04
用狀態(tài)機(jī),定時器定時實(shí)現(xiàn)判斷才是高效的
作者: werjufour    時間: 2022-12-17 22:27
新鄉(xiāng)家電維修 發(fā)表于 2021-10-26 09:04
用狀態(tài)機(jī),定時器定時實(shí)現(xiàn)判斷才是高效的

大佬,用定期怎么寫的,你有參考程序可以發(fā)下么
作者: joyb    時間: 2023-6-25 16:32
學(xué)習(xí)ec11旋轉(zhuǎn)編碼器,很不錯
作者: 841812960    時間: 2024-10-19 14:20
STC15SPI
作者: 234134519    時間: 2024-11-6 12:23
學(xué)習(xí)了 買個編碼器試試




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 婷婷俺也去 | 一级毛片久久久 | 成人在线观看网站 | 五月在线视频 | 亚洲在线 | 精品久久国产 | 日日干av| 黄色在线免费网站 | 亚洲综合二区 | 国产主播精品 | 在线日韩视频 | 人人草人人爽 | 深夜视频在线观看 | 日韩福利在线 | 91精品看片 | 欧美一区二区视频在线观看 | 久久在线精品 | 日韩精品久久久久久 | av不卡在线观看 | 日韩一级免费 | 中文字幕免费高清 | 青青草国产成人av片免费 | 免费av不卡 | 最新日韩在线 | 中文字幕一区二区三区视频 | 欧美区在线 | 久久久久一区二区 | 午夜999| 天天干天天操天天插 | 成人精品视频 | 99久久99| 天天综合天天 | 国产黄色免费 | 国产免费一区二区三区 | 一级黄色片免费看 | 黄色网av| 精品一区二区在线视频 | 日韩福利在线 | 五月六月丁香 | 伊人久久网站 | 国产香蕉在线 |