實 習 四
左 右 旋 加 閃 爍 三 次
.INCLUDE
80C196KC.H ;定義各暫存器與I/O之位址.SYMBOLS
.CHIP
80196KC ;定義晶片編號.ORG
0A000H ;CCR暫存器的位址 LDB AL,#80H ;PPI_CW為單片上之8255位址﹐設定 STB AL,PPI_CW ;為80H (A、B、C埠為輸出)START:
LDB AL,#00000001B ;
設為右邊第一燈 LEFT:STB AL,PPI_PA ;AL
送到A埠 CALL DELAY ;延遲 SHLB AL,#1 ;AL之值左移1BITJNC LEFT ;IF C
旗標為0跳至LEFTCALL BLINK ;
閃爍三次 LDB AL,#10000000B ;設為左邊第一燈 RIGHT:STB AL,PPI_PA
CALL DELAY
SHR AL,#1 ;AL
之值右移1BITJNC RIGHT ;IF C
旗標為0跳至RIGHTCALL BLINK
SJMP START
DELAY: ;
延遲副程式 (DELAY 0.25 Sec)LD DELY1,#2
D1: LD DELY2,#50000DJNZW DELY2,$ ;IF DELY2
不為0跳至自己 DJNZW DELY1,D1 ;IF DELY1不為0跳至D1RET ;
副程式結束
BLINK: ;
閃爍三次副程式 LDB BL,#3 ;閃爍三次 B1:LDB AL,#FFH ;
所有燈全亮 STB AL,PPI_PACALL DELAY
LDB AL,#0 ;
所有燈全熄 STB AL,PPI_PACALL DELAY
DJNZ BL,B1
RET
END