返回網站
返回網站

ASA M128 單板電腦平行埠(一)

· 程式編輯的基本知識,機器人程式教學

平行埠為電腦的週邊之一,其功能主要是協助電腦處理外部硬體電路的輸出入資料。輸出埠提供暫存器來暫時記憶欲輸出資料,CPU可以將資料放進輸出埠硬體暫存器之後即可不用再管這份資料,輸出埠暫存器除了記憶了這份資料,也會經由輸出埠接腳將所記憶的資料輸出到外部電路。

AVR ATmega128有ABCDE五個平行輸出埠,五個平行輸入埠,由於平行埠共用接腳接到外部接線,因此也簡稱平行埠Port。這五個埠除了做輸出入埠以外,為節省接線腳位,部份平行埠也與其它功能共用腳位,由於每支腳在一個時間僅能有一個功能,因此實際電路使用上,一個電路僅只使用其中一個功能。

當做為一般數位輸出入功能用時,AVR的平行埠具有完整,設定讀寫與執行讀寫功能,也就是每一個平行埠上的每一個單一接腳都可以被獨立設定為,輸出或輸入,並獨立執行輸出入,不致於影響到其它的接腳

Register-Based平行埠暫存器讀寫

配合平行埠各自擁有的三個一組硬體暫存器,包括平行埠輸出暫存器PORTx,平行埠資料方向暫存器DDRx,以及平行埠輸入暫存器PINx。其中PINx是僅讀,提供使用者讀取硬體週邊的邏輯狀態。PORTx,DDRx則是讀寫都可以,對於輸入暫存器,一般都只能讀進,但輸出暫存器一般除了必需要可以寫出以外,也會提供額外的讀取(回)的功能,這樣子就撰寫應用程式的人就可以讀回先前寫入的內容做為產生新寫入值的參考。

• 輸出入方向設定:借由寫入DDRx特定位元可以指定該位元為輸出(1)或則輸入(0)。

例如:想設定PORTA的高4位元為輸出,低4位元為輸入,可以用

DDRA=0xF0;// 0xF0=0b1111 0000

• 由輸出埠輸出資料:借由寫入 PORTx可以對輸出埠硬體送出邏輯控制訊號。

例如:假設己設定PORTA的高4位元為輸出,低4位元為輸入,則寫入PORTA暫存器,可控制PORTA高4位元b7,b6,b5,b4的電壓準位。其它位元接腳不受影響。設輸出0xA0,0xAF

PORTA=0xA0; // 0xA0=b1010 0000

則PORTA b7,b5 為HI(5V),PORTA b6,b4為LOW(0V)。其他位元不受影響。

PORTA=0xAF; // 0xA0=b1010 1111

也會得到相同的結果,不論b3,b2,b1,b0輸出值為0000或1111。

• 由輸入埠讀取資料:借由讀取 PINx可以取得輸入埠硬體上的電壓準位。

例如:假設己設定PORTA的高4位元為輸出,低4位元為輸入,則讀取PINA暫存器,可以取得高4位元b7,b6,b5,b4輸出值,以及低四位元接腳電壓HI/LOW(5V/0V)

例如:b3,b2,b1,b0 均接到5V 則

DDRA=0xF0;

PORTA=0xA0;

RES=PINA;

//RES值會等於 0xAF,其中A為PORTA=0xA0所設定,而F則為1111。 

AVR的平行埠輸入電路內部即有 Pull Up設計

 

輸入埠是借由偵測週邊電壓高低來得到知狀態邏輯,假設某一個輸入位元浮接(即沒有接到高電位,也沒接到低電位,而是懸空) 時,則這一位元會隨靜電電位飃動而出現干擾性輸入資料,通常IC會以一個電阻接到地(Pull Low/Pull Down)或一個電阻接到電源(Pull HI/Pull Up)讓這支接腳邏輯固定,以避免干擾。AVR的平行埠輸入電路內部即有Pull Up設計。 

#6-7 

上一篇
你知道電腦如何控制物理世界嗎?
下一篇
ASA M128 單板電腦平行埠(二)
 返回網站
strikingly iconStrikingly出品
Cookie的使用
我們使用cookie來改善瀏覽體驗、保證安全性和資料收集。一旦點擊接受,就表示你接受這些用於廣告和分析的cookie。你可以隨時更改你的cookie設定。 了解更多
全部接受
設定
全部拒絕
Cookie 設定
必要的Cookies
這些cookies支援安全性、網路管理和可訪問性等核心功能。這些cookies無法關閉。
分析性Cookies
這些cookies幫助我們更了解訪客與我們網站的互動情況,並幫助我們發現錯誤。
偏好的Cookies
這些cookies允許網站記住你的選擇,以提升功能性與個人化。
儲存