<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費電子 > 設(shè)計應(yīng)用 > 串行顯示驅(qū)動器PS7219及單片機(jī)的SPI接口設(shè)計

          串行顯示驅(qū)動器PS7219及單片機(jī)的SPI接口設(shè)計

          ——
          作者:吳 蓓潘天紅 時間:2007-01-26 來源:《EDN電子設(shè)計技術(shù)》 收藏

          0 引 言

          本文引用地址:http://www.ex-cimer.com/article/21057.htm

          在單片機(jī)的應(yīng)用系統(tǒng)中,為了便于人們觀察和監(jiān)視單片機(jī)的運行情況,常常需要用顯示器顯示運行的中間結(jié)果及狀態(tài)等等。因此顯示器往往是單片機(jī)系統(tǒng)必不可少的外部設(shè)備之一。常用的顯示器有很多種,其中l(wèi)ed(發(fā)光二極管顯示器)是應(yīng)用較多的一種,它特別適用于強(qiáng)光和光線極弱的場合。

          要使led顯示,必須提供段選碼和位選碼。傳統(tǒng)的硬件譯碼顯示接口廣泛采用由中央處理器cpu(如:intel 8031)擴(kuò)展i/o口(如:8255),然后再使用邏輯門驅(qū)動芯片(如7407等)驅(qū)動相應(yīng)的位碼和段碼。這種設(shè)計,芯片間連線十分復(fù)雜,系統(tǒng)工作可靠性不高,已越來越不適應(yīng)單片機(jī)系統(tǒng)集成化、小型化的發(fā)展要求。特別是系統(tǒng)并行擴(kuò)展i/o,其缺點十分明顯:

          (1)連線太多,系統(tǒng)連線復(fù)雜,印制板布線不方便;

          (2)并行總線上掛靠的器件太多,系統(tǒng)工作的穩(wěn)定性和可靠性低;

          (3)體積較大,集成度不高。

          正是由于上述原因,近年來,各廠家相繼開發(fā)出了集成度較高、驅(qū)動能力較強(qiáng)、驅(qū)動位數(shù)較多、功能齊全的led顯示驅(qū)動器。

          本文介紹一種低價位、高性能的多位led顯示驅(qū)動器ps7219芯片,以及它與單片機(jī)89c51具體的spi接口設(shè)計與應(yīng)用軟件。

          1 ps7219簡介

          ps7219是一種新型的串行接口的8位數(shù)字靜態(tài)顯示芯片。它是由武漢力源公司新推出的24腳
          雙列直插式芯片,采用流行的同步串行外設(shè)接口(spi),可與任何一種單片機(jī)方便接口,并可同時驅(qū)動8位led(或64只獨立led),其引腳圖如圖1所示。

          ps7219內(nèi)部具有15×8ram功能控制寄存器,可方便選址,對每位數(shù)字可單獨控制、刷新、不需重寫整個顯示器。顯示數(shù)字亮度可由數(shù)字進(jìn)行控制,每位具有閃爍使能控制位。當(dāng)引腳con(13腳)置高電平,可禁止所有顯示,達(dá)到降低功耗的效果,但同時并不影響對控制寄存器的修改。ps7219還有一個掉電模式、一個允許用戶從1位數(shù)顯示到8位數(shù)顯示選擇的掃描界限寄存器和一個強(qiáng)迫所有l(wèi)ed接通的測試模式。另外,ps7219a型內(nèi)置一個可靠的up監(jiān)控電路,可為外部提供一個脈寬140ms,觸發(fā)門限典型值為4.63v的高電平復(fù)位信號。

          如果n個ps7219級聯(lián),可實現(xiàn)n×8位led顯示。

          2 ps7219引腳功能

          ps7219引腳功能如表1所示。

          3 ps7219工作過程

          圖2為ps7219工作時序圖。由圖2可行,din是串行數(shù)據(jù)輸入端,在clk的上升沿,一位數(shù)據(jù)被加載到內(nèi)部16位移位寄存器中,clk端最高輸入頻率可達(dá)500khz,在輸入時鐘信號的每個上升沿,均有1位數(shù)據(jù)由din移入到內(nèi)部寄存器中,load用來裝載數(shù)據(jù),在load的上升沿,16位串行輸入數(shù)據(jù)被鎖存到數(shù)字或控制寄存器中。load必須在第16個時鐘上升沿的同時或之后,在下一個時鐘上升沿之前變高,否則數(shù)據(jù)將會丟失。

          規(guī)定一組數(shù)據(jù)為16位二進(jìn)制數(shù)據(jù)包,其格式如下:

          其中d15~d12位不用,d11~d8為內(nèi)部5個控制寄存器和8個led顯示數(shù)據(jù)寄存器的地址,地址編碼如表2。d7~d0為5個控制寄存器命令字或8個led數(shù)碼管待顯示的數(shù)據(jù)。因為控制寄存器與顯示數(shù)據(jù)寄存器均獨立編址,所以可以通過程序單獨對每個寄存器進(jìn)行操作。一般情況下,程序先送控制命令,后向顯示寄存器送數(shù)據(jù),但必須注意,每16位為一組,從高位地址節(jié)最高位開始送起,直到低位數(shù)據(jù)字最后一位為止。

          ps7219按5個控制寄存器規(guī)定的方向?qū)Υ@示的數(shù)字自動掃描顯示,所以有必要對各控制寄存器的功能有所了解,現(xiàn)分述如下:

          (1)譯碼方式寄存器:對每個數(shù)字設(shè)置bcd碼b(0~9、e、h、l、p和-)或非代碼操作。寄存器中的每一位與一個數(shù)字對應(yīng)。邏輯高電平選擇代碼bcd譯碼,而低電平選擇旁路譯碼器。

          (2)顯示亮度寄存器:其中d7~d4位可任意,而d3~d0可選擇0000~1111。d3~d0的值越大,led顯示器越亮。

          (3)掃描范圍寄存器:其掃描范圍寄存器設(shè)置所顯示數(shù)據(jù)的多少,可從1至8。它們一般以掃描速率1.5khz、8位數(shù)據(jù)、多路復(fù)用方式顯示。

          (4)掉電控制寄存器:其中d7~d1位可任意,d0=0,關(guān)閉所有顯示器;d0=1,允許顯示。

          (5)顯示測試寄存器:其中d7~d1位可任意;d0=00,led處于正常工作狀態(tài);d0=1,允許顯示。led處于顯示測試狀態(tài)。

          在送完控制字后,可根據(jù)實際需要調(diào)用顯示子程序,改變1~8個數(shù)據(jù)寄存器的內(nèi)容,完成顯示功能。

          4 spi接口

          spi是同步串行外設(shè)接口,主要用于與各種外圍器件以串行方式進(jìn)行通訊、交換信息。這些外圍器件可以是簡單的ttl移位寄存器、或是復(fù)雜的lcd顯示驅(qū)動器或a/d轉(zhuǎn)換子系統(tǒng)。spi接口很容易與許多廠家的各種外圍器件直接相連。

          它使用4條線:串行時鐘線(sck)、主機(jī)輸入/從機(jī)輸出線(miso)、主機(jī)輸出/從機(jī)輸入線(mosi)、低電平有效的使能信號線(cs———)。如圖3所示。這樣,僅需3-4根數(shù)據(jù)線和控制線即可擴(kuò)展具有spi接口的各種i/o器件。其典型結(jié)構(gòu)如圖3。

          5 接口設(shè)計

          5.1 硬件設(shè)計

          ps7219的spi接口是一個高速的同步串行i/o口,它允許1~8位的串行比特流以特定的傳輸速率移進(jìn)移出芯片。但這要求微處理器帶有spi接口能力。對不帶spi或相同接口能力的微處理器,需用軟件合成spi操作來和ps7219接口,這里筆者以目前應(yīng)用廣泛的at89c51為例,進(jìn)行了電路設(shè)計,接口電路圖見圖4所示。

          這里,89c51的p1.6作串行數(shù)據(jù)輸出,連接到ps7219的din腳,p1.7和p1.5通過程序分別模擬ps7219的時鐘脈沖clk及數(shù)據(jù)加載load信號。ps7219的sa~sg、sdp端連接到各led數(shù)碼管對應(yīng)的a~f及dp端,dig0~dig3分別接4位led數(shù)碼管的共陰極,以實現(xiàn)位選。另外,選用xicor公
          司的x25045作為看門狗監(jiān)控電路。

          實際上,數(shù)碼管的位數(shù)可在1~8位之間任意選擇,這可由寫入的掃描界線寄存器的命令字決定。注意,為了使由峰值數(shù)字驅(qū)動器電流引起的紋波減到最小,需要在v+和gnd之間盡可能靠近芯片的地方外接一個10μf的電解電容和一個0.1μf的瓷片電容。ps7219應(yīng)放在緊靠led顯示器的地方,且連線盡可能短,兩個gnd引腳都必須連接到地線上。

          ps7219只需一組+5v電源和89c51的三個輸出口,且無附加電路,可驅(qū)動1~8個led顯示器,顯示亮度可調(diào),工作可靠。

          5.2 軟件編程

          在89c51的程序存儲器區(qū)開辟一些存儲單元,專門用來定義控制命令字,這些命令字的具體數(shù)值根據(jù)你要選擇的工作方式、顯示內(nèi)容、顯示位數(shù)等等來定義。

          由于ps7219的控制寄存器和顯示寄存器均獨立編址,顯示程序?qū)嶋H上就是89c51在p1.7(clk),p1.5(load)時序的配合下不斷通過p1.6(din)向ps7219的相應(yīng)控制寄存器和數(shù)據(jù)顯示寄存器寫入16位二進(jìn)制數(shù)據(jù)包的過程。所以問題的關(guān)鍵在于編寫一個通用的寫入子程序,將vwo的內(nèi)容從高位到低位在p1.7(clk)的作用下依次移入移位寄存器,最后由p1.5的上升沿(load信號)鎖存到相應(yīng)的內(nèi)部控制寄存器和數(shù)據(jù)顯示寄存器中去。寫入子程序的程序流程圖如圖5所示。

          無論初始化ps7219的控制寄存器,還是在相應(yīng)的數(shù)碼管顯示數(shù)字,均可通過調(diào)用上述通用寫入子程序完成。



          關(guān)鍵詞:

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();