基于AT89C2051串口的LED數碼管顯示電路
圖2(b)是通過串口擴展的并行輸入接口。同樣RXD作為數據輸入線,TXD作為移位時鐘脈沖。每一個時鐘信號的上升沿加到74LS165的CP端時,移位寄存器就將內部的數據向外移一位,通過Q7輸出。8個時鐘脈沖過后,并行輸入的8位二進制數全部移出,通過Q7串行輸入。
基于串口的LED數碼管靜態(tài)顯示電路本文引用地址:http://cafeforensic.com/article/169366.htm
在串口擴展中最常用的就是基于串口的LED數碼管顯示電路。在單片機應用系統(tǒng)中,LED數碼管的顯示常用兩種方法:靜態(tài)顯示和動態(tài)掃描顯示。所謂靜態(tài)顯示,就是每一個顯示器都要占用單獨的具有鎖存功能的I/O接口用于筆劃段字形代碼。這樣單片機只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數據時,再發(fā)送新的字形碼,因此,使用這種方法單片機中CPU的開銷小??梢蕴峁﹩为氭i存的I/O接口電路很多,常用的就是通過串口外接串并轉換器74LS164,擴展并行的I/O口。需要幾個數碼管就擴展幾個并行接口,數碼管直接接在74LS164的輸出腳上,單片機通過串口將要顯示數據的字形碼逐一的串行移出至74LS164的輸出腳上數碼管就可以顯示相應的數字。
如圖3所示:
1. 硬件設計
單片機AT89C2051的串口外接1片74LS164作為LED顯示器的靜態(tài)顯示接口,把AT89C2051的RXD作為數據輸出線,TXD作為移位時鐘脈沖。Q0-Q7(第3―6和10―13引腳)并行輸出端分別接LED顯示器的DP---A各段對應的引腳上。圖中采用的是共陰極數碼管,因而各數碼管的公共極接電源GND,要顯示某字段則相應的移位寄存器74LS164的輸出線必須是高電平。P1口接8個按鍵,分別編號為KEY1--KEY8。當某個按鍵按下時。某個數就顯示在數碼管上。
2. 軟件設計
軟件設計流程圖如圖4所示。圖(a)為主程序流程圖,圖(b)為顯示子程序流程圖。
開機時,初始化數碼管,通過串口將“0”的字形碼輸出使數碼管顯示“O”。然后判斷P1口是否有鍵按下,如果沒鍵按下繼續(xù)判斷。
當確認有鍵按下后單片機將P1口的值賦給累加器A,由于按鍵沒被按下時是低電平,被按下后為高電平因此判斷A中哪一位為高電平就能得出哪個按鍵被按下。將此按鍵的編號讀入顯示緩沖區(qū)65H中,然后調用顯示子程序將按鍵編碼顯示在數碼管上。這樣程序就完成了一次的執(zhí)行過程。
DIY機械鍵盤相關社區(qū):機械鍵盤DIY
評論