使用74HC595實(shí)現(xiàn)IO口的擴(kuò)展_第1頁
使用74HC595實(shí)現(xiàn)IO口的擴(kuò)展_第2頁
使用74HC595實(shí)現(xiàn)IO口的擴(kuò)展_第3頁
使用74HC595實(shí)現(xiàn)IO口的擴(kuò)展_第4頁
使用74HC595實(shí)現(xiàn)IO口的擴(kuò)展_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

使用74HC595實(shí)現(xiàn)I/O口的擴(kuò)展一、實(shí)驗(yàn)?zāi)康?.了解74HC595(串入并出)基本原理和使用2.了解數(shù)碼管的基本原理和驅(qū)動(dòng)方式3.學(xué)會(huì)使用74HC595來驅(qū)動(dòng)靜態(tài)數(shù)碼管二、實(shí)驗(yàn)器材C51單片機(jī)開發(fā)板(含74HC595芯片,靜態(tài)數(shù)碼管)1塊8PIN排線1根數(shù)據(jù)線1根三、實(shí)驗(yàn)原理1.數(shù)碼管數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管。數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管(還有一種“米”字型的數(shù)碼管,其段數(shù)更多),八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示),其基本原理是:將所有LED的一端(正極、負(fù)極均可)連在一起作為一個(gè)公共端,然后通過分別控制這組LED的另一個(gè)端口來使部分LED點(diǎn)亮,從而達(dá)到顯示一定字形的目的。(1)數(shù)碼管的分類按能顯示多少個(gè)“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。我們?cè)趯?shí)際使用中一定要搞清楚數(shù)碼管是共陰極的還是共陽極的。(2)數(shù)碼管段、位引腳的確定(以4位8段數(shù)碼管為例)數(shù)碼管引腳測(cè)量分三步:極性判斷(共陽極還是共陰極)、公共端判斷(位選端口)、段碼端判斷(段選端口)。首先要確定數(shù)碼管是共陰極還是共陽極的:找一個(gè)3到5V的直流電源,準(zhǔn)備幾個(gè)1K或者幾百歐姆的電阻。將電源的正極串接一個(gè)電阻后連在數(shù)碼管的任意一個(gè)腳上,然后將電源的負(fù)極逐個(gè)接到數(shù)碼管的其余引腳上,觀察數(shù)碼管的某一段是否會(huì)點(diǎn)亮,如果全部引腳試過都沒有亮的,那么將電源正極(串電阻)換一個(gè)引腳再試,直到有一個(gè)LED發(fā)光,這時(shí)固定電源負(fù)極不動(dòng),電源正極(串電阻)逐個(gè)接到數(shù)碼管的其余引腳上,如果有8段LED都亮,說明該數(shù)碼管是共陰極的。相反,按住電源正極不動(dòng),電源負(fù)極逐個(gè)接到數(shù)碼管的其余引腳上,如果有8個(gè)數(shù)碼管全亮,那么該數(shù)碼管是共陽極的。確定了數(shù)碼管的極性后,下面該確定數(shù)碼管的位選端口了。仍舊按照第一步的測(cè)量方法,如果測(cè)量過程中發(fā)現(xiàn)當(dāng)一個(gè)引腳固定后,逐個(gè)連接到其余端口上的時(shí)候,會(huì)有一個(gè)數(shù)碼管的所有段都被點(diǎn)亮了,那么這個(gè)固定端就是一個(gè)位選端。依照這種方法依次找出其余的3個(gè)位選端即可。最后確定段選端口,根據(jù)數(shù)碼管的極性將電源正極(串電阻)或負(fù)極固定在一個(gè)位選端上,然后將電源的另一端逐個(gè)連接數(shù)碼管的位選端口以外的引腳,當(dāng)接到一個(gè)引腳上數(shù)碼管的哪一段點(diǎn)亮,就能夠確定該引腳對(duì)應(yīng)那一段了,依次量出全部8段分別對(duì)應(yīng)那個(gè)引腳。經(jīng)過上面的步驟后,我們就完成了數(shù)碼管引腳的確定,其實(shí)在實(shí)際使用過程中,操作熟練的話是不必經(jīng)過這么繁瑣的步驟來確定數(shù)碼管的引腳的。(3)數(shù)碼管的驅(qū)動(dòng)方式:數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。①靜態(tài)顯示驅(qū)動(dòng):靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指將公共端接到電源正極或者電源地上,每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動(dòng),或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅(qū)動(dòng),要知道一個(gè)89S51單片機(jī)可用的I/O端口才32個(gè)呢:),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。②動(dòng)態(tài)顯示驅(qū)動(dòng):數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。通過分時(shí)輪流控制各個(gè)數(shù)碼管的的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。在實(shí)際使用中,通常都是采用動(dòng)態(tài)顯示驅(qū)動(dòng)的方法。在本實(shí)例中我們采用的靜態(tài)驅(qū)動(dòng)的方法。2.74HC595功能描述在本實(shí)例中我們使用了一片74HC595來驅(qū)動(dòng)8位數(shù)碼管的位選端口,下面就簡(jiǎn)單介紹一下74HC595的功能。74HC595是帶鎖存功能的三態(tài)輸出的8位串行輸入/并行輸出的移位寄存器。由于它自帶鎖存器,所以其數(shù)據(jù)在移位寄存器中的移位與鎖存器的輸出是獨(dú)立的,當(dāng)數(shù)據(jù)移位時(shí),可以保持鎖存器輸出的數(shù)據(jù)不改變,等所有8位數(shù)據(jù)全部串入完成移位操作后,一次性的將數(shù)據(jù)打入鎖存器中,從而實(shí)現(xiàn)了并行輸出的同步改變。另外該芯片可以進(jìn)行級(jí)聯(lián),能夠?qū)崿F(xiàn)8Xn個(gè)并口擴(kuò)展。下圖是74HC595的邏輯功能表輸入輸出功能SHcpSTcpOEMRDsQ7’Qn××L↓×LNCMR為低電平時(shí)僅僅影響移位寄存器×↑LL×LL空移位寄存器到輸出移位寄存器××HL×LZ清空移位寄存器,并行輸出為高阻態(tài)↑×LHHQ6’NC邏輯高電平移入移位寄存器狀態(tài)0,包含所有的移位寄存器狀態(tài)移入,例如,以前的狀態(tài)6(內(nèi)部Q6’)出現(xiàn)在串行輸出位×↑LH×NCQn’移位寄存器的內(nèi)容到達(dá)保持寄存器并從并口輸出↑↑LH×Q6’Qn’移位寄存器內(nèi)容移入,先前的移位寄存器的內(nèi)容到達(dá)保持寄存器并輸出74HC595管腳描述:QA--QH:八位并行輸出端,可以直接控制數(shù)碼管的8個(gè)段。QH':級(jí)聯(lián)輸出端。我將它接下一個(gè)595的SI端。SI:串行數(shù)據(jù)輸入端。74595的控制端說明:/SCLR(10腳):復(fù)位引腳,低電平時(shí)將移位寄存器的數(shù)據(jù)清零。一般情況下接Vcc。SCK(11腳):時(shí)鐘引腳,上升沿時(shí)數(shù)據(jù)寄存器的數(shù)據(jù)移位。QA-->QB-->QC-->...-->QH;下降沿移位寄存器數(shù)據(jù)不變。(脈沖寬度:5V時(shí),大于幾十納秒就行了。RCK(12腳):鎖存引腳,上升沿時(shí)移位寄存器的數(shù)據(jù)進(jìn)入數(shù)據(jù)存儲(chǔ)寄存器,下降沿時(shí)存儲(chǔ)寄存器數(shù)據(jù)不變。通常將RCK置為低電平,當(dāng)移位結(jié)束后,在RCK端產(chǎn)生一個(gè)正脈沖(5V時(shí),大于幾十納秒就行了),更新顯示數(shù)據(jù)。/G(13腳):使能引腳。高電平時(shí)禁止輸出(高阻態(tài))。如果單片機(jī)的引腳不緊張,用一個(gè)引腳控制它,可以方便地產(chǎn)生閃爍和熄滅效果。比通過數(shù)據(jù)端移位控制要省時(shí)省力,通??梢灾苯咏拥谿ND。A(14腳):數(shù)據(jù)串入引腳。74595的主要優(yōu)點(diǎn)是具有數(shù)據(jù)存儲(chǔ)寄存器,在移位的過程中,輸出端的數(shù)據(jù)可以保持不變。這在串行速度慢的場(chǎng)合很有用處,數(shù)碼管沒有閃爍感。74HC595還具有SPI功能,但在本例中我們先不使用,我們直接用單片機(jī)的普通I/O口模擬74HC595的時(shí)序來實(shí)現(xiàn)數(shù)據(jù)的串入并出功能。從74HC595的邏輯功能表中我們可以分析出74HC595的工作過程:數(shù)據(jù)的串入和內(nèi)部數(shù)據(jù)移位的操作由SCLK控制。SCLK的上升沿將移位寄存器中的數(shù)據(jù)由Qa向Qh依次移動(dòng)一位,同時(shí)將數(shù)據(jù)線上的電平打入Qa,而最高位的數(shù)據(jù)Qh從SQh端移出。如果把SQh與另一片74HC595的數(shù)據(jù)端連接,那么SQh的串行輸出就是第2片74HC595的串行數(shù)據(jù)輸入,從而實(shí)現(xiàn)級(jí)聯(lián)。74HC595在移位的過程中并不影響其鎖存器的輸出,移位寄存器中的數(shù)據(jù)是通過鎖存端的上升沿打入到鎖存器中的。正是由于74HC595具備了鎖存功能,因而可以保證并行輸出數(shù)據(jù)的穩(wěn)定和數(shù)據(jù)同步改變的功能。經(jīng)過以上分析我們可以得出74HC595控制數(shù)據(jù)輸入輸出的實(shí)現(xiàn)步驟:1、在SCLK上升沿期間將數(shù)據(jù)端串入的數(shù)據(jù)經(jīng)過發(fā)送到移位寄存器中,如果需要發(fā)送8位的數(shù)據(jù),則需要8個(gè)SCLK上升沿才能將8位數(shù)據(jù)全部輸入到移位寄存器中。2、使鎖存端產(chǎn)生一個(gè)上升沿,從而將移位寄存器中的數(shù)據(jù)打入到鎖存器中并輸出。本實(shí)例中8位數(shù)碼管顯示電路的工作原理:8位數(shù)碼管的8個(gè)段選端口全部并聯(lián)接到單片機(jī)的PB口上。74HC595控制8位數(shù)碼管的8個(gè)位選端,當(dāng)某位選通后,點(diǎn)亮該位的數(shù)碼管,使它顯示相應(yīng)的數(shù)字。3.實(shí)驗(yàn)原理圖(Protues仿真圖)四、實(shí)驗(yàn)操作步驟1.JP595用跳線冒短接,JP1302跳線帽斷接或取下,JP3和JP2用8PIN排線連接。2.用數(shù)據(jù)線將單片機(jī)開發(fā)板與PC機(jī)連接好。3.打開Keil軟件,新建一個(gè)工程(記住工程所保存的位置),將所給HC595_LED.c(或HC595_LED.asm)文件添加到這個(gè)工程中,然后進(jìn)行編譯,編譯完成后,打開工程所保存的文件夾,可以看到此工程中生成了一個(gè)HC595_LED.hex的文件。4.打開燒錄軟件,單擊窗口中的“打開文件”,選中上述生成的HC595_LED.hex的文件,然后打開單片機(jī)開發(fā)板的電源,再單擊燒錄軟件窗口中的“下載程序”,當(dāng)窗口中出現(xiàn)“文件下載完畢,數(shù)據(jù)下載成功”字樣后,程序下載成功。5.程序下載成功后,觀察單片機(jī)開發(fā)板上靜態(tài)數(shù)碼管的現(xiàn)象:最開始靜態(tài)數(shù)碼管會(huì)顯示數(shù)字2,然后依次跳變?yōu)?,4,5,6,7,8,9,A,B,C,D,E,F。顯示F后會(huì)跳變?yōu)?,再依次增加,循環(huán)顯示0-F。如果想再次從頭觀察現(xiàn)象可以按復(fù)位鍵RSTK。6.實(shí)驗(yàn)完成后,先關(guān)閉單片機(jī)開發(fā)板的電源,再將接線拆下,最后要將實(shí)驗(yàn)儀器放回原處。五、實(shí)驗(yàn)流程圖NNYMOSIC記住了HC595sendVal左 起第i+1位的值,實(shí)現(xiàn)串行輸入, 將數(shù)據(jù)輸入到移位寄存器中)YN開始開始定義定義LED的字模(共陰極與共陽極各為不同的定值數(shù)組)UUnsignedcharHC595sendValUnsignedintLedNumVal=1LedNumVal++LedNumVal++LedNumVal的值與16求余使得其值為0LedNumVal的值與16求余使得其值為0—F,在LED7Code[]中獲取對(duì)應(yīng)的16進(jìn)制數(shù)據(jù)賦值給HC595sendValinti=0inti=0i++i++HC595sendVal左移i位與0x80相與所得結(jié)果大于0?HC595sendVal左移i位與0x80相與所得結(jié)果大于0?MOSIC=0MOSIC=0MOSIC=1MOSIC=1將移位寄存器控制引腳置為低,再置為高,產(chǎn)生移位時(shí)鐘上升沿,上升沿時(shí)數(shù)據(jù)寄存器的數(shù)據(jù)移位將移位寄存器控制引腳置為低,再置為高,產(chǎn)生移位時(shí)鐘上升沿,上升沿時(shí)數(shù)據(jù)寄存器的數(shù)據(jù)移位i<8i<8將存儲(chǔ)寄存器引腳置為低,再置為高,產(chǎn)生移位時(shí)鐘上升沿,上升沿時(shí)移位寄存器的數(shù)據(jù)進(jìn)入數(shù)據(jù)存儲(chǔ)器,更新顯示數(shù)據(jù)將存儲(chǔ)寄存器引腳置為低,再置為高,產(chǎn)生移位時(shí)鐘上升沿,上升沿時(shí)移位寄存器

溫馨提示

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

評(píng)論

0/150

提交評(píng)論