74LS164是8位串入,并出移位寄存器,工作時,在移位時鐘CLK的作用下,串行口送入的數(shù)據(jù)一位一位地移入。用單片機的P1.6口輸出移位脈沖,用P1.5口輸出串行數(shù)據(jù),同樣可以驅動74LS164工作。如圖2-4所示,74LS164的清零端CLR由單片機P1.7控制。
單片機I/O端口驅動74LS164主要包括函數(shù)聲明管腳定義部分、數(shù)據(jù)輸入函數(shù)以及數(shù)據(jù)輸出函數(shù)。
(1)函數(shù)聲明管腳定義。
函數(shù)聲明管腳定義部分主要完成程序所涉及的庫函數(shù)的聲明及有關引腳的定義,一般置于程序的開頭部分,代碼如下:
(2)數(shù)據(jù)輸入函數(shù)out_simuseri0。
數(shù)據(jù)輸入函數(shù)out_simuseri()將8位數(shù)據(jù)的從低位到高位的逐位輸入simuseri_DATA當中,程序代碼如下所示:
(3)數(shù)據(jù)輸出函數(shù)PA_out()。
數(shù)據(jù)輸出函數(shù)PA_out()實現(xiàn)數(shù)據(jù)的并行輸出,程序代碼如下: