實驗2、流水燈控制實驗_第1頁
實驗2、流水燈控制實驗_第2頁
實驗2、流水燈控制實驗_第3頁
實驗2、流水燈控制實驗_第4頁
實驗2、流水燈控制實驗_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實驗2、數(shù)碼管顯示實驗【實驗?zāi)康摹繉W(xué)習(xí)LPC系列處理器GPIO口的使用方法;學(xué)習(xí)用Keil軟件開發(fā)ARM程序方法和步驟。學(xué)習(xí)7SEG數(shù)碼管的驅(qū)動原理。學(xué)習(xí)74HC595驅(qū)動數(shù)碼管的編程方法。【實驗要求】了解LPC系列處理器GPIO口的功能原理;在Keil中設(shè)計ARM程序,實現(xiàn)對7SEG數(shù)碼管的控制,和利用74HC595對數(shù)碼管驅(qū)動的驅(qū)動程序的編寫;附加要求:請在數(shù)碼管顯示數(shù)組里面實現(xiàn)0——F循環(huán)顯示(程序一)【實驗原理】1、LPC系列處理器GPIO口的原理PINSEL(x)管腳功能選擇寄存器IOPIN(x)GPIO引腳值寄存器IOSET(x)GPIO輸出置位寄存器IODIR(x)GPIO方向控制寄存器IOCLR(x)GPIO輸出清零寄存器2、實驗電路原理圖實驗電路的連接如下圖,LED1和LED2是利用74HC595進行驅(qū)動顯示[74HC595的三個控制信號SDI(數(shù)據(jù)輸入)、SCLK(時鐘控制)、LOAD(數(shù)據(jù)顯示)分別接到p0.27---p0.29],LED8COMMONAONDE用GPIO口的P1.18到P1.25來控制的。輸出低電平則LED點亮,輸出高電平則LED熄滅。本次實驗的實質(zhì)原理同第一次試驗,對數(shù)碼管的驅(qū)動實際上也是對LED的驅(qū)動,因為數(shù)碼管的各個段也是一個LED燈,所以大家只要明白了哪個管腳對應(yīng)于哪個LED,就可以實現(xiàn)用數(shù)碼管顯示不同的數(shù)字。程序代碼(1)#include<lpc23xx.h>#defineled(0xff<<18)//指定P1.18到P1.25typedefunsignedintuint8;typedefunsignedlonguint16;constuint8DISP_TAB[3]={0xdb,0x12,0xe3};//數(shù)碼管顯示數(shù)組voidDelay(uint16t)//延時函數(shù){while(t--);}intmain(){uint8i;IODIR1=(0xff<<18);//設(shè)置P1.18到P1.25為輸出while(1){for(i=0;i<3;i++){IOSET1=led; //先輸出高電平使數(shù)碼管各段全部熄滅IOCLR1=(DISP_TAB[i]<<18);//輸出顯示內(nèi)容Delay(10000000); //延時輸出}}}(2)/*本實驗的重點在對74HC595的驅(qū)動(show_seg_char()函數(shù)功能),其余的同上一個程序,觀察顯示,上網(wǎng)查找74HC595和74LS595的資料,分析顯示結(jié)果*/#include<lpc23xx.h>#defineSDI_SEG1<<27 //指定p0.27#defineSCLK_SEG1<<28 //指定p0.28#defineLOAD_SEG1<<29//指定p0.29typedefunsignedintuint8;typedefunsignedlonguint32;typedefunsignedcharuchar;voidDelay(uint32t)//延時函數(shù){while(t--);} voidinit_seg(void) //初始化連接數(shù)碼管的端口{PINSEL1=PINSEL1&0x003fffff; //選擇GPIO功能IODIR0|=0x0f<<27; //端口為輸出}voidshow_seg_char(uchardata)//顯示一位數(shù)字{uchari; IOCLR0=LOAD_SEG; //鎖存數(shù),可從寄存器通過,可輸入74HC595內(nèi)的寄存器 IOCLR0=SCLK_SEG;//上升沿采樣 for(i=0;i<8;i++) { if((data&0x80)==0x80) //先發(fā)高位 IOSET0=SDI_SEG; else IOCLR0=SDI_SEG; IOSET0=SCLK_SEG; //上升沿 data=data<<1; IOCLR0=SCLK_SEG; } IOSET0=LOAD_SEG; //顯示數(shù)據(jù) }intmain(){uchartab[18]={0x24,0x6f,0x38,0x2a,0x63,0xa2,0xa0,0x2f,0x20,0x23,0x21,0xe0,0xb4,0x68,0xb0,0xb1,0xff,'\0'}; //最后一個數(shù)據(jù)0xff為全滅uint8i;init_seg();while(1){for(i=0;i<18;i++){show_seg_char(tab[i]);Delay(10000000);}}}附(來自網(wǎng)上):74HC595數(shù)碼管驅(qū)動74HC595使用總結(jié)74HC595外形圖QB--|116|--VccQC--|215|--QAQD--|314|--SIQE--|413|--/GQF--|512|--RCKQG--|611|--SCKQH--|710|--/SCLRGND-|89|--QH'74595的數(shù)據(jù)端:QA--QH:八位并行輸出端,可以直接控制數(shù)碼管的8個段。QH':級聯(lián)輸出端。我將它接下一個595的SI端。SI:串行數(shù)據(jù)輸入端。74595的控制端說明:/SCLR(10腳):低點平時將移位寄存器的數(shù)據(jù)清零。通常我將它接Vcc。SCK(11腳):上升沿時數(shù)據(jù)寄存器的數(shù)據(jù)移位。QA-->QB-->QC-->...-->QH;下降沿移位寄存器數(shù)據(jù)不變。(脈沖寬度:5V時,大于幾十納秒就行了。我通常都選微秒級)RCK(12腳):上升沿時移位寄存器的數(shù)據(jù)進入數(shù)據(jù)存儲寄存器,下降沿時存儲寄存器數(shù)據(jù)不變。通常我將RCK置為低點平,當(dāng)移位結(jié)束后,在RCK端產(chǎn)生一個正脈沖(5V時,大于幾十納秒就行了。我通常都選微秒級),更新顯示數(shù)據(jù)。/G(13腳):高電平時禁止輸出(高阻態(tài))。如果單片機的引腳不緊張,用一個引腳控制它,可以方便地產(chǎn)生閃爍和熄滅效果。比通過數(shù)據(jù)端移位控制要省時省力。//這個引腳不管是否用到,都要給他下拉。否則顯示會不穩(wěn)定,萬一上拉,將沒有任何顯示。注:74164和74595功能相仿,都是8位串行輸入轉(zhuǎn)并行輸出移位寄存器。74

溫馨提示

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

評論

0/150

提交評論