![]() |
5 接口設(shè)計(jì)
5.1 硬件設(shè)計(jì)
PS7219的SPI接口是一個(gè)高速的同步串行I/O口,它允許1~8位的串行比特流以特定的傳輸速率移進(jìn)移出芯片。但這要求微處理器帶有SPI接口能力。對不帶SPI或相同接口能力的微處理器,需用軟件合成SPI操作來和PS7219接口,這里筆者以目前應(yīng)用廣泛的AT89C51為例,進(jìn)行了電路設(shè)計(jì),接口電路圖見圖4所示。
這里,89C51的P1.6作串行數(shù)據(jù)輸出,連接到PS7219的DIN腳,P1.7和P1.5通過程序分別模擬PS7219的時(shí)鐘脈沖CLK及數(shù)據(jù)加載LOAD信號。PS7219的SA~SG、SDP端連接到各LED數(shù)碼管對應(yīng)的a~f及dp端,DIG0~DIG3分別接4位LED數(shù)碼管的共陰極,以實(shí)現(xiàn)位選。另外,選用XICOR公
司的X25045作為看門狗監(jiān)控電路。
實(shí)際上,數(shù)碼管的位數(shù)可在1~8位之間任意選擇,這可由寫入的掃描界線寄存器的命令字決定。注意,為了使由峰值數(shù)字驅(qū)動(dòng)器電流引起的紋波減到最小,需要在V+和GND之間盡可能靠近芯片的地方外接一個(gè)10μF的電解電容和一個(gè)0.1μF的瓷片電容。PS7219應(yīng)放在緊靠LED顯示器的地方,且連線盡可能短,兩個(gè)GND引腳都必須連接到地線上。
PS7219只需一組+5V電源和89C51的三個(gè)輸出口,且無附加電路,可驅(qū)動(dòng)1~8個(gè)LED顯示器,顯示亮度可調(diào),工作可靠。
![]() |
5.2 軟件編程
在89C51的程序存儲器區(qū)開辟一些存儲單元,專門用來定義控制命令字,這些命令字的具體數(shù)值根據(jù)你要選擇的工作方式、顯示內(nèi)容、顯示位數(shù)等等來定義。
由于PS7219的控制寄存器和顯示寄存器均獨(dú)立編址,顯示程序?qū)嶋H上就是89C51在P1.7(CLK),P1.5(LOAD)時(shí)序的配合下不斷通過P1.6(DIN)向PS7219的相應(yīng)控制寄存器和數(shù)據(jù)顯示寄存器寫入16位二進(jìn)制數(shù)據(jù)包的過程。所以問題的關(guān)鍵在于編寫一個(gè)通用的寫入子程序,將VWO的內(nèi)容從高位到低位在P1.7(CLK)的作用下依次移入移位寄存器,最后由P1.5的上升沿(LOAD信號)鎖存到相應(yīng)的內(nèi)部控制寄存器和數(shù)據(jù)顯示寄存器中去。寫入子程序的程序流程圖如圖5所示。
無論初始化PS7219的控制寄存器,還是在相應(yīng)的數(shù)碼管顯示數(shù)字,均可通過調(diào)用上述通用寫入子程序完成。
![]() |








