I/O接口的功能是負(fù)責(zé)實現(xiàn)CPU通過系統(tǒng)總線把I/O電路和外圍設(shè)備聯(lián)系在一起,按照電路和設(shè)備的復(fù)雜程度,I/O接口的硬件主要分為兩大類:
?。?)I/O接口芯片
這些芯片大都是集成電路,通過CPU輸入不同的命令和參數(shù),并控制相關(guān)的I/O電路和簡單的外設(shè)作相應(yīng)的操作,常見的接口芯片如定時/計數(shù)器、中斷控制器、DMA控制器、并行接口等。
?。?)I/O接口控制卡
有若干個集成電路按一定的邏輯組成為一個部件,或者直接與CPU同在主板上,或是一個插件插在系統(tǒng)總線插槽上。
按照接口的連接對象來分,又可以將他們分為串行接口、并行接口、鍵盤接口和磁盤接口等。
用I/O模擬移位寄存器的時序驅(qū)動74LS165,實現(xiàn)并行數(shù)據(jù)的輸入。如下圖所示,P1.5被用于串行數(shù)據(jù)輸入,P1.6用于移位時鐘輸出,P1.7用來控制74LS165的工作狀態(tài)。
單片機I/O端口驅(qū)動74LS165主要包括函數(shù)聲明管腳定義部分、數(shù)據(jù)輸入函數(shù)以及數(shù)據(jù)輸出函數(shù)。
(1)函數(shù)聲明管腳定義。
函數(shù)聲明管腳定義部分主要完成程序所涉及的庫函數(shù)的聲明及有關(guān)引腳的定義,一般置于程序的開頭部分,代碼如下:
(2)數(shù)據(jù)輸入函數(shù)in_simuseri()。
數(shù)據(jù)輸入函數(shù)in_simuseri()實現(xiàn)8位數(shù)據(jù)的從低位到高位的串行輸入,程序代碼如下所示:
(3)數(shù)據(jù)輸出函數(shù)PAs()。
數(shù)據(jù)輸出函數(shù)PAs()實現(xiàn)數(shù)據(jù)的并行輸出,程序代碼如下: