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