單片機的MODEM通訊
MOV DPTR,#LCR ;除數(shù)鎖定允許
MOV A,#80H
MOVX @DPTR, A
MOV DPTR,#LSB ;波特率為9600baud
MOV A,#0CH
MOVX @DPTR, A
INC DPTR
CLR A
MOVX @DPTR, A
圖 1為GM16C550與RS232接線圖。
圖1 GM16C550與RS232接線圖
(2) 接收緩沖寄存器和發(fā)送保持寄存器(transmit and receive holding register)
當LCR.7=0,且A2A1A0=000時,讀操作單片機訪問接收緩沖寄存器(RHR),寫操作單片機訪問發(fā)送保持寄存器(THR)。
(3) 中斷允許寄存器(interrupt enable register)
當LCR.7=0,且A2A1A0=001時,單片機訪問中斷允許寄存器(IER)。
豹IER.0=1,允許接收器數(shù)據(jù)就緒中斷。
豹IER.1=1,允許發(fā)送保持寄存器為空時中斷。即當從發(fā)送保持寄存器把一個字節(jié)移到移位寄存器時,產(chǎn)生一個中斷,使發(fā)送保持寄存器能夠接收下一個字節(jié)。
豹IER.2=1,表示允許接收有錯信息或間斷條件中斷。
豹IER.3=1,MODEM狀態(tài)變化中斷。
豹IER.4~7,沒有使用,設置為零。
MOV DPTR,#IER
MOV A,#01H
MOVX @DPTR,A
(4) FIFO控制寄存器(FIFO control register)
數(shù)據(jù)發(fā)送和接收模式的選擇。GM16C550提供了兩種模式:FIFO和DMA。其中DMA又有兩種模式DMA的模式0、DMA的模式1可供選擇。我的舉例采用默認的DMA的模式0。感興趣的朋友可試一試其它模式,這里不再說明。
(5) 中斷狀態(tài)寄存器(interrupt status register)
前面介紹了幾種中斷,它們在各自的條件下產(chǎn)生中斷,UART都會輸出一個高電平的中斷請求信號,觸發(fā)同一個中斷請求。為了具體判斷是哪一種中斷,還應該檢測ISR,如表3所列。
表3 中斷狀態(tài)寄存器
評論