車身電子網路模擬模組提供了4顆LED,如下圖:
這是4顆LED採用共陽極接上正電源,負極當成控制點,因此接地時為亮,否則不亮,分別接至P:3.0~P3.4。
因此在程式中,我們使用SFR巨集指令。
SBIT (LED1, SFR_P3, 0); // LED='0'表示亮 ,led1燈負極接至P3.0
SBIT (LED2, SFR_P3, 1); // LED='0'表示亮 ,led2燈負極接至P3.1
SBIT (LED3, SFR_P3, 2); // LED='0'表示亮 ,led3燈負極接至P3.2
SBIT (LED4, SFR_P3, 3); // LED='0'表示亮 ,led4燈負極接至P3.3
在使用LED1~LED4來開關LED時,要先做埠的初始化:
SFRPAGE = ACTIVE_PAGE; // 選擇SFR的地址為主動暫存器頁
PCA0MD &= ~0x40; // 禁止看門狗
SFRPAGE = CONFIG_PAGE;
P3MDOUT |= 0x0F; // 將P3.0~P3.3設定成輸出
P3SKIP |= 0x0F; // P3.0~P3.3設定成跳過交叉開關
XBR2 = 0x40; // 啟動交叉開關
SFRPAGE = ACTIVE_PAGE; // 選擇SFR的地址為主動暫存器頁
完整程式列表如下:
執行結果如下: