標(biāo)題:
好用的旋轉(zhuǎn)編碼器單片機(jī)代碼分享
[打印本頁]
作者:
客來寶
時間:
2019-3-19 10:51
標(biāo)題:
好用的旋轉(zhuǎn)編碼器單片機(jī)代碼分享
自己寫的旋轉(zhuǎn)編碼器C語言代碼,對變量num數(shù)值進(jìn)行調(diào)整,正轉(zhuǎn)加,逆轉(zhuǎn)減,按下歸0。
對于快速、慢速旋轉(zhuǎn)準(zhǔn)確率都很高。
通用性好,有的旋轉(zhuǎn)編碼器是要轉(zhuǎn)兩格才調(diào)整一個數(shù)值的,這個代碼通用。
代碼里面的c與c1比較是防止因漏碼而卡死,c1選的80000是對1T單片機(jī)的,如果用12T的就改為10000。如果要以非常慢的速度旋轉(zhuǎn),可以在這個基礎(chǔ)上再把c1加大。
單片機(jī)源程序如下:
/* K1、K2、K3分別接旋轉(zhuǎn)編碼器的CLK、DT、SW,正時針、逆時針調(diào)整旋轉(zhuǎn)編碼器分別增、減
*/
#include <stc15.h>
sbit K1=P3^2; // K1、K2、K3分別接旋轉(zhuǎn)編碼器的CLK、DT、SW
sbit K2=P3^3;
sbit K3=P3^4;
unsigned long c,c1;
unsigned int num; //定義變量類型
bit d;
void main()
{
c1=80000;
num=100;
while (1)
{
if(K1&&K2)
{
c=0; //對c和d賦初值
d=1;
}
if(!K1&&K2&&d) //首先判斷是否符合正轉(zhuǎn)第一特征碼,如不符合則立即進(jìn)行反轉(zhuǎn)判斷
{
while (K2&&d) //等待第二特征碼出現(xiàn),如超過預(yù)設(shè)時限則直接退出,進(jìn)行下一次判斷
{ //每循環(huán)一次,c值加1,加至c1則超過預(yù)設(shè)時限,給d賦值0,退出
c++;
if(c>c1)
d=0;
}
if (!K1&&!K2&&d) //判斷是否符合正轉(zhuǎn)第二特征碼
{
while (!K1&&d)
{
c++;
if(c>c1)
d=0;
}
if (K1&&!K2&&d) //判斷是否符合正轉(zhuǎn)第三特征碼
{
num++;
}
while (!K2&&d) //等待正轉(zhuǎn)第三特征碼結(jié)束
{
c++;
if(c>c1)
d=0;
}
}
}
if(K1&&!K2&&d) //判斷是否符合反轉(zhuǎn)第一特征碼
{
while (K1&&d)
{
c++;
if(c>c1)
d=0;
}
if (!K1&&!K2&&d)
{
while (!K2&&d)
{
c++;
if(c>c1)
d=0;
}
if (!K1&&K2&&d)
{
num--;
while (!K1&&d)
{
c++;
if(c>c1)
d=0;
}
}
}
}
if(!K3)
{
num=0;
}
}
}
復(fù)制代碼
所有資料51hei提供下載:
旋轉(zhuǎn)編碼器.rar
(30.82 KB, 下載次數(shù): 354)
2019-3-19 10:51 上傳
點(diǎn)擊文件名下載附件
5
下載積分: 黑幣 -5
作者:
myd
時間:
2019-7-20 11:05
正需要這個來參考學(xué)習(xí)。謝謝。
作者:
dlwater
時間:
2019-9-24 13:16
謝謝分享,剛好需要這個程序。
作者:
liu198601
時間:
2019-10-1 08:01
感謝分享
作者:
saixun
時間:
2019-10-8 17:21
正需要這個來參考學(xué)習(xí)。謝謝。
作者:
lixiaofei
時間:
2020-3-6 15:28
謝謝分享
作者:
lixiaofei
時間:
2020-3-6 15:29
謝謝分享,看一下
作者:
wsh791
時間:
2020-3-7 06:30
謝謝分享
作者:
bg4rfb
時間:
2020-3-7 17:03
感謝分享!
作者:
jameshhb
時間:
2020-3-11 16:10
用的是51單片機(jī)嗎?
作者:
xiejp03
時間:
2020-4-12 20:51
謝謝奉獻(xiàn)分享~
作者:
客來寶
時間:
2021-2-9 23:50
好久沒來論壇了
作者:
cdiyy
時間:
2021-3-19 08:59
感謝分享,正在學(xué)習(xí)中
作者:
kkk2003
時間:
2021-5-30 20:26
目前還用不到,先看看
作者:
myhj
時間:
2024-6-29 09:55
這個程序真的不錯,快調(diào)慢調(diào)都很準(zhǔn)確。
作者:
piscest_x
時間:
2024-11-4 09:59
myhj 發(fā)表于 2024-6-29 09:55
這個程序真的不錯,快調(diào)慢調(diào)都很準(zhǔn)確。
我的快調(diào)不是每次都識別
作者:
w645053932
時間:
2025-1-16 12:24
謝謝分享,剛好需要這個程序。
作者:
w645053932
時間:
2025-1-16 12:25
兩個以上編碼器
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1