2013年8月16日 星期五

[ Android CAR ] 淺談數位輸出控制

車身電子網路模擬模組提供了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的地址為主動暫存器頁



完整程式列表如下:















執行結果如下:



沒有留言:

張貼留言