單片機(jī)串行接口的編程方法和應(yīng)用
在單片機(jī)系統(tǒng)以及現(xiàn)代單片機(jī)測控系統(tǒng)中,廣泛使用了串行通信方式。本文主要學(xué)習(xí)串行接口的編程方法和了解常用的串口通信應(yīng)用。我們首先應(yīng)該掌握串口基礎(chǔ)知識,包括其各個工作方式的特點(diǎn)和接收、發(fā)送邏輯,掌握串口控制寄存器的設(shè)置方法。在此基礎(chǔ)上,通過學(xué)習(xí)本文的示例來了解串口編程的基本方法。一、串口通信的典型應(yīng)用單片機(jī)與PC機(jī)的通信。例如將單片機(jī)測控系統(tǒng)采集的數(shù)據(jù)通過RS-232接口發(fā)送到上位機(jī)。如圖1、2所示。通常需要使用輔助軟件,如圖3串口調(diào)試助手、圖4上位機(jī)通信軟件。
圖1 單片機(jī)串口連接
圖2 單片機(jī)與PC機(jī)通信
圖3 串口調(diào)試助手
圖4 上位機(jī)通信軟件二、串行接口的編程方法舉例
例1:利用串行口工作方式0擴(kuò)展出8位并行I/O口,其中74LS164是串入并出芯片,驅(qū)動共陽LED數(shù)碼管顯示0~9。
解:擴(kuò)展的基本原理如圖5所示
圖5 串口方式0的擴(kuò)展
編碼原理如圖6所示。
圖6 LED編碼原理圖
顯示0-9數(shù)字的子程序如下所示。
DSPLY:MOV DPTR, #TABLE
MOVC A, @A+DPTR
MOV SBUF, A
JNB TI, $
CLR TI
RET
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;0~9的數(shù)字編碼
例2:雙機(jī)通訊。如圖7所示,將兩塊CS-III單片機(jī)實(shí)驗(yàn)板相連接,設(shè)置波特率為9600,連接發(fā)送機(jī)和接收機(jī)的TXD和RXD口,使發(fā)送機(jī)的TXD口連接收機(jī)的RXD口,接收機(jī)的RXD口連發(fā)送機(jī)的TXD口,并且連接兩機(jī)的接地端。
圖7 雙機(jī)通訊示意圖
解:串口通訊應(yīng)用一般需要正確設(shè)置串口的工作方式,計算波特率,完成波特率設(shè)置的初始化和串行口初始化,以及相關(guān)的寄存器設(shè)置。串行通訊的流程圖如圖8所示。
圖8 雙機(jī)通信流程圖
編輯:admin 最后修改時間:2018-05-08