導航:首頁 > 操作系統 > 編碼開關單片機

編碼開關單片機

發布時間:2022-06-07 04:45:00

㈠ 編碼器和單片機有什麼區別

編碼器是組合邏輯電路,其功能明確,單一。
單片機,可通過編程實現各種功能,包括編碼器功能。

㈡ ec11編碼器開關怎麼用五個引腳分別是干什麼的51單片機用來測量角度該怎樣接線

單獨的兩個腳是按動開關,另三個腳中間相當於公共

㈢ 編碼器與單片機如何連接

NPN開路輸出,又叫OC輸出。你需要在A、B端分別外接一個電阻,電阻上端的電壓由你的電路決定:
單片機接5V,PLC接24V,使用就很方便了。
檢測A、B信號就是(1)檢測脈沖數量;(2)A、B誰在前?誰在後?A相上升沿在前(出現高電平)表示編碼器正轉;反之B在前,表示反轉。
至於45°,就看你的編碼器一周有多少脈沖,自己分配了。

㈣ 編碼器與單片機的連接

可以直接和單片機IO相接,但有的設計者為了降低外部干擾,一般通過D觸發器或者光耦後與IO相連,一般的光電編碼器都是集電極開路輸出型的,你看其說明書有具體電路。一般將A、B相接到定時器輸入的IO上,這樣比較好處理,將定時器設為計數器模式就可以了。檢測步進電機轉動角度當然可以做到,這只是基本應用。360線,一個脈沖輸入就是1度,所以很容易的。接收到45個脈沖就證明轉動了45度了。

㈤ 單片機開關控制LED數碼管的編碼

一,什麼是數碼管

數碼管,其實就是由多個led組合在一起的組合顯示塊;有共陰極的,也有共陽極的。使用的數碼管不同,裡麵包含的led個數也會有相關的差異。我們通常使用的數碼管,裡面有8個led燈,大家可以參照生活中的數碼管器件就一目瞭然了,你會發現,數碼管顯示的每一個數字或字母,都是一段一段組合拼接起來的,並不是像寫的那樣圓滑。其中,組合的每一個段,就是一個led燈。

二,點亮一個數碼管

2.1.在點亮數碼管之前,你還必須弄清楚,改數碼管的接是共陰極還是共陽極的接法;其次,還得弄清楚是那幾個(或一個) IO口是IO口 的斷選位(也就是控制顯示哪一個數碼管,通常由IO口控制一個解碼器來實現,因為這樣更節約IO口資源)。

2.2.弄清楚斷選位之後,還得知道,是哪些IO口控制我們的數碼管上的led;

比如:

P0.0 控制數碼管上的led.0;(注意:數碼管上對應的led位,可以參照原理圖上的或查閱相關資料獲得,這里僅僅舉列)

P0.1-->led.1 P0.2-->led2 ......

2.3.想要點亮數碼管很容易,只要開啟對應的數碼管斷選位,再設置數碼管上led的值為點亮(有的數碼管是共陰極接法,有的是共陽極接法,根據具體的設計,給出相關的高或低電平即可)就OK了。但是,我們要在數碼管上顯示我們想要的數字增么辦呢?這個時候,就是考研創造力的時候了,有的數碼管的資料會直接給出它的真值表,但有的卻不一定找得到。在這個時候,我們就得根據我們想要顯示的數字,點亮並熄滅對應數碼管上的led來實現。(推薦:你可以自己先實驗,找出0-9,或其他想要顯示的字元所對應的IO口的值,來保存起來,這樣你就可以重復利用啦!)

三,點亮多個數碼管

3.1 我們想要點亮多個數碼管,首先可以根據2.1,弄清楚你的數碼管的斷選位,然後周期性的改變斷選位的值,以此動態逐個顯示你的數碼管。

3.2 在顯示多個數碼管時,建議周期大於100hz,這樣人眼難以識別起關和開的瞬間,我們看起來就像時很多個數碼管同時點亮了一樣。

四,動態顯示數碼管

4.1 ,在動態顯示數碼管的值時,建議先根據2.2和2.3,把對應的數碼管顯示參數照準,並保存下來,這樣你用起來也方便。

4.2, 動態顯示數碼管,我們可以在規定的時間周期,改變數碼管對應led的開關個數來實現,比如說:

0 在數碼管中顯示的值為0xc0 1是0xf9

那麼我們就可以在規定的時間里,切換該值,從而達到動態效果。

4.3 我們應該注意的時,掃描數碼管(即顯示多個數碼管)應該與設置數碼管的值(數碼管中led的狀態更新)區分開,掃描周期我們可以放短一點,而改變它的值的周期我們可以一秒或者是2秒改變一次。

4.4 消除余暉,大家實驗後,可能會發現,你顯示的值有的時候並不是想要的,它會跳動或者是亮滅不清晰,這個我們就叫做余暉效應。

產生余暉效應的原因是因為你在選則下一個數碼管的時候,還保留了上一個數碼管的顯示值,所以我們消除余暉,只需要在改變數碼管顯示值的時候,先關閉所有數碼管的顯示,在值跟新完成後我們再打開顯示。這里你不用擔心關閉和開啟會有閃爍,更新值的時間會很短,肉眼時幾乎察覺不到滴。

5,示列代碼

/*

晶元:stc89c52

器件:38解碼器等

編譯環境:UV4,C語言

*/

#include

sbit ADDR0 = P1^0;

sbit ADDR1 = P1^1;

sbit ADDR2 = P1^2;

sbit ADDR3 = P1^3;

sbit ENLED = P1^4;

unsigned char code LedChar[] = {undefined

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e

};//數碼管顯示值真值表緩存數組

unsigned char LedBuff[6] = {undefined

0xff,0xff,0xff,0xff,0xff,0xff

};//數碼管顯示值緩存數組

void main()

{undefined

unsigned char i =0;

unsigned int cnt = 0;

unsigned long sec = 0;

ENLED = 0;

ADDR3 = 1;

TMOD = 0x01;

TH0 = 0xfc;

TL0 = 0x67;

TR0 = 1;

while(1)

{undefined

if(TF0==1)

{undefined

TF0 = 0;

TH0 = 0xfc;

TL0 = 0x67;

cnt++;

if(cnt>=1000)

{undefined

cnt = 0;

sec++;

LedBuff[0] = LedChar[sec%10];

LedBuff[1] = LedChar[sec/10%10];

LedBuff[2] = LedChar[sec/100%10];

LedBuff[3] = LedChar[sec/1000%10];

LedBuff[4] = LedChar[sec/10000%10];

LedBuff[5] = LedChar[sec/100000%10];

}

switch(i)

{undefined

case 0:ENLED = 1;ADDR2=0;ADDR1=0;ADDR0=0;i++;P0=LedBuff[0];ENLED = 0;break;

case 1:ENLED = 1;ADDR2=0;ADDR1=0;ADDR0=1;i++;P0=LedBuff[1];ENLED = 0;break;

case 2:ENLED = 1;ADDR2=0;ADDR1=1;ADDR0=0;i++;P0=LedBuff[2];ENLED = 0;break;

case 3:ENLED = 1;ADDR2=0;ADDR1=1;ADDR0=1;i++;P0=LedBuff[3];ENLED = 0;break;

case 4:ENLED = 1;ADDR2=1;ADDR1=0;ADDR0=0;i++;P0=LedBuff[4];ENLED = 0;break;

case 5:ENLED = 1;ADDR2=1;ADDR1=0;ADDR0=1;i=0;P0=LedBuff[5];ENLED = 0;break;

default:break;

}

}

}

}

以上代碼,僅供參考,您需要根據自己原理圖的設計來實現。

㈥ 編碼器與單片機,具體如何接線呢

如果你想用編碼器和單片機進行數據交互的話就用通信的方式可以選擇串口,也可以用 I2C 或者 SPI 進行通信如果你是想單方向的,直接隨意接IO口就可以了

㈦ 怎樣用單片機控制音響的音量

單片機控制音響的音量的方式有兩種:
一種是控制音響音量的採用馬達電位器,單片機控制馬達順時針或逆時針轉動,實現音量控制。和傳統的電位器相比相當於在普通電位器基礎上增加了馬達實現音量控制,這類電位器的尺寸比較大,而且因為馬達經常轉動,故障率相對較高。
還有種是採用集成電路來實現:用專用的音量控制集成電路加上編碼開關(也叫數字電位器)配合單片機程序實現對音量控制。例如PTC(台灣普城 http://www.princeton.com.tw)品牌的PT2313等,和馬達控制相比較有可靠性高,體積小的優點。

㈧ 有關編碼器與51單片機連接的問題

E6A2-CW3C旋轉編碼器輸出兩路正交(相位相差90°)脈沖信號。解析度200意味著編碼器每旋轉一周輸出200個周期脈沖。如果把每一路脈沖的上沿和下沿都利用起來,相當於四倍頻,解析度可以達到200×4=800。
編碼器輸出通常為5v的TTL電平,可以直接連接到單片機。能否利用單片機直接讀取編碼器並計數,則取決於你的應用中,編碼器軸旋轉的速度有多大?因為,單片機對兩路脈沖的計數只能基於對脈沖的上跳(或者下跳,下同)的處理。而單片機對隨機上跳處理的較好的方案是上跳引起一個中斷,在中斷程序中實施判斷後再進行加1或減1的計數。中斷處理是需要時間的。當編碼器旋轉足夠快,輸出脈沖周期少於中斷處理時間時,將導致脈沖丟失,這會引起計數誤差。
所以,你要准確估計你的編碼器旋轉速度,得到最小的脈沖周期;然後估算你的中斷處理程序的執行時間(在AT89S52最大系統時鍾下)。兩者比較後才能確定你的設計是否可行。

㈨ 旋轉編碼開關加單片機實現角度檢測

直接按照你的思維就可以了,不用步進電機的,你要是要旋轉角度才要用步進電機。具體的可以在網路文庫搜索「數字旋轉編碼開關的原理及使用方法」參考一下就可以了,還不明白再追問。

㈩ 請問旋轉編碼開關的A、B端接到單片機引腳時,是否還要接上拉電阻

接上啦電阻,主要是為了開機時單片機埠的狀態更能確定是高,還是低,如果有輸出的話拉低,
關閉輸出,上啦電阻啦高,這樣對控制的負載抗干擾能力強些。

閱讀全文

與編碼開關單片機相關的資料

熱點內容
python字元串中符號 瀏覽:785
python正則表達式貪婪模式 瀏覽:648
愛國精神指的是什麼app 瀏覽:408
壽司解壓系列全集視頻 瀏覽:913
物體三維重建演算法 瀏覽:984
fuli直播app哪個好 瀏覽:918
租辦公室用什麼app 瀏覽:106
醫師定期考核刷題app哪個好 瀏覽:338
導出dmp文件命令 瀏覽:288
手機百度網盤怎麼解壓密碼文件 瀏覽:585
索引重新編譯 瀏覽:606
命令與征服4免cd補丁完美版 瀏覽:428
kotlin編譯為native 瀏覽:142
家用編譯機 瀏覽:552
電子加密貨幣最新政策 瀏覽:382
androidcanvas撤銷 瀏覽:272
安卓手機怎麼把圖標全部下移 瀏覽:187
飢荒被伺服器踢出怎麼進 瀏覽:173
c編譯器哪款好 瀏覽:734
快手寶哥發明什麼app 瀏覽:823