Page 104 -
P. 104

DAT EQU 45H

           ORG   00H
           JMP
           ORG   START       ;規避 00H 至 2FH 間之中斷向量執行位址
           MOV
START: MOV       30H ;
           ANL
           MOV   SP,#30H     ;將堆疊指標重新指向
           SETB
           MOV   TMOD,#00100001B ;設定 Timer0 為模式 1, Timer1 為模式 2
           MOV
Loop: MOV        PCON,#01111111B ;設定鮑率為 9600 bit/sec
Wait_R: JBC
           JMP   TH1,#FDH
Finish: CLR
           MOV   TR1 ;啟動 Timer1
           MOV
           MOV   SCON,#01010000B ;串列埠模式 1 設定為接收
           CALL
           INC   DAT,#0
           MOV
           CJNE  SBUF,DAT    ;DAT 載入 SBUF 開始傳送
           MOV
           JMP   RI,Finish   ;測試接收中斷旗號是否為 1

                 Wait_R      ;否, 再回去測試

                 TI ;是, 清除傳送旗標準備下次傳送

                 A,SBUF      ;由 SBUF 讀入接收資料

                 P1,A        ;由 P1 輸出顯示

                 R5,#20

                 DELAY       ;延遲 1 秒

                 DAT

                 A,#0AH

                 A,DAT,Loop

                 DAT,#0

                 Loop

DELAY: MOV       TH0,#>(65536-50000)
           MOV   TL0,#<(65536-50000)
           SETB  TR0
                 TF0,Time_out
Wait: JBC        Wait
           JMP
                 R5,DELAY
Time_out:        TR0
           DJNZ
           CLR
           RET
           END
   99   100   101   102   103   104   105   106   107   108   109