摘 要:設計了一種實用的單片機系統顯示電路,該電路結構簡單,使用可靠,而且可以大大地降低硬件成本,具有一定的應用價值。
關鍵詞:單片機;顯示電路;可靠性;低成本
顯示電路是智能儀表的重要功能電路之一,為簡化電路、降低成本,通常采用動態顯示方式來實現,使用的集成電路有8279,8155,8255,Max7219等,但這些集成電路存在體積大、價格貴的缺點,若在一些功能不是太復雜的系統中選用這些集成電路是不可取的。隨著智能儀表技術的不斷發展,如何有效地設計低成本、小體積的顯示電路成為電路設計者必須考慮的問題。本文提出了一種實用的低成本多位數碼顯示電路的設計方法。
1 電路的硬件連接和工作原理
圖1所示為單片機系統構成的8位LED動態顯示電路,該電路以AT89C2051單片機為例。電路使用器件少,僅用到了2片中規模集成電路74LS164和74LS138,占用CPU的I/O線少,特別適合于I/O線不是很多的單片機如AT89C2051/1051,97C2051/1051,PIC16Cxx等系統中使用。
74LS164為串-并轉換移位寄存器,數據端A,B(第1,2腳)接單片機RXD引腳,時鐘端CLK接單片機TXD,并行8位數據輸出端分別接8個數碼管的A,B,C,D,E,F,G,H;74LS138為3線~8線譯碼器,譯碼器輸入端A,B,C分別接AT89C2051的P1.0,P1.1,P1.2,譯碼器輸出端Y0~Y7接8個數碼管從低位到高位的共陰極端。
若所用的單片機不是AT89C2051,而選用了其他沒有串行口的單片機如AT89C1051,則74LS164的數據輸入端A,B可連接到P1.3,CLK端可連接到P1.4,這樣設計不會影響系統的功能,僅僅在編寫程序時略有差別。若系統只需至多4位數碼管顯示,則74LS138可用74LS139(2線~4線譯碼器)代替。
電路中,要顯示的數字所對應的字形碼通過串行口送到74LS164,74LS138在同一時刻只有1位輸出端為低電平,其他7位輸出全為高電平,為低電平的對應的數碼管選中,因此作為數碼管顯示時的位選信號。系統在工作時,通過74LS164每次輸出一個字形碼,同時控制74LS138的譯碼器輸入端A,B,C的電平狀態,即從P1.0,P1.1,P1.2送出相應的電平,譯碼后使得要顯示的對應位數碼管共陰極端依次為低電平,即依次選中要顯示的位,完成整個顯示電路的動態掃描,依此掃描8次,完成8位數據的顯示。
2 軟件編寫
以AT89C2051單片機系統構成的8位LED動態顯示電路的顯示子程序流程如圖2所示。
設待顯示的數據放在顯示緩沖區中,顯示緩沖區的地址為70H,71H,…,77H,依次存放從低位到高位待顯示的數據。則顯示子程序清單如下:
編寫該程序時要注意程序中的延時時間的大小,延時過長會造成顯示不連續,延時過短,又會出現閃爍現象,經多次調試在該設計中最佳延時為4 ms。
3 結 語
本顯示電路硬件結構簡單,軟件實現也很容易,而且性能穩定、成本低。經過反復測試,效果很好,在一般的單片機控制系統中都可以使用該顯示電路,具有一定的通用性。因此,本顯示電路具有一定的參考價值。在實際使用中,根據需要,可以在74LS164和74LS138的輸出端增加驅動電路如74LS07等,以增加LED數碼管的亮度。
關鍵詞:單片機;顯示電路;可靠性;低成本
顯示電路是智能儀表的重要功能電路之一,為簡化電路、降低成本,通常采用動態顯示方式來實現,使用的集成電路有8279,8155,8255,Max7219等,但這些集成電路存在體積大、價格貴的缺點,若在一些功能不是太復雜的系統中選用這些集成電路是不可取的。隨著智能儀表技術的不斷發展,如何有效地設計低成本、小體積的顯示電路成為電路設計者必須考慮的問題。本文提出了一種實用的低成本多位數碼顯示電路的設計方法。
1 電路的硬件連接和工作原理
圖1所示為單片機系統構成的8位LED動態顯示電路,該電路以AT89C2051單片機為例。電路使用器件少,僅用到了2片中規模集成電路74LS164和74LS138,占用CPU的I/O線少,特別適合于I/O線不是很多的單片機如AT89C2051/1051,97C2051/1051,PIC16Cxx等系統中使用。
74LS164為串-并轉換移位寄存器,數據端A,B(第1,2腳)接單片機RXD引腳,時鐘端CLK接單片機TXD,并行8位數據輸出端分別接8個數碼管的A,B,C,D,E,F,G,H;74LS138為3線~8線譯碼器,譯碼器輸入端A,B,C分別接AT89C2051的P1.0,P1.1,P1.2,譯碼器輸出端Y0~Y7接8個數碼管從低位到高位的共陰極端。
若所用的單片機不是AT89C2051,而選用了其他沒有串行口的單片機如AT89C1051,則74LS164的數據輸入端A,B可連接到P1.3,CLK端可連接到P1.4,這樣設計不會影響系統的功能,僅僅在編寫程序時略有差別。若系統只需至多4位數碼管顯示,則74LS138可用74LS139(2線~4線譯碼器)代替。
電路中,要顯示的數字所對應的字形碼通過串行口送到74LS164,74LS138在同一時刻只有1位輸出端為低電平,其他7位輸出全為高電平,為低電平的對應的數碼管選中,因此作為數碼管顯示時的位選信號。系統在工作時,通過74LS164每次輸出一個字形碼,同時控制74LS138的譯碼器輸入端A,B,C的電平狀態,即從P1.0,P1.1,P1.2送出相應的電平,譯碼后使得要顯示的對應位數碼管共陰極端依次為低電平,即依次選中要顯示的位,完成整個顯示電路的動態掃描,依此掃描8次,完成8位數據的顯示。
2 軟件編寫
以AT89C2051單片機系統構成的8位LED動態顯示電路的顯示子程序流程如圖2所示。
設待顯示的數據放在顯示緩沖區中,顯示緩沖區的地址為70H,71H,…,77H,依次存放從低位到高位待顯示的數據。則顯示子程序清單如下:
編寫該程序時要注意程序中的延時時間的大小,延時過長會造成顯示不連續,延時過短,又會出現閃爍現象,經多次調試在該設計中最佳延時為4 ms。
3 結 語
本顯示電路硬件結構簡單,軟件實現也很容易,而且性能穩定、成本低。經過反復測試,效果很好,在一般的單片機控制系統中都可以使用該顯示電路,具有一定的通用性。因此,本顯示電路具有一定的參考價值。在實際使用中,根據需要,可以在74LS164和74LS138的輸出端增加驅動電路如74LS07等,以增加LED數碼管的亮度。