UART串行擴展接口應用實例
UART(Universal Asynchronous Receiver/Transmitter):通用異步收發器,既能同步又能異步通信的硬件電路稱為UART。UART是用于控制計算機與串行設備的芯片,它提供了RS-232C數據終端設備接口,這樣計算機就可以和調制解調器或其他使用RS-232C接口的串行設備通信了。
80C51的串行通信口是一個功能強大的通信口,而且是相當好用的通信口。用于顯示驅動電路非常合適,下面我們就根據這種需要用兩個串行通信口線加上兩根普通I/O口線,設計一個4位 LED顯示電路。當然只要再加上兩根 I/O口線即可輕易實現8位LED顯示電路。
例1:如圖1所示的電原理圖,利用74LS164串行輸入并行輸出芯片作一個簡單的電子鐘,要求四個數碼管顯示時鐘;其中LED1顯示小時的十位,LED2顯示小時的個位,LED3顯示分鐘的十位,LED4顯示分鐘的個位。

圖1 串行動態LED掃描電路
解:采用單片機的串行口輸出字形碼,用74LS164和74LS139作為擴展芯片。
74LS164的功能是將80C51串行通信口輸出的串行數據譯碼并在其并口線上輸出,從而驅動LED 數碼管。74LS139是一個雙2-4線譯碼器,它將單片機輸出的地址信號譯碼后動態驅動相應的LED。因74LS139電流驅動能力較小,故用末級驅動三極管9013作為地址驅動。將4只LED的字段位都連在一起,它們的公共端則由74LS139分時選通,這樣任何一個時刻,都只有一位LED在點亮,也即動態掃描顯示方式,其優點使用串行口進行LED通信程序編寫相當簡單,用戶只需將需顯示的數據直接送串口發送緩沖器,等待串行發送完畢標志位即可。
參考程序如下:

上面是一個簡單的動態掃描程序,如果再利用上第6章的定時器就可做成一個完整的電子鐘,四個數碼管顯示為00:00這種形式。在本例中冒號就不顯示出來了,分別用20H、21H 、22H、23H地址在放時間的時鐘的十位、時鐘的個位、分鐘的十位、分鐘的個位。用中斷方式做一個不帶時鐘芯片的電子鐘,請讀者自己完成。

編輯:admin 最后修改時間:2018-05-08


