UART串行擴(kuò)展接口應(yīng)用實例
UART(Universal Asynchronous Receiver/Transmitter):通用異步收發(fā)器,既能同步又能異步通信的硬件電路稱為UART。UART是用于控制計算機與串行設(shè)備的芯片,它提供了RS-232C數(shù)據(jù)終端設(shè)備接口,這樣計算機就可以和調(diào)制解調(diào)器或其他使用RS-232C接口的串行設(shè)備通信了。
80C51的串行通信口是一個功能強大的通信口,而且是相當(dāng)好用的通信口。用于顯示驅(qū)動電路非常合適,下面我們就根據(jù)這種需要用兩個串行通信口線加上兩根普通I/O口線,設(shè)計一個4位 LED顯示電路。當(dāng)然只要再加上兩根 I/O口線即可輕易實現(xiàn)8位LED顯示電路。
例1:如圖1所示的電原理圖,利用74LS164串行輸入并行輸出芯片作一個簡單的電子鐘,要求四個數(shù)碼管顯示時鐘;其中LED1顯示小時的十位,LED2顯示小時的個位,LED3顯示分鐘的十位,LED4顯示分鐘的個位。
圖1 串行動態(tài)LED掃描電路
解:采用單片機的串行口輸出字形碼,用74LS164和74LS139作為擴(kuò)展芯片。
74LS164的功能是將80C51串行通信口輸出的串行數(shù)據(jù)譯碼并在其并口線上輸出,從而驅(qū)動LED 數(shù)碼管。74LS139是一個雙2-4線譯碼器,它將單片機輸出的地址信號譯碼后動態(tài)驅(qū)動相應(yīng)的LED。因74LS139電流驅(qū)動能力較小,故用末級驅(qū)動三極管9013作為地址驅(qū)動。將4只LED的字段位都連在一起,它們的公共端則由74LS139分時選通,這樣任何一個時刻,都只有一位LED在點亮,也即動態(tài)掃描顯示方式,其優(yōu)點使用串行口進(jìn)行LED通信程序編寫相當(dāng)簡單,用戶只需將需顯示的數(shù)據(jù)直接送串口發(fā)送緩沖器,等待串行發(fā)送完畢標(biāo)志位即可。
參考程序如下:
上面是一個簡單的動態(tài)掃描程序,如果再利用上第6章的定時器就可做成一個完整的電子鐘,四個數(shù)碼管顯示為00:00這種形式。在本例中冒號就不顯示出來了,分別用20H、21H 、22H、23H地址在放時間的時鐘的十位、時鐘的個位、分鐘的十位、分鐘的個位。用中斷方式做一個不帶時鐘芯片的電子鐘,請讀者自己完成。
編輯:admin 最后修改時間:2018-05-08