單片機(jī)89C52并行I/O口實(shí)現(xiàn)多個(gè)LED顯示
來源:電子工程世界 在單片機(jī)應(yīng)用系統(tǒng)中,普遍使用成本低廉、配置靈活的數(shù)碼管(led)做顯示器。常用的為4~8位八段led數(shù)碼管顯示器,即需要4~8個(gè)led數(shù)碼管。實(shí)現(xiàn)這種顯示的方法很多,但是,必須采用相應(yīng)的措施才能實(shí)現(xiàn)多個(gè)led的顯示。本文介紹了一種設(shè)計(jì)方法,利用該方法設(shè)計(jì)的多路led數(shù)碼管顯示系統(tǒng)具有硬件設(shè)備簡(jiǎn)單,可移植性好,成本低廉的特點(diǎn),在各種儀表顯示系統(tǒng)中應(yīng)用效果良好。 1 硬件電路 多位led顯示時(shí),常將所有位的段選線并聯(lián)在一起,由一個(gè)8位i/o口控制,而共陰極點(diǎn)或共陽極點(diǎn)分別由另一個(gè)8位i/o口控制;也可采用并行擴(kuò)展口構(gòu)成顯示電路,通常,需要擴(kuò)展器件管腳的較多,價(jià)格較高。本文將介紹一種利用單片機(jī)的一個(gè)并行i/o口實(shí)現(xiàn)多個(gè)led顯示的簡(jiǎn)單方法,圖1所示是該電路的硬件原理圖。其中,74ls138是3線-8線譯碼器,74ls164是8位并行輸出門控串行輸入移位寄存器,led采用l05f型共陰極數(shù)碼管。 顯示時(shí),其顯示數(shù)據(jù)以串行方式從89c52的p12口輸出送往移位寄存器74ls164的a、b端,然后將變成的并行數(shù)據(jù)從輸出端q0~q7輸出,以控制開關(guān)管wt1~wt8的集電極,然后再將輸出的led段選碼同時(shí)送往數(shù)碼管led1~led8。位選碼由89c52的p14~p16口輸出并經(jīng)譯碼器74ls138送往開關(guān)管y1~y8的基極,以對(duì)數(shù)碼管led1~led8進(jìn)行位選控制,這樣,8個(gè)數(shù)碼管便以100ms的時(shí)間間隔輪流顯示。由于人眼的殘留效應(yīng),這8個(gè)數(shù)碼管看上去幾乎是同時(shí)顯示。 2 軟件編程 該系統(tǒng)的軟件編程采用mcs-51系列單片機(jī)匯編語言完成,并把顯示程序作為一個(gè)子程序,從而使主程序?qū)ζ溥M(jìn)行方便的調(diào)用。圖2所示是其流程圖。具體的程序編碼如下: 3 結(jié)束語 該設(shè)計(jì)方法已多次應(yīng)用于學(xué)生單片機(jī)實(shí)驗(yàn)的顯示電路和多種儀器顯示系統(tǒng)中。只要將該顯示程序調(diào)入其它主程序中,即可完成顯示功能。經(jīng)過多次使用證明:該方法可移植性好、實(shí)用性強(qiáng)。