單片機(jī)的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)
當(dāng)LCR.7=0,且A2A1A0=000時(shí),讀操作單片機(jī)訪問(wèn)接收緩沖寄存器(RHR),寫(xiě)操作單片機(jī)訪問(wèn)發(fā)送保持寄存器(THR)。
(3) 中斷允許寄存器(interrupt enable register)
當(dāng)LCR.7=0,且A2A1A0=001時(shí),單片機(jī)訪問(wèn)中斷允許寄存器(IER)。
豹IER.0=1,允許接收器數(shù)據(jù)就緒中斷。
豹IER.1=1,允許發(fā)送保持寄存器為空時(shí)中斷。即當(dāng)從發(fā)送保持寄存器把一個(gè)字節(jié)移到移位寄存器時(shí),產(chǎn)生一個(gè)中斷,使發(fā)送保持寄存器能夠接收下一個(gè)字節(jié)。
豹IER.2=1,表示允許接收有錯(cuò)信息或間斷條件中斷。
豹IER.3=1,MODEM狀態(tài)變化中斷。
豹IER.4~7,沒(méi)有使用,設(shè)置為零。
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可供選擇。我的舉例采用默認(rèn)的DMA的模式0。感興趣的朋友可試一試其它模式,這里不再說(shuō)明。
(5) 中斷狀態(tài)寄存器(interrupt status register)
前面介紹了幾種中斷,它們?cè)诟髯缘臈l件下產(chǎn)生中斷,UART都會(huì)輸出一個(gè)高電平的中斷請(qǐng)求信號(hào),觸發(fā)同一個(gè)中斷請(qǐng)求。為了具體判斷是哪一種中斷,還應(yīng)該檢測(cè)ISR,如表3所列。
表3 中斷狀態(tài)寄存器
評(píng)論