|
摘要:介紹利用80c31單片機串行口、廉價的74hc164和74hc244集成塊實現(xiàn)多個led顯示的一種簡單方法,利用該方法設計的多路led顯示系統(tǒng)具有硬件結構簡單、軟件編程容易和價格低廉的特點。 關鍵詞:單片機 串行口 led 顯示 80c31 在單片機系統(tǒng)中,常常用數(shù)碼管(led)做顯示器。一般的顯示器為4位或8位,即需要4個或8個led。實現(xiàn)這種顯示的方法比較多,也比較簡 單。但是,對于多個led顯示,就必須采取必要的措施才能實現(xiàn)。本文介紹一種設計方法,利用該方法設計的多路led顯示系統(tǒng)具有硬件結構 簡單,軟件編程方便,價格低廉的特點,經(jīng)在儲蓄所大屏幕利率顯示屏中應用,效果很好。 1 硬件電路 80c31單片機是mcs-51系列單片機的一種,它廣泛應用于各種小型控制系統(tǒng)中。我們知道,80c31單片機有一個串行口可用于串行通訊,筆者 發(fā)現(xiàn)它在方式0狀態(tài)下,還可以擴展并行i/o口,從而實現(xiàn)多個led顯示,其硬件原理如圖1所示。其中,74hc164為串行輸入、并行輸出移位寄 存器,74hc164為單向總線驅動器,led采用5ef1183kr型共陰極數(shù)碼管。 當80c31單片機復位時,串行口為方式0狀態(tài),即工作在移位寄存器方式,波特率為振蕩頻率的十二分之一。參看圖2,器件執(zhí)行任何一條將 sbuf作為目的寄存器的命令時,數(shù)據(jù)便開始從rxd端發(fā)送。在寫信號有效時,相隔 一個機器周期后發(fā)送控制端send有效,即允許rxd發(fā)送數(shù) 據(jù),同時,允許從txd端輸出移位脈沖。第一幀(8位)數(shù)據(jù)發(fā)送完畢時,各控制信號均恢復原狀態(tài),只有ti保持高電平,呈中斷申請狀態(tài)。 第一個74hc164把第一幀數(shù)據(jù)并行輸出,led1顯示該數(shù)據(jù)(發(fā)送時序如圖2所示)。然后,用軟件將ti清零,發(fā)送第二幀數(shù)據(jù)。第二幀數(shù)據(jù)發(fā) 送完畢,led1顯示第二幀數(shù)據(jù),第一幀數(shù)據(jù)串行輸入給第二個74hc164,led2顯示第一幀數(shù)據(jù)。依此類推,直到把數(shù)據(jù)區(qū)內(nèi)所有數(shù)據(jù)發(fā)送出 去。應該注意,數(shù)據(jù)全部發(fā)送完后,第一幀數(shù)據(jù)在最后一個led顯示。由于txd端最多可以驅動8個ttl門,當led顯示器超過8個時,我們采 用74hc244芯片驅動。每個74hc244有8路驅動,每一路可驅動8個led,即每增加一個74hc244,可增加64個led驅動。 2 軟件編程 該軟件程序采用mcs-51系列單片機匯編語言編制,并把顯示程序作為一個子程序,以便在主程序中調(diào)用。設led為共限極顯示器,共有64個, 顯示區(qū)首地十在內(nèi)部ram 20h單元,需顯示的數(shù)據(jù)以bcd碼依次存放在顯示區(qū),軟件清單如下: 主程序 org 0000h sjmp start org 0020h MOV r6,#40h MOV r0,#20h lcall trxd sjmp $ 顯示子程序 trxd:MOV dptr,#dtab dl0:MOV a,@r0 MOVc a,@a+dptr MOV sbuf,a dl1:jnb ti,dl1 clr ti inc ro djnz r6,dl0 ret dtab:3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
|