2011年8月18日 星期四

DIY - PIC:PIC18F4550 + ULN2003A LED 測試程式 (一百零七)

DIY - PIC:PIC18F4550 + ULN2003A LED 測試程式 (一百零七):

PIC18F4550 + ULN2003A 的 LED 程式是用 Delay Loop 來作時間的廷遲,將 PORTA RA1 至 RA5 的狀態由ON至OFF 順序改變,然後循環不息,LED 燈便會順序閃動不停。這程式的主要目的是測試 ULN2003A 集成電路 (IC) 的效果,以便下一步會用來控制 TEAC 步進馬達。

▲ ULN2003A LED 測試程式流程圖
 ▼ ULN2003A  LED 測試程式:
//***** Program Start Here *****
void main(void)
{
    TRISA = 0b00000001;            // Setup PORTA RA1 - RA7 as Output

    while(1)
    {
    LATAbits.LATA1 = 1;                    // RA0=1 LED=ON Scope=1
    Delay10KTCYx(240);                  // 10,000 x 1 x (4 x 0.05us) = 2ms
                                        // Scope = 2ms   
    LATAbits.LATA1 = 0;                    // RA1=0 LED=OFF Scope=50ms

    LATAbits.LATA2 = 1;                    // RA2=1 LED=ON Scope=1
    Delay10KTCYx(240);                  // 10,000 x 1 x (4 x 0.05us) = 2ms
                                        // Scope = 2ms
    LATAbits.LATA2 = 0;                    // RA2=0 LED=OFF Scope=50ms

    LATAbits.LATA3 = 1;                    // RA3=1 LED=ON Scope=1
    Delay10KTCYx(240);                  // 10,000 x 1 x (4 x 0.05us) = 2ms
                                        // Scope = 2ms
    LATAbits.LATA3 = 0;                    // RA3=0 LED=OFF Scope=50ms

    LATAbits.LATA4 = 1;                    // RA4=1 LED=ON Scope=1
    Delay10KTCYx(240);                  // 10,000 x 1 x (4 x 0.05us) = 2ms
                                        // Scope = 2ms
    LATAbits.LATA4 = 0;                    // RA4=0 LED=OFF Scope=50ms
           
    }
}

▲ LED 1 ON (亮著)
▲ LED 2 ON (亮著)
▲ LED 3 ON (亮著)
▲ LED 4 ON (亮著)
▲ ULN2003A LED測試程式在運作中
2011 年  08月 18日 天氣報告 
氣溫:28.0 度 @ 22:00 
相對濕度:百分之81% 
天氣:天色大致良好

1 則留言:

  1. 請問一下...
    可以給我 ULN2003A LED 測試程式 每一行的註解麻...
    想研究可以是看不太懂..

    回覆刪除