回首頁ㄌ 向上一網頁 8096 實習一 8096 實習二
         8096 實習三 8096 實習四 8096 實習五 8096 實習六 8096 實習七 8096 實習八

                                                       實 習 七

                                             紅 綠 燈

.INCLUDE 80C196KC.H ;定義各暫存器與I/O之位址

.SYMBOLS

.CHIP 80196KC ;定義晶片編號

.ORG 0A000H ;CCR暫存器的位址

LDB AL,#80H ;PPI_CW為單片上之8255位址﹐設定

STB AL,PPI_CW ;80H (ABC埠為輸出)

START:

LDB AL,#100001B ;北向綠燈亮﹐東向紅燈亮

STB AL,PPI_PA

LD DELY2,#40 ; 上述動作DELAY 4Sec

CALL DELAY

LDB BL,#5 ;北向綠燈閃5

LOOP:

ANDB AL,#011111B ;北向綠燈熄﹐東向紅燈亮

STB AL,PPI_PA

LD DELY2,#1 ;上述動作 DELAY 0.1Sec

CALL DELAY

ORB AL,#100000B ;北向綠燈亮﹐東向紅燈亮

STB AL,PPI_PA

LD DELY2,#1

CALL DELAY

DJNZ BL,LOOP IF BL不為0跳至LOOP

LDB AL,#010001B ;北向黃燈亮﹐東向紅燈亮

STB AL,PPI_PA

LD DELY2,#20 ;上述動作 DELAY 2Sec

CALL DELAY

LDB AL,#001100B ;北向紅燈亮﹐東向綠燈亮

STB AL,PPI_PA

LD DELY2,#40

CALL DELAY

 

LDB BL,#5 東向綠燈閃5

LOOP1:

ANDB AL,#111011B ;北向紅燈亮﹐東向綠燈熄

STB AL,PPI_PA

LD DELY2,#2

CALL DELAY

ORB AL,#000100B ;北向紅燈亮﹐東向綠燈亮

STB AL,PPI_PA

LD DELY2,#2

CALL DELAY

DJNZ BL,LOOP1

LDB AL,#001010B ;北向紅燈亮﹐東向黃燈亮

STB AL,PPI_PA

LDB DELY2,#20

CALL DELAY

SJMP START ;從頭開始

 

;延遲副程式 (DELAY 0.25E-5 *DELY2 *DELY1 Sec)

DELAY:

LD DELY1,#40000

DJNZW DELY1,$ ;IF DELY1不為0跳至自己

DJNZW DELY2,DELAY ; ;IF DELY2不為0跳至DELAY

RET

END