74HC595芯片資料和SPI總線簡介_第1頁
74HC595芯片資料和SPI總線簡介_第2頁
74HC595芯片資料和SPI總線簡介_第3頁
74HC595芯片資料和SPI總線簡介_第4頁
74HC595芯片資料和SPI總線簡介_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、74HC595芯片資料8位串行輸入/輸出或者并行輸出移位寄存器,具有高阻關斷狀態。三態。特點8位串行輸入8位串行或并行輸出存儲狀態寄存器,三種狀態輸出寄存器可以直接清除100MHz的移位頻率輸出能力并行輸出,總線驅動串行輸出;標準中等規模集成電路應用串行到并行的數據轉換Remotecontrolholdingregister.描述595是告訴的硅結構的CMOS器件,兼容低電壓TTL電路,遵守JEDEC標準。595是具有8位移位寄存器和一個存儲器,三態輸出功能。移位寄存器和存儲器是分別的時鐘。數據在SCHcp的上升沿輸入,在STcp的上升沿進入的存儲寄存器中去。如果兩個時鐘連在一起,則移位寄存器

2、總是比存儲寄存器早一個脈沖。移位寄存器有一個串行移位輸入(Ds),和一個串行輸出(Q7),和一個異步的低電平復位,存儲寄存器有一個并行8位的,具備三態的總線輸出,當使能OE時(為低電平),存儲寄存器的數據輸出到總線。參考數據符號參數條件TYP單位HCHCttPHL/tPLH傳輸延時SHcp到Q7STcp到QnMR到Q7CL=15pFVcc=5V161714212019NsNsNsfmaxSTcp到SHcp最大時鐘速度10057MHzCL輸入電容Notes13.53.5pFCPDPowerdissipationcapacitanceperpackage.Notes2115130pFCPD決定動態

3、的能耗,PD=CPDXVCCXf1+E(CLXVCC2XfO)Fl=輸入頻率,。1=輸出電容f0=輸出頻率(MHz)Vcc=電源電壓引腳說明符號引腳描述Q0.Q715,1,7并行數據輸出GND8地Q79串行數據輸出MR10主復位(低電平)SHCP11移位寄存器時鐘輸入STCP12存儲寄存器時鐘輸入OE13輸出有效(低電平)DS14串行數據輸入VCC16電源功能表輸入輸出功能SHCPSTCPOEMRDSQ7QnXXLIXLNCMR為低電平時緊緊影響移位寄存器XfLLXLL空移位奇存器到輸出奇存器XXHLXLZ清空移位寄存器,并行輸出為咼阻狀態fXLHHQ6NC邏輯高電平移入移位寄存器狀態0,包含

4、所有的移位寄存器狀態移入,例如,以前的狀態6(內部Q6”)出現在串行輸出位。XfLHXNCQn移位寄存器的內容到達保持寄存器并從并口輸出ffLHXQ6Qn移位寄存器內容移入,先前的移位寄存器的內容到達保持寄存器并輸出。H=高電平狀態L=低電平狀態!=上升沿(=下降沿Z=高阻NC=無變化X=無效當MR為高電平,OE為低電平時,數據在SHCP上升沿進入移位寄存器,在STCP上升沿輸出到并行端口。/TxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTx

5、TxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTx/給個74HC595的慢動作voidWriteSIOByte(unsignedcharval)unsignedchari;ACC=val;for(i=8;i0;i-)SRCLK=0;/拉低74HC595時鐘_rrca_();/右移一位數據SER=CY;/發送74HC595一位串行數據SRCLK=1;/拉高74HC595時鐘_nop_();/延時SER=1;/釋放數據總線/以下3條指令若在多字節時,應該移入多字節全發送完后在執行此3條指令RCLK=0;_

6、nop_();/延時RCLK=1;/打入并行數據74ls595速射hotpowerfor(i=0;i圏2LED動態顯不驅動電路連線圖在多位LED顯示時,為了簡化電路,降低成本,節省系統資源,將所有的N位段選碼并聯在一起,由一片74HC595控制(見圖2)。由于所有LED的段選碼皆由一個74HC595并行輸出口控制,因此,在每一瞬間,N位LED會顯示相同的字符。想要每位顯示不同的字符,就必須采用掃描的方法,即在每一瞬間只使用一位顯示字符。在此瞬間,74HC595并行輸出口輸出相應字符段選碼,而位選則控制I/O口在該顯示位送入選通電平,以保證該位顯示相應字符。如此輪流,使每位分時顯示該位應顯示字符

7、。由于74HC595具有鎖存功能,而且串行輸入段選碼需要一定時間,因此,不需要延時,即可形成視覺暫留效果。N位LED顯示時,只需要一片74HC595即可完成,成本最低。但是,此種方法的最大弱點就是當LED的位數大于12位時,出現閃爍現象,這是所有動態LED顯示方式共同的弱點。3多位LED顯示方法的實現BITnBIT2BIT1歡迎訪問http:/www.Slkai00-0707P1.07T2v-dEgAIDSO茁50-0707ynuCE05圖3多位LED動態顯示驅動電路連線圖為實現24位或更多位LED顯示,本文提出了一種全新的方法。此方法結合了動態和靜態顯示的優點,可以說是兩者的結合。連線圖如圖

8、3所示。段選碼由三片74HC595控制,段選數據由74HC595的SER引腳串行輸入,由于輸出使能時鐘RCLK并接在一起,因此,三片74HC595并行輸出端同時輸出。而三個LED位選信號也并接在一起,因此,一次可以同時點亮三位LED。此過程類似于靜態顯示。每片74HC595并行輸出端并接8位LED,用于掃描輸出,此過程類似于動態掃描過程。此方法運用3片74HC595,n條位選信號,即可實現3n位LED顯示。成本低廉,而且節省資源。此種方法實現多位LED顯示程序框圖為圖4所示,MCU為89S52。示例程序如下(24位LED顯示):歡迎訪l1http:/www.51k=aifacom圖4多位LED

9、顯不程序流程框圖示例程序如下(24位LED顯示);HC595DATBITPl.0HC595CLKBITFl.1HC595CLKBITPl.2HC595_SH0:CLRHC595DATCLRHC595CLKCLRHC595CLKMOVRO#60H;顯示緩沖區苜址MOVR2.SO1H;R2為位選信號MOVR6.#S;劇位LED分S組顯示SHOW3;MOVRS.SS;每次點亮3HLEDSHOW2:MOV虬麵0;MOVR4.#SSHOW1:RLCA;輸入段選碼MOVHC595DAT,CSETBHC595CLKCLKHC5S5CLKDJNZRd,SH0W1INCRODJNZR5,SHOVf2CLRCNO

10、VA,R2;輸出位選信號MOVDP5S000HNOVXDFTRAELCAMOVR2,ASETBHC595HOD;輸出使能CLRHC595HODDJNZR6,SHO73RET4結論實踐證明,此多位LED顯示方法性能穩定,如再級聯一片74HC595,在不需要增加I/O口線的情況下,即可實現32位LED顯示。筆者做過48位LED顯示,應穩定可靠。0丄VccOcOA旦腳吐GQf2邕輕QgSCKOhSDLfl醐)丄TopViewspi總線簡介:一、概述.SPI,SerialPerripheralInterface,串行外圍設備接口,是Motorola公司推出的一種同步串行接口技術.SPI總線在物理上是通

11、過接在外圍設備微控制器(PICmicro)上面的微處理控制單元(MCU)上叫作同步串行端口(SynchronousSerialPort)的模塊(Module)來實現的,它允許MCU以全雙工的同步串行方式,與各種外圍設備進行高速數據通信.SPI主要應用在EEPROM,Flash,實時時鐘(RTC),數模轉換器(ADC),數字信號處理器(DSP)以及數字信號解碼器之間.它在芯片中只占用四根管腳(Pin)用來控制以及數據傳輸,節約了芯片的pin數目,同時為PCB在布局上節省了空間.正是出于這種簡單易用的特性,現在越來越多的芯片上都集成了SPI技術.二、特點采用主-從模式(Master-Slave)的

12、控制方式SPI規定了兩個SPI設備之間通信必須由主設備(Master)來控制次設備(Slave).一個Master設備可以通過提供Clock以及對Slave設備進行片選(SlaveSelect)來控制多個Slave設備,SPI協議還規定Slave設備的Clock由Master設備通過SCK管腳提供給Slave設備,Slave設備本身不能產生或控制Clock,沒有Clock則Slave設備不能正常工作.采用同步方式(Synchronous)傳輸數據Master設備會根據將要交換的數據來產生相應的時鐘脈沖(ClockPulse),時鐘脈沖組成了時鐘信號(ClockSignal),時鐘信號通過時鐘極

13、性(CPOL)和時鐘相位(CPHA)控制著兩個SPI設備間何時數據交換以及何時對接收到的數據進行采樣,來保證數據在兩個設備之間是同步傳輸的.數據交換(DataExchanges)SPI設備間的數據傳輸之所以又被稱為數據交換,是因為SPI協議規定一個SPI設備不能在數據通信過程中僅僅只充當一個發送者(Transmitter)或者接收者(Receiver).在每個Clock周期內,SPI設備都會發送并接收一個bit大小的數據,相當于該設備有一個bit大小的數據被交換了.一個Slave設備要想能夠接收到Master發過來的控制信號,必須在此之前能夠被Master設備進行訪問(Access).所以,M

14、aster設備必須首先通過SS/CSpin對Slave設備進行片選,把想要訪問的Slave設備選上.在數據傳輸的過程中,每次接收到的數據必須在下一次數據傳輸之前被采樣.如果之前接收到的數據沒有被讀取,那么這些已經接收完成的數據將有可能會被丟棄,導致SPI物理模塊最終失效.因此,在程序中一般都會在SPI傳輸完數據后,去讀取SPI設備里的數據,即使這些數據(DummyData)在我們的程序里是無用的.三、工作機制1.概述SPIDataTransfer上圖只是對SPI設備間通信的一個簡單的描述,下面就來解釋一下圖中所示的幾個組件(Module):SSPBUF,SynchronousSerialPor

15、tBuffer,泛指SPI設備里面的內部緩沖區,一般在物理上是以FIFO的形式,保存傳輸過程中的臨時數據;SSPSR,SynchronousSerialPortRegister,泛指SPI設備里面的移位寄存器(ShiftRegitser),它的作用是根據設置好的數據位寬(bit-width)把數據移入或者移出SSPBUF;Controller,泛指SPI設備里面的控制寄存器,可以通過配置它們來設置SPI總線的傳輸模式.通常情況下,我們只需要對上圖所描述的四個管腳(pin)進行編程即可控制整個SPI設備之間的數據通信:SCK,SerialClock,主要的作用是Master設備往Slave設備傳

16、輸時鐘信號,控制數據交換的時機以及速率;SS/CS,SlaveSelect/ChipSelect,用于Master設備片選Slave設備,使被選中的Slave設備能夠被Master設備所訪問;SDO/MOSI,SerialDataOutput/MasterOutSlaveIn,在Master上面也被稱為Tx-Channel,作為數據的出口,主要用于SPI設備發送數據;SDI/MISO,SerialDataInput/MasterInSlaveOut,在Master上面也被稱為Rx-Channel,作為數據的入口,主要用于SPI設備接收數據;SPI設備在進行通信的過程中,Master設備和Sla

17、ve設備之間會產生一個數據鏈路回環(DataLoop),就像上圖所畫的那樣,通過SDO和SDI管腳,SSPSR控制數據移入移出SSPBUF,Controller確定SPI總線的通信模式,SCK傳輸時鐘信號.上圖通過Master設備與Slave設備之間交換1Byte數據來說明SPI協議的工作機制.首先,在這里解釋一下兩個概念:CPOL:時鐘極性,表示SPI在空閑時,時鐘信號是高電平還是低電平.若CPOL被設為1,那么該設備在空閑時SCK管腳下的時鐘信號為高電平.當CPOL被設為0時則正好相反.CPHA:時鐘相位,表示SPI設備是在SCK管腳上的時鐘信號變為上升沿時觸發數據采樣,還是在時鐘信號變為

18、下降沿時觸發數據采樣.若CPHA被設置為1,則SPI設備在時鐘信號變為下降沿時觸發數據采樣,在上升沿時發送數據.當CPHA被設為0時也正好相反.上圖里的Mode1,1說明了本例所使用的SPI數據傳輸模式被設置成CPOL=1,CPHA=1.這樣,在一個Clock周期內,每個單獨的SPI設備都能以全雙工(Full-Duplex)的方式,同時發送和接收1bit數據,即相當于交換了1bit大小的數據.如果SPI總線的Channel-Width被設置成Byte,表示SPI總線上每次數據傳輸的最小單位為Byte,那么掛載在該SPI總線的設備每次數據傳輸的過程至少需要8個Clock周期(忽略設備的物理延遲)

19、.因此,SPI總線的頻率越快,Clock周期越短,則SPI設備間數據交換的速率就越快.3.SSPSR.SSPSR是SPI設備內部的移位寄存器(ShiftRegister).它的主要作用是根據SPI時鐘信號狀態,往SSPBUF里移入或者移出數據,每次移動的數據大小由Bus-Width以及Channel-Width所決定.Bus-Width的作用是指定地址總線到Master設備之間數據傳輸的單位.例如,我們想要往Master設備里面的SSPBUF寫入16Byte大小的數據:首先,給Master設備的配置寄存器設置Bus-Width為Byte;然后往Master設備的Tx-Data移位寄存器在地址總

20、線的入口寫入數據,每次寫入1Byte大小的數據(使用writeb函數);寫完1Byte數據之后,Master設備里面的Tx-Data移位寄存器會自動把從地址總線傳來的1Byte數據移入SSPBUF里;上述動作一共需要重復執行16次.Channel-Width的作用是指定Master設備與Slave設備之間數據傳輸的單位.與Bus-Width相似,Master設備內部的移位寄存器會依據Channel-Width自動地把數據從Master-SSPBUF里通過Master-SDO管腳搬運到Slave設備里的Slave-SDI引腳,SlaveSSPSR再把每次接收的數據移入Slave-SSPBUF里.通常情況下,Bus-Width總是會大于或等于Channel-Width,這樣能保證不會出現因Master與Slave之間數據交換的頻率比地址總線與Master之間的數據交換頻率要快,導致SSPBUF里面存放的數據為無效數據這樣的情況.SSPBUF.我們知道,在每個時鐘周期內,Master與Slave之間交換的數據其實都是SPI內部移位寄存器從SSPBUF里面拷貝的.我們可以通過往SSPBUF對應的寄存器(T

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論