回首頁ㄌ 向上一網頁 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,#00000001B ;設為右邊第一燈

LEFT:

STB AL,PPI_PA ;AL送到A

CALL DELAY ;延遲

SHLB AL,#1 ;AL之值左移1BIT

JNC LEFT ;IF C旗標為0跳至LEFT

CALL BLINK ;閃爍三次

LDB AL,#10000000B ;設為左邊第一燈

RIGHT:

STB AL,PPI_PA

CALL DELAY

SHR AL,#1 ;AL之值右移1BIT

JNC RIGHT ;IF C旗標為0跳至RIGHT

CALL BLINK

SJMP START

 

DELAY: ;延遲副程式 (DELAY 0.25 Sec)

LD DELY1,#2

D1:

LD DELY2,#50000

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

DJNZW DELY1,D1 ;IF DELY1不為0跳至D1

RET ;副程式結束

 

BLINK: ;閃爍三次副程式

LDB BL,#3 ;閃爍三次

B1:

LDB AL,#FFH ;所有燈全亮

STB AL,PPI_PA

CALL DELAY

LDB AL,#0 ;所有燈全熄

STB AL,PPI_PA

CALL DELAY

DJNZ BL,B1

RET

END