用單片機(jī)的串口驅(qū)動(dòng)74LS165
串行口是單片機(jī)與外界進(jìn)行信息交換的工具, 利用單片機(jī)串口實(shí)現(xiàn)輸入移位寄存器,只需用軟件置REN=1(同時(shí)RI=0),即開始接收。數(shù)據(jù)字節(jié)在移位時(shí)鐘脈沖的配合下,從低位至高位一位一位地接收下來(lái)并裝入SBUF中,在啟動(dòng)接收過程(即寫SCON,清RI位)開始后的第8個(gè)機(jī)器周期RI被置位。這一數(shù)據(jù)幀接收完畢,可進(jìn)行下一幀的接收。
在模式0下,數(shù)據(jù)傳輸速率為fosc/12,fosc是時(shí)鐘頻率。時(shí)鐘頻率為12MHz時(shí)串行數(shù)據(jù)傳輸速率為lMbit/s,速度較快,故程序中對(duì)接收過程采取查詢等待方式。如果有必要,應(yīng)該用中斷控制方式以提高程序速率。
需要特別注意,在工作模式0下,必須將SCON的SM2位清零。
單片機(jī)串口驅(qū)動(dòng)74LS165的程序主要包括函數(shù)聲明管腳定義部分、串口初始化函數(shù)以及數(shù)據(jù)接收函數(shù)。
(1)函數(shù)聲明管腳定義。
函數(shù)聲明管腳定義部分主要完成程序所涉及的庫(kù)函數(shù)的聲明及有關(guān)引腳的定義,一般置于程序的開頭部分,代碼如下:
(2)串口初始化函數(shù)UARTjnit()。
串口初始化函數(shù)UARTjnit()實(shí)現(xiàn)串口的初始化,包括工作方式選擇和中斷的開禁等功能,程序代碼如下:
(3)數(shù)據(jù)接收函數(shù)PA()。
數(shù)據(jù)接收函數(shù)PA()完成8位串行數(shù)據(jù)的接收,代碼如下: