1.4 端口訪問
器件數字I/O引腳可與外設I/O引腳復用。為確保當前僅使用數字I/O,需禁止其他外
設。為此,可使用代表外設寄存器及其位的預定義C 變量。這些變量列于編譯器
include目錄下的器件特定頭文件中。關于哪些外設共用哪些引腳的信息,請參見具
體器件的數據手冊。
對于本節中的示例,端口D和端口B引腳與默認禁止的外設復用。惟一的問題在于這些
引腳默認設置為模擬I/O,因此需要將它們設置為數字I/O。對于端口D:
ANSELD = 0x0; // set to digital I/O (not analog)
器件引腳連接至器件的數字I/O端口(PORT)或鎖存器(LAT)寄存器。本示例中使用
LATD和LATB。宏LEDS_ON_OFF賦值給兩個鎖存器。對于端口D:
LATD = LEDS_ON_OFF; // write to port latch - RD[0:3] = LED[0:3]
此外,還有一個寄存器用于指定引腳的方向是輸入還是輸出,它稱為TRIS寄存器。本
節的示例中使用TRISD和TRISB。將位設置為0可將引腳設為輸出,將位設置為1可將
引腳設為輸入。對于端口D:
TRISD = 0x0; // set all port bits to be output