一、實驗目的
1、掌握雙機通信的原理和編程方法。
2、學習8251A的使用方法
二、實驗內(nèi)容
1、實驗原理圖:
2.實驗內(nèi)容?
如圖所示,TXC和RXC分別為8251A的發(fā)送時鐘和接收時鐘。它由片外8253A的OUT1提供。本實驗要求以查詢方式進行收發(fā)。要完成本實驗,需2臺DVCC系列實驗系統(tǒng)。其中一臺為串行發(fā)送,一臺為串行接收,在1號機上裝串行發(fā)送程序,在2號機上裝串行接收程序,則在1號機上鍵入的字符顯示在2號機的顯示器上。
由于本系統(tǒng)監(jiān)控中未對8253A、8251A進行初始化,因此本實驗開始必須對8253、8251進行初始化,然后才可以直接進入對串行口狀態(tài)的查詢。
三、程序
系統(tǒng)晶振是 6.0 MHz
ORG 07F0H
START:
MOV SP,#60H
mov A,#02H
MOV R0,#79H
MOV @R0,A
INC R0
MOV A,#10H
MOV @R0,A
INC R0
MOV A,#01H
MOV @R0,A
INC R0
MOV A,#03H
MOV @R0,A
INC R0
MOV A,#00H
MOV @R0,A
INC R0
MOV A,#08H
MOV @R0,A
MOV A,#7EH
MOV DPTR,#1FFFH
MOVX @DPTR,A
MOV 87H,#80H
MOV SCON,#50H ;串口 方式 1
MOV TMOD,#20H ;T1 方式 1
MOV TL1,#0F3H ;波特率 9600 的常數(shù)
MOV TH1,#0F3H
SETB TR1 ;開中斷
CLR ET1
CLR ES
WAIT:
JBC RI,DIS_REC ;是否接收到數(shù)據(jù)
LCALL DISP ;
SJMP WAIT ;
DIS_REC:
MOV A,SBUF ;讀串口接收到的數(shù)據(jù)
LCALL DATAKEY ;顯示輸入的數(shù)字(0-F)
DB 79H,7EH
AJMP WAIT
DATAKEY: MOV R4,A
MOV DPTR,#1FFFH
MOVX A,@DPTR
MOV R1,A
MOV A,R4
MOV @R1,A
CLR A
POP 83H
POP 82H
MOVC A,@A+DPTR
INC DPTR
CJNE A,01H,DATAKEY2
DEC R1
CLR A
MOVC A,@A+DPTR
DATAKEY1: PUSH 82H
PUSH 83H
MOV DPTR,#1FFFH
MOVX @DPTR,A
POP 83H
POP 82H
INC DPTR
PUSH 82H
PUSH 83H
RET
DATAKEY2: DEC R1
MOV A,R1
SJMP DATAKEY1
DISP: SETB 0D4H
MOV R1,#7EH
MOV R2,#20H
MOV R3,#00H
DISP1:
MOV DPTR,#DATACO
MOV A,@R1
MOVC A,@A+DPTR
MOV DPTR,#0FF22H
MOVX @DPTR,A
MOV DPTR,#0FF21H
MOV A,R2
MOVX @DPTR,A
LCALL DELAY
DEC R1
CLR C
MOV A,R2
RRC A
MOV R2,A
JNZ DISP1
CLR 0D4H
RET
DELAY: MOV R7,#03H
DELAY0: MOV R6,#0FFH
DELAY1: DJNZ R6,DELAY1
DJNZ R7,DELAY0
RET
DATAC DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB 88H,83H,0C6H,0A1H,86H,8EH,0BFH,0CH,89H,0DEH
END
四、 實驗步驟?
1、準備2臺DVCC系列實驗儀,確定1號為發(fā)送,2號為接收。?
2、將1號RXD插孔和2號的TXD插孔相連。?
3、將1號TXD插孔和2號的RXD插孔相連。?
4、將1號GND插孔和2號的GND插孔相連(共地)。?
5、將8253CS插孔和Y4插孔相連,8251CS和Y5插孔相連。?
6、將SIO區(qū)D0—D7和BUS2區(qū) XD0—XD7相連。?
7、先運行2號機,在2號機提示符“P.....”狀態(tài)下,輸入0D00后,再按EXEC鍵進入等待接收狀態(tài),顯示器顯示“8251—2”。
8、再運行1號機,在1號機處于提示符“P.....”狀態(tài)下,輸入0E00H后,按EXEC鍵,進入串行發(fā)送狀態(tài)。顯示器顯示“8251—1”。
9、在1號機的鍵盤上輸入數(shù)字鍵,應在2號機顯示器上顯示對應數(shù)字值。?
10、輸入數(shù)字鍵后再按MON鍵,1號機顯示“8251 good”。如果不輸入數(shù)字鍵直接按MON鍵,則顯示“Err”,如果雙機通信不能正常進行,也顯示“Err”。