免费看aⅴ,天天插天天干天天射,呦女网,入逼逼

您現(xiàn)在的位置:智能制造網(wǎng)>技術(shù)中心>旋轉(zhuǎn)編碼器程序簡(jiǎn)介

直播推薦

更多>

企業(yè)動(dòng)態(tài)

更多>

推薦展會(huì)

更多>

旋轉(zhuǎn)編碼器程序簡(jiǎn)介

2013年05月08日 11:08:50人氣:4375來(lái)源:上海德晶光電科技有限公司DECHING

zui近用到旋轉(zhuǎn)編碼器,在網(wǎng)上找了一大堆資料,發(fā)現(xiàn)這篇好文章。供大家參考!
[ME850擴(kuò)展應(yīng)用]旋轉(zhuǎn)編碼器計(jì)數(shù)程序(飛梭旋鈕功能)-數(shù)碼管顯示
/*******************************************************************
* *
* ME850單片機(jī)開(kāi)發(fā)實(shí)驗(yàn)儀演示程序 - 旋轉(zhuǎn)編碼器計(jì)數(shù)程序 *
* *
* 3位數(shù)碼管顯示 *
* *
* MCU: AT89S52 晶振:11.0592MHz *
* *
* 版本:V1.1 (2009/04/29) *
* 作者:gguoqing (: gguoqing@) *
* : (碩飛科技) *
* (偉納單片機(jī)世界) *
* :sofitech@ *
* *
*【版權(quán)】Copyright(C) 深圳碩飛科技有限公司 All Rights Reserved *
*【聲明】此程序僅用于學(xué)習(xí)與參考,引用請(qǐng)注明版權(quán)和作者信息! *
* *
********************************************************************
* *
* 功能簡(jiǎn)述: (飛梭旋鈕功能) *
* 當(dāng)旋鈕順時(shí)針旋轉(zhuǎn)時(shí),計(jì)數(shù)值增加。達(dá)到zui大值255后,不再響應(yīng)。 *
* 當(dāng)逆鈕順時(shí)針旋轉(zhuǎn)時(shí),計(jì)數(shù)值減小。達(dá)到zui小值0后,不再響應(yīng)。 *
* 當(dāng)按下旋鈕時(shí),將計(jì)數(shù)值清零(歸位)。 *
* *
*******************************************************************/
#Include <reg52.h>
sbit PINA = P1^0;
sbit PINB = P1^1;
sbit PIND = P1^2;
unsigned char display[3];
unsigned char code LEDData[ ] =
{
0xC0,0xF9,0xA4,0xB0,0x99,0x92,
0x82,0xF8,0x80,0x90,0xff
};
char code reserve[3]_at_ 0x3b; //保留0x3b開(kāi)始的3個(gè)字節(jié)
unsigned char counter = 0; //編碼器脈沖計(jì)數(shù)
unsigned char n,shift;
/**********************************************************
ms延時(shí)子函數(shù)
**********************************************************/
void delayms(unsigned int ms)
{
unsigned char k;
while (ms--)
{
for (k = 0; k < 114; k++)
;
}
}
/**********************************************************
掃描編碼器子函數(shù)
在編碼器引腳A為低電平期間:
編碼器引腳B從0到1為正轉(zhuǎn),編碼器引腳B從1到0為反轉(zhuǎn)。
**********************************************************/
void scan_encoder(void)
{
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; //記錄B信號(hào)
while(!PINA) //等待A由低變高
{
Curr_encoder_b = PINB; //記錄等待期間的B信號(hào)(指當(dāng)前B信號(hào))
updata = 1;
}
if(updata)
{
updata = 0 ;
if( (Last_encoder_b == 0)&&(Curr_encoder_b== 1) ) //B從0到1為正轉(zhuǎn)
{
if(counter == 255)
return;
counter++; //正轉(zhuǎn)計(jì)數(shù)加
}
else if( (Last_encoder_b == 1)&&(Curr_encoder_b == 0) ) //B從1到0為反轉(zhuǎn)
{
if(counter == 0)
return;
counter--; //反轉(zhuǎn)計(jì)數(shù)減
}
}
}
/**********************************************************
主函數(shù)
**********************************************************/
void main(void)
{
P0 = 0xff;
P1 = 0xff;
P2 = 0xff;
T2CON = 0x00; //設(shè)置T2CON寄存器
TH2 = 0xfc; //1ms定時(shí)
TL2 = 0x66;
ET2 = 1; //啟用Timer2中斷
EA = 1; //總中斷允許
TR2 = 1; //啟動(dòng)定時(shí)器2
counter = 0; //計(jì)數(shù)單元清零
while(1)
{
scan_encoder();
if(! PIND) //當(dāng)按下旋鈕時(shí)
{
counter = 0; //計(jì)數(shù)單元清零(歸位)
delayms(10);
}
}
}
/*********************************************************
Timer2中斷函數(shù)
**********************************************************/
void timer2() interrupt 5
{
TR2 = 0;
TF2 = 0; //手工清中斷標(biāo)志
TH2 = 0xfc; //1ms定時(shí)常數(shù)
TL2 = 0x66;
if(n >= 3) //3位數(shù)碼管顯示
{
n = 0;
shift = 0xfe; //送位碼初值
P2 = 0xff; //關(guān)閉顯示
}
else
{
display[0] = counter%10; //個(gè)位數(shù)據(jù)
display[1] = (counter%100)/10; //十位數(shù)據(jù)
display[2] = counter/100; //百位數(shù)據(jù)

if(display[2] == 0)
{
display[2] = 0x0a; //百位為0,不顯示
if(display[1] == 0)
display[1] =0x0a; //十位為0,不顯示
}
P0 = LEDData[display[n++]]; //送段碼
P2 = shift; //送位碼
shift = (shift<<1)|0x01; //調(diào)整位碼
}
TR2 = 1;
}
全年征稿/資訊合作 聯(lián)系郵箱:1271141964@qq.com

免責(zé)聲明

  • 凡本網(wǎng)注明"來(lái)源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請(qǐng)必須注明智能制造網(wǎng),http://www.caslcampaign.com。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
  • 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
  • 本網(wǎng)轉(zhuǎn)載并注明自其它來(lái)源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類(lèi)作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品來(lái)源,并自負(fù)版權(quán)等法律責(zé)任。
  • 如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

<
更多 >

工控網(wǎng)機(jī)器人儀器儀表物聯(lián)網(wǎng)3D打印工業(yè)軟件金屬加工機(jī)械包裝機(jī)械印刷機(jī)械農(nóng)業(yè)機(jī)械食品加工設(shè)備制藥設(shè)備倉(cāng)儲(chǔ)物流環(huán)保設(shè)備造紙機(jī)械工程機(jī)械紡織機(jī)械化工設(shè)備電子加工設(shè)備水泥設(shè)備海洋水利裝備礦冶設(shè)備新能源設(shè)備服裝機(jī)械印染機(jī)械制鞋機(jī)械玻璃機(jī)械陶瓷設(shè)備橡塑設(shè)備船舶設(shè)備電子元器件電氣設(shè)備


我要投稿
  • 投稿請(qǐng)發(fā)送郵件至:(郵件標(biāo)題請(qǐng)備注“投稿”)1271141964.qq.com
  • 聯(lián)系電話(huà)0571-89719789
工業(yè)4.0時(shí)代智能制造領(lǐng)域“互聯(lián)網(wǎng)+”服務(wù)平臺(tái)
智能制造網(wǎng)APP

功能豐富 實(shí)時(shí)交流

智能制造網(wǎng)小程序

訂閱獲取更多服務(wù)

微信公眾號(hào)

關(guān)注我們

抖音

智能制造網(wǎng)

抖音號(hào):gkzhan

打開(kāi)抖音 搜索頁(yè)掃一掃

視頻號(hào)

智能制造網(wǎng)

公眾號(hào):智能制造網(wǎng)

打開(kāi)微信掃碼關(guān)注視頻號(hào)

快手

智能制造網(wǎng)

快手ID:gkzhan2006

打開(kāi)快手 掃一掃關(guān)注
意見(jiàn)反饋
關(guān)閉
企業(yè)未開(kāi)通此功能
詳詢(xún)客服 : 0571-87858618