實驗報告-LED顯示控制_第1頁
實驗報告-LED顯示控制_第2頁
實驗報告-LED顯示控制_第3頁
實驗報告-LED顯示控制_第4頁
實驗報告-LED顯示控制_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

實驗一LED顯示控制硬件介紹C28X芯片提供了56個多功能引腳,用戶可以將這些引腳作為片內外設的輸入輸出引腳,當不使用片內外設時,也可以將他們作為數字I/O口。本實驗是將其用作GPIO口,如圖1所示。圖1GPIO口應用2)74HC164是一個8位的串并行數據轉換的芯片,其時序圖如圖2所示。圖274164工作時序圖由圖2知,輸入端A和B相與是74HC164的輸出,若輸入信號只有一個(A端),則可以將其中一個輸入端置1(B端),則可將輸入的串行信號(A端)轉化成并行輸出(QA--QH)。CLEAR是低電平有效的復位信號,即CLEAR為低電平時,輸出端(QA—QH)全部置0,其為高電平時芯片可正常工作。CLOCK是上升沿有效的時鐘信號,即每來一個上升沿,輸入的數據就會傳一位,輸出端QA會輸出最新的輸入信號,而QB則重復前一個時鐘的QA,QC則重復前一個時鐘的QB,……待滿8個上升沿時,一個輸入的8位串行數據就被轉換成8位的并行數據輸出。3)8×8LED的顯示模塊如圖3所示。圖38×8LED的顯示模塊由圖3可知,若要是LED正常發光,將LED的正向加高電平,負向加低電平即可。顯示圖像或字可通過動態掃描得到結果。硬件連接實驗模塊控制模塊GLEDDISPLAYADSPSECTIONLED_A2(J32)SPISIMOA(J34)LED_B2(J32)SPISOMIA(J34)CLKIN2(J32)SPICLKA(J34)/CLR2(J32)SPISTEA(J34)LED_A1(J5)PWM7(J35)LED_B1(J5)PWM8(J35)/CLKIN1(J5)PWM9(J35)/CLR1(J5)PWM10(J35)除此之外,通過用跳線頭短接J6(GLEDDISPLAY)的VCC和U2VCC為LEDDISPLAY模塊供電。用跳線頭短接J61(ADSPSECTION)的GND和1DIR以及J62(ADSPSECTION)的GND和2DIR,將ADSPSECTION模塊的緩沖設為輸出。軟件設計#include"DSP28_Device.h"#include"DSP28_Globalprototypes.h"#defineDINAGpioDataRegs.GPFDAT.bit.GPIOF0#defineDINBGpioDataRegs.GPFDAT.bit.GPIOF1#defineCLK2 GpioDataRegs.GPFDAT.bit.GPIOF2#defineCLEAR2 GpioDataRegs.GPFDAT.bit.GPIOF3#defineDINCGpioDataRegs.GPBDAT.bit.GPIOB0#defineDINDGpioDataRegs.GPBDAT.bit.GPIOB1#defineCLK1GpioDataRegs.GPBDAT.bit.GPIOB2#defineCLEAR1GpioDataRegs.GPBDAT.bit.GPIOB3//Prototypestatementsforfunctionsfoundwithinthisfile.//interruptvoidISRTimer2(void);voiddelay_loop(void);voidGpio_select(void);voidsendto1(unsignedchardab);voidsendto2(unsignedchardat);voidDELAY(void);unsignedintvar1=0;unsignedintvar2=0;unsignedintvar3=0;unsignedcharsendBdata[8]={0x0ff,0x0ff,0x0ff,0x0ff,0x0ff,0x0ff,0x0ff,0x0ff};unsignedchardispdata[8]={0x7c,0x48,0x48,0xff,0x48,0x48,0x7c,0x00};//中//unsignedchardispdata[4]={0x18,0x3c,0x7e,0xff};//candyunsignedchardispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xDf,0xBf,0x7f};//unsignedchardispbit[4]={0xe7,0xc3,0x81,0x00};//candyunsignedcharkdab;unsignedcharkdat;voidmain(void){unsignedchari; InitSysCtrl(); //DisableandclearallCPUinterrupts: DINT; IER=0x0000; IFR=0x0000; //InitializePieControlRegistersToDefault InitPieCtrl(); InitPieVectTable(); //RunGPIOtest var1=0x0000; //setsGPIOMuxsasI/Os var2=0xFFFF; //setsGPIODIRasoutputs var3=0x0000; //setstheInputqualifiervalues Gpio_select(); //ToggleI/OsusingDATAregisterforever for(i=0;i<200;i++); CLEAR2=0; CLK2=1; CLEAR1=0; CLK1=1; DINA=1; DINB=1; DINC=1; DIND=1; CLEAR2=1; CLEAR1=1; while(1) {sendto1(0x0ff);//static/striamap// for(i=0;i<8;i++)// { //sendto1(sendBdata[i]); //GpioDataRegs.GPBDAT.all=0X00FF;// sendto2(dispdata[i]);// sendto1(dispbit[i]); //GpioDataRegs.GPBDAT.all=dispbit[i];// DELAY();// DELAY();// DELAY();// DELAY();// DELAY();// DELAY();// }//static/striamap//expandedwindowsendto1(dispbit[0]);//發送列的第一個數據 sendto2(dispdata[0]);//發送行的第一個數據 DELAY();//延時 DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); sendto1(dispbit[1]);//發送列的第二個數據 sendto2(dispdata[1]);//發送行的第二個數據 DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); sendto1(dispbit[2]);//發送列的第三個數據 sendto2(dispdata[2]);//發送行的第三個數據 DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); sendto1(dispbit[3]);//發送列的第四個數據 sendto2(dispdata[3]);//發送行的第四個數據DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); sendto1(dispbit[4]);//發送列的第五個數據 sendto2(dispdata[4]);//發送行的第五個數據DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); sendto1(dispbit[5]);//發送列的第六個數據 sendto2(dispdata[5]);//發送行的第六個數據DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); sendto1(dispbit[6]);//發送列的第七個數據 sendto2(dispdata[6]);//發送行的第七個數據DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); sendto1(dispbit[7]);//發送列的第八個數據 sendto2(dispdata[7]);//發送行的第八個數據DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); DELAY(); //expandedwindow } } voidGpio_select(void){ EALLOW;//使CPU能對寄存器操作 GpioMuxRegs.GPBMUX.all=var1;//0x0000GpioMuxRegs.GPBDIR.all=var2; //0xFFFF,GPIODIRselectGPIOsasoutputGpioMuxRegs.GPBQUAL.all=var3;//0x0000GpioMuxRegs.GPFMUX.all=var1;GpioMuxRegs.GPFDIR.all=var2; //GPIODIRselectGPIOsasoutputEDIS;//停止CPU對寄存器的操作}voidsendto1(unsignedchardab){unsignedchari;CLK1=0;kdab=dab;for(i=0;i<8;i++){if((kdab&0x01)==0x01){DINC=1;}elseDINC=0;CLK1=1;//產生一個上升沿,使數據輸入CLK1=0;kdab=kdab>>1;}}voidsendto2(unsignedchardat){unsignedchari; CLK2=0; kdat=dat; for(i=0;i<8;i++) { if((kdat&0x01)==0x01) { DINA=1; }elseDINA=0; CLK2=1; C

溫馨提示

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

評論

0/150

提交評論