Page 64 -
P. 64

DB 01H,03H,07H,0FH,1FH,3FH,7FH,FFH
DB 7FH,3FH,1FH,0FH,07H,03H,01H,00H
DB 7FH,3FH,1FH,0FH,07H,03H,01H,00H
DB 7FH,3FH,1FH,0FH,07H,03H,01H,00H
DB 7FH,3FH,1FH,0FH,07H,03H,01H,00H

END

程式技巧說明:

      在上列兩程式均將 P0~P3 做為輸出埠,程式中 ORG 為虛指令,用以告知編譯器將
其下之程式,放置於程式記憶體中之位址。由於 8051 之中斷向量位址,如下圖,故程
式撰寫時應養成不使用這部分之記憶體。

中斷源     中斷向量

Reset   0000H

INTO    0003H
Timer0  000BH

INT 0   0013H
Timer1  001BH

UART ( TXD ) 0023H

UART ( RXD ) 002BH

      首先,8051 啟動後,須給予一 Reset 信號,則程式由 0000H 位址開始執行,而程式
中 JMP START 指令則是用以規避中斷向量,故 ORG 30H 則指定另一程式記憶體放置起
始點。

      另外,CALL DELAY 指令則是用以呼叫延遲副程式,而在副程式中是以 RET 做為
結束,執行到 RET 後則在跳回主程式中繼續執行。
   59   60   61   62   63   64   65   66   67   68   69