Presentation is loading. Please wait.

Presentation is loading. Please wait.

5-13 串列通訊實習.

Similar presentations


Presentation on theme: "5-13 串列通訊實習."— Presentation transcript:

1 5-13 串列通訊實習

2 Program function 範例程式:
Program 5_13_1:利用兩部 MTS-51,使用 UART 之模式一通信,將鍵盤所接的按鍵值,呈現在對方的 DS4 七段顯示器上。 自我練習: Program 5_13_1_1: 請改用 UART 模式二,完成本學習單元的功能。 Program 5_13_1_2: 請改用 UART 模式三,完成本學習單元的功能。 Program 5_13_1_3: 參考 節的功能與程式,利用兩部MTS-51來做通信,將鍵盤所接的按鍵值呈現在對方的 LCM 上。 Program 5_13_1_4: 準備兩部 MTS-51 Trainer,命名為Trainer1 與 Trainer2。利用 Trainer1 的鍵盤,來控制 Trainer2 上的步進馬達旋轉圈數,而 Trainer2 的鍵盤之按鍵值則在Trainer1 上的LCM 呈現出來 。

3 兩部8051的通訊 一、功能說明 利用兩部 MTS-51,使用 UART 之模式一通信,將鍵盤所接的按鍵值,呈現在對方的 DS4 七段顯示器上。

4 Program I5_13_1 .SYMBOLS ON ORG 000H JMP MAIN ORG 003H JMP INT0
JMP SERINT ORG 100H MAIN: MOV P1,#0FFH MOV P2,#00H MOV SCON,# B ANL PCON,# B MOV TMOD,# B MOV TH1,#0FDH SETB TR1 MOV IE,# B SETB IT0 MOV IP,# B JMP $ ; SM0/1=0/1, REN=1, TI=RI= <p.50> ; SMOD  <p.52, 66> ; M1/0  1/ <p.40, 66> ; 0FDH: baud rate = <p.44, 66> ; starts counter <p.41> ; ES  1 (to enable serial ports), EX0  1 <p.74> ; INT0 uses level trigger <p.73, 41> ; PX0  1 :  int0 has high priority <p.74> ; Wait for INT0, TI, RI.

5 Program 5_13_1 (cont.) ;==============================
; Service routine for 按鍵端 INT0: CLR EA MOV A,P1 ANL A,#0FH MOV SBUF,A ; to transmit to the serial port SETB EA RETI ; Service routine for 顯示端 (RI = 1) & 按鍵端 (TI = 1) SERINT: JBC RI,RECOK ; For receiver. CLR TI ; For transmitter. JMP RETURN RECOK: MOV A,SBUF ; to receive from the serial port MOV P2,A RETURN: END JBC = Jump if Bit Set and Clear Bit (If Bit set, clear Bit and jump)

6

7 5-13 串列通訊實習 第一部, MTS-51 第二部, MTS-51 8051 8051 P2 P2 TXD TXD RXD RXD P1
INT0 第一部, MTS-51 8051 P2 TXD RXD P1 INT0 第二部, MTS-51

8 5-13 串列通訊實習 8051 TXD RXD P1 INT0 MTS-51 8051 TXD RXD P1 INT0 MTS-51

9 Where is JP2? JP2

10 Relation between JP2 and TXD-RXD

11 p.74 1

12 p.75

13 Serial port operation and baud rate
本題Serial port工作在模式1,是8-bit全雙工的串列通訊,其鮑率由軟體透過計時計數器1來控制。 參考P.66之表2-8-1,若要使鮑率為19200 bps,必須SMOD = 0,而且要使計時計數器1 工作在模式2,並設定其 C/T = 0, TH1 = 0FDH。 上述的設定由以下的指令來完成: MOV SCON,# B ; SM0/1=0/1, REN=1, TI=RI= <p.50> ANL PCON,# B ; SMOD  <p.52, 66> MOV TMOD,# B ; M1/0  1/ <p.40, 66> MOV TH1,#0FDH ; 0FDH: baud rate = <p.44, 66> Source: P.56 of the textbook.

14 Baud Rate 設定 Source: P.66 of the textbook.

15 SCON register 0 1 0 1 0 0 0 0 SM2:設定RI=1的時機 SM2:設定 RI=1 的時機 模式 SM2
SM2:設定RI=1的時機 SM2:設定 RI=1 的時機 模式 SM2 SM2 = 0 1 SM2 = 1  UART 接收到正確的停止位元才會令RI = 1 2 & 3 SM2 = 1  UART 接收到第九個資料位元RB8=1才會令RI = 1。 SM2可做多處理器通信之控制。

16 1 SM0 SCON.7 SM1 SCON.6 SM2 SCON.5 REN SCON.4
To enable the serial port receiving REN = 0  UART not receiving REN = 1  UART receiving TB8 SCON.3 9th transmitted bit RB8 SCON.2 9th received bit or the stop bit TI SCON.1 TI = interrupt flag Mode 0: The 8th bit transmitted  TI = 1  Interrupt request to CPU Mode 1, 2, 3: The stop bit transmitted  TI = 1  Interrupt request to CPU RI SCON.0 RI = interrupt flag The 8th bit received  RI = 1  Interrupt request to CPU The stop bit received & SM2 ……. RI = 1  Interrupt request to CPU 1

17 PCON register AND 0 1 1 1 1 1 1 1 SMOD PCON.7 鮑率倍增 GF1 PCON.3 一般功能旗標
PD PCON.1 電源下降模式控制。 PD = 1  8051 進入功率下降模式 IDL PCON.0 閒置模式控制。 IDL = 1  8051 進入閒置模式

18 TMOD (SFR 89H) 0 0 1 0 0 0 0 0 M1 M0 Mode 13-bit timer 1 16-bit timer
M1 M0 Mode 13-bit timer 1 16-bit timer 8-bit autoload 2 independent 8-bit timer


Download ppt "5-13 串列通訊實習."

Similar presentations


Ads by Google