微控制器89C52並行I O口實現多個LED顯示

2021-04-14 19:02:09 字數 1119 閱讀 6050

2006-05-13 22:30:38

摘 要:介紹了一種利用89c52微控制器的乙個並行口實現多個led數碼管顯示的簡單方法,給出了利用此方法設計的多路led顯示系統的硬體電路結構原理圖和軟體程式流程,同時給出了採用mcs-51組合語言編寫的具體程式。

在微控制器應用系統中,普遍使用成本低廉、配置靈活的數碼管(led)做顯示器。常用的為4~8位八段led數碼管顯示器,即需要4~8個led數碼管。實現這種顯示的方法很多,但是,必須採用相應的措施才能實現多個led的顯示。本文介紹了一種設計方法,利用該方法設計的多路led數碼管顯示系統具有硬體裝置簡單,可移植性好,成本低廉的特點,在各種儀表顯示系統中應用效果良好。

1 硬體電路

多位led顯示時,常將所有位的段選線併聯在一起,由乙個8位i/o口控制,而共陰極點或共陽極點分別由另乙個8位i/o口控制;也可採用並行擴充套件口構成顯示電路,通常,需要擴充套件器件管腳的較多,**較高。本文將介紹一種利用微控制器的乙個並行i/o口實現多個led顯示的簡單方法,圖1所示是該電路的硬體原理圖。其中,74ls138是3線-8線解碼器,74ls164是8位並行輸出門控序列輸入移位暫存器,led採用l05f型共陰極數碼管。

顯示時,其顯示資料以序列方式從89c52的p12口輸出送往移位暫存器74ls164的a、b端,然後將變成的並行資料從輸出端q0~q7輸出,以控制開關管wt1~wt8的集電極,然後再將輸出的led段選碼同時送往數碼管led1~led8。位選碼由89c52的p14~p16口輸出並經解碼器74ls138送往開關管y1~y8的基極,以對數碼管led1~led8進行位選控制,這樣,8個數碼管便以100ms的時間間隔輪流顯示。由於人眼的殘留效應,這8個數碼管看上去幾乎是同時顯示。

2 軟體程式設計

該系統的軟體程式設計採用mcs-51系列微控制器組合語言完成,並把顯示程式作為乙個子程式,從而使主程式對其進行方便的呼叫。圖2所示是其流程圖。具體的程式編碼如下:

3 結束語

該設計方法已多次應用於學生微控制器實驗的顯示電路和多種儀器顯示系統中。只要將該顯示程式調入其它主程式中,即可完成顯示功能。經過多次使用證明:該方法可移植性好、實用性強。

參考文獻

1.何立民.mcs-51系列微控制器應用系統計.北京航空航天大學出版社.1999,6

2.孫涵芳,徐愛卿.mcs-51/96系列微控制器原理 及應用.2001,3

89C52微控制器之串列埠

include include define uint unsigned int define uchar unsigned char uchar flag 0 uchar buf 0x55 u void init t1 定時器1 void uart init 串列埠 void uart1 send...

89C52 微控制器LED閃爍(彙編)

org 0000h org是origin的起始位址,在此規定程式的起始位址為0000 start start與main均為使用者自定義標誌符,main為主程式,start為程式起始點 setb p2.0 第二個led暫存器置高電平 lcall del 呼叫子程式,相當於呼叫函式,子程式執行完後則執行...

89C52微控制器 計時器 中斷的使用

1.計時器 因為51微控制器的機器週期計算公式是12 晶振頻率mhz,若晶振為12mhz,則機器週期就是12 12 10 6 1us,也就是說計數器沒1us計數一次。一般來說,12mhz晶振下,16位定時器滿計數是65536次,每次1us,最大就能計時65.536ms,則65536減去多少就是定時多...