串行口動態掃描顯示電路編程實例
單片機并行I/O口數量總是有限的,有時并行口需作其他更重要的用途,一般也不會用數量眾多的并行I/O口專門用來驅動顯示電路,能否用80C51的串行通信口加上少量I/O及擴展芯片用于顯示電路呢?答案是肯定的。
80C51的串行通信口是一個功能強大的通信口,而且是相當好用的通信口,用于顯示驅動電路再合適不過了,下面就根據這種需要設計一個用兩個串行通信口線加上兩根普通I/O口,設計一個4位LED顯示電路。當然只要再加上兩根I/O口線即可輕易實現8位LED的顯示電路。
圖4 串行動態LED掃描電路
圖4中采用C2051單片機,同時用廉價易得的74LS164和74LS138作為擴展芯片。74LS164是一個8位串入并出的移位寄存器,其此處的功能是將C2051串行通信口輸出的串行數據譯碼并在其并口線上輸出,從而驅動LED數碼管。74LS138是一個3-8譯碼器,它將單片機輸出的地址信號譯碼后動態驅動相應的LED。但74LS138電流驅動能力較小,為此,電路使用了未級驅動三極管2SA1015作為地址驅動。
將4只LED的段位都連在一起,它們的公共端則由74LS138分時選通,這樣任何一個時刻,都只有一位LED在點亮,也即動態掃描顯示方式。使用串行口進行LED通信,程序編寫相當簡單,用戶只需將需顯示的數據直接送串口發送緩沖器,等待串行中斷即可,看看下面的程序。 · 程序清單
DIY機械鍵盤相關社區:機械鍵盤DIY
評論