在 ATmega8A 上有三組 I/O port,分別是 Port B、Port C 及 Port D。依照 datasheet 上的描述,三組 I/O port 中的每一個 bit 可以獨立定義為輸出、或是輸入;使用暫存器 DDRx 設定輸出、輸入。對應的位元設定為 1 時,定義相對的 I/O 為輸出;反之當設定為 0 時,則定義為輸入。DDRB、DDRC 及 DDRD 的初始設定都是為 0,因此 ATmega8A 在啟始狀態下,所有 I/O 都是設定為輸入。
因為在硬體上 Port C 就只有從 PC0 ~ PC6 共七個位元,所以 DDRC 的 bit 7 就沒有作用。
接著主要是用在當 Port B~D 被設定為輸出時使用的輸出設定暫存器 PORTx;除了這個作用之外,還有其它應用是當 Port B~D 被設定為輸入時才有的。
當 Port B~D 被設定為輸入時,就得靠另一組暫存器 PINx 讀取輸入值;PINB、PINC、PIND 這三個暫存器只能當作讀取使用,不能寫入。
沒有留言:
張貼留言