2023年嵌入式綜合應用實驗報告_第1頁
2023年嵌入式綜合應用實驗報告_第2頁
2023年嵌入式綜合應用實驗報告_第3頁
2023年嵌入式綜合應用實驗報告_第4頁
2023年嵌入式綜合應用實驗報告_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

《嵌入式系統與接口技術實驗》綜合設計報告班級13物聯網姓名黃梓恩學號指導教師沈蘭

rRTCCON=0x0;〃RTCrRTCCON=0x0;〃RTC讀寫嚴禁,選擇BCD時鐘、計數器,無復}voidBUZZER_PWM_Test(void)(//U16freq;//Uart_Printf(*'\nKEYCONTROLBUZZER\nM);/ZUart_Printf("Press'ESC*keytoExitthisprogram!\n\nM);whi1e(1)(?U8key=Uart_Getch();〃通過異步串行通道Uart輸入按鍵值??switch(key)(Oddgcase*11:Buzzer_Freq_Set(200);rGPFDAT=rGPFDAT&-(1<<4);De1ay(800);rGPFDAT=rGPFDAT|(1?4);Buzzer_Stop();break;。case'2':Buzzer_Freq_Set(300);rGPFDAT=rGPFDAT&?(l?5);De1ay(800);rGPFDAT=rGPFDAT|(1?5);Buzzer_Stop();break;gcase'3*:Buzzer_Freq_Set(500);rGPFDAT=rGPFDAT&-(l?6);Delay(800);rGPFDAT=rGPFDATI(1?6);Buzzer_Stop();break;ocase'4z:Buzzer_Freq_Set(800);rGPFDAT=rGPFDAT&41?7);Delay(800);rGPFDAT=rGPFDAT|(1<<7);Buzzer_Stop();break;皿case*5:Buzzer_Freq_Set(100());rGPFDAT=rGPFDAT&?(1?4);DeIay(800);rGPFDAT=rGPFDAT|(1<<4);Buzzer_Stop();break;gcase^'iBuzzer_Freq_Set(1200);rGPFDAT=rGPFDAT&-(1?5);Delay(800);rGPFDAT=rGPFDAT|(1<<5);Buzzer_Stop();break;。case,7,:Buzzer_Freq_Set(1400);rGPFDAT=rGPFDAT&-(1?6);De1ay(200);rGPFDAT=rGPFD?\T|(1?6);Buzzer_Stop();break;°}//Buzzer_Freq_Set(freq);//Uart.Printf('MFreq=%d\nM,freq);//通過異步串行通道Uart輸出頻率?if(key==ESC_KEY)o{。Buzzer_Stop();//停止蜂鳴器4//{break;}V/Uart_Printf(M\nChoiceagain\n”);??return;。}))voidBuzzer_Freq_Set(U32freq)(rGPBCON=rGPBCON&^(3<<0)|(l<<1);//setGPB0astout0,pwmoutputrTCFG0=rTCFGO&?0xff|15;//presealer=151/8rTCFG1=rTCFGI&?OxfI2;//dividerorTCNTBO=(PCLK?7)/freq;//rTCNTB0=PCLK/{(presealer+1)*divider*freq}1/8rTCMPBO=rTCNTB0>>1;。〃占空比50%d//disabledeadzone,auto-reload,inv-off,updateTCNTB0&TCMPBO,starttimer0?rTCON=rTCON&-0xlf|(0?4)|(1?3)I(0?2)I(1<<1)|(1);rTCON&=~(1?1);。//clearmanua1updatebit)voidBuzzer_Stop(void)(rGPBCON1=1;?rGPBCON=rGPBCON&-3|l;/setGPBOasoutputrGPBDAT&=?1;//output0)/***********外部中斷初始化************/voidEint_Init(void)(〃設立GPE11為輸出0rGPECON=(rGPECON|(3?22))&?(2vv22);”GPEUP|=(1?H);?rGPEDAT&=?(Ivvll);rGPFCON=rGPFCON&?(3)|(IvVl);//GPFO設立為EINTOrGPFCON=rGPFCON(3?4)|(1?5);?〃GPF2設立為EINT2rGPGCON=rGPGCON&-(3?6)|(1?7)瀘//GPG3設立為EINT1rGPGCON=rGPGCON&-(3?22)|(1?23);//GPGU設立為EINT19rGPFUP|=(l?0);//disableGPFOpulluprGPFUP|=(1?2);//disab1eGPF2pul1uprGPGUP|=(l?3);//disableGPG3pu11uparGPGUP|=(1<<11);//disab1eGPG11pulluprEXTINTO=(rEXTINTO&?(7?0))|(2?0);//EINTO->fa11ingedgetriggered^rEXTINTO=(rEXTINTO&7<<8))|(2?8);//EINT2->fa11ingedgetriggeredrEXTlNT1=(rEXTINTI&-(7?12))|(0x2<<12);//EINTU->fallingedgetriggereddrEXTINT2=(rEXTINT2&-(7?12))|(0x2?12);//EINT19->fal1ingedgetriggered9pISR_EINTO=(unsigned)EintO_ISR;pISR_EINT2=(unsigned)Eint2」SR;plSR_EINT8_23=(unsigned)Eintll_19_ISR;

/***********/***********開外部中斷/***********開外部中斷************/***********開外部中斷************/{rElNTPEND=Oxffffff;//toclearthepreviouspendingstatesrSRCPND|=BIT_EINTO|BIT_EINT2|BIT_EINT8_23;rlNTPND|=BIT_EINTO|BIT_EINT2|BIT_EINT8_23;rEINTMASK=~((1?11)|(1?19));//rINTMSK=-(BIT_EINTO|BIT_EINT2|BIT_EINT8_23);EnableIrq(BIT.EINTO);EnableIrq(BIT.EINT2);Enablelrq(BIT_EINT8_23);)/***********外部中斷服務程序************/voidirqEintO_ISR(void)卜ClearPending(BIT_EINTO);Buzzer_Freq_Set(300);//修改PMW頻率De1ay(800);Buzzer_Stop();?Uart_Printf(MFreq=300\n");"通過異步串行通道Uart輸出頻率)void_irqEint2_ISR(void)ClearPending(BIT_EINT2);Buzzer_Freq_Set(500);//修改PMVV頻率De1ay(800);Buzzer_Stop();Uart_Printf("Freq=500\nn);〃通過異步串行通道Uart輸出頻率}void—irqEint11_19_ISR(void)(if(rElNTPEND&(1?11))(。Buzzer_Freq_Set(800);〃修改PMW頻率dDelay(800);Buzzer_Stop();?Uart_Printf("Freq=800\nM);〃通過異步串行通道Uart輸出頻率rEINTPEND=(lvvll);〃清除子登記,方便下次中斷,方法比較特別,在相應為寫1將它清為0ClearPending(BIT_EINT8_23);}elseif(rEINTPEND&(1<<19)){Buzzer_Freq_Set(1000);//修改PMW頻率。Delay(800);Buzzer_Stop();oUart_Printf("Freq=1000\iT);〃通過異步串行通道Uart輸出頻率,rEINTPEND=(1<<19);ClearPending(BIT_EINT8_23);e1seUart_Printf("othersENTsareoccrEINTPEND=0xfHTff;ClearPending(BIT_EINT8_23);【實現過程及結果】開始菜單,選擇1,為鍵盤電子琴,不同按鍵會有不同的燈亮起NowdownloadFilefromuartODownloadFileSize=20350Areyousuretorun?[y/n]deuice_id(0x52)=0xbF,deuice_uersion(OxFx)=0xbFthereisnoW83977deuice!**********hello**********1.PlanowhitLED2.Piano2ESCbacktonenu按ESC鍵返回選擇菜單,若按了錯誤按鍵,系統提醒錯誤,選擇2為開發板按鍵電子琴,會顯示你所按按鍵的頻率Liiere工、nuv/coy//ueuxuei???????**?HELLO**********1.PlanowhitLED2.Piano21.2.3ESCbacktonenuError?pleasetryagainESCbacktomenuESCbacktomenuESCbacktonenuESCbacktonenuFreq=300Freq-3fl0Freq=8O0Freq=800Freq-1000Freq=1O00Freq=1000Freq?1000Freq=1000Freq=1080Freq=1000Freq-1000【設計總結】【參考文獻】1、2、3、【綜合應用實驗目的】【綜合應用實驗題目】運用GEC2410實驗板,設計并實現一個綜合應用系統【綜合應用實驗規定】要用到己學過的所有GEC2410模塊,涉及:GPIO端口控制:LED燈模塊中斷控制:按鍵外部中斷,內部中斷(TimerorTicktime)UART串口:鍵盤輸入,顯示器輸出PWM定期器:定期中斷,tout。輸出驅動蜂鳴器?蜂鳴器:?實時時鐘:當前時間,鬧鐘,節拍中斷?看門狗定期器:WTD中斷,Reset【相關理論知識】【實現方案】主函數#include,,2410addr.hM#inc1udeM24101ib.h"#include"def.h"externvoidwatchdog_test(void);externvoid_irqwatchdog_int(void);externvoid_irqTick_Isr(void);externvoidOpenRtc(void);externvoidBUZZER_PWM_Test(void);externvoidEint_Init(void);externvoidEnab1e_Eint(void);externvoidwatchdog_test(void);externcharintMain(void){chara,b,c;ChangeC1ockDivider(1,1);ChangeMPIIVa1ue(0xa1,0x3,Ox1);Port_Init();Uart_Select(O);Uart_Init(0,115200);Eint_Init();//外部中斷初始化OpenRtc();"打開實時時鐘節拍中斷watchdog_test();Uart_Printf(”**********HELLO**********\n");。Uart.Printf(Ml.PlanowhitLED\n");Uart_Printf('2Piano2\nM);Disab1elrq(BIT_WDT);DisableIrq(BIT_EINT0);isab1elrq(BIT_EINT2);。Disab1elrq(BIT_EINT8_23);〃關這4個中斷,為了在鍵盤沒按T或'3,之前拒絕產生這4種中斷?Uart_Printf(M\nl.2.3\nw);。〃1是鍵盤電子琴,2是開發板按鍵電子琴,3跑馬燈6?while(l)a=Uart_Getch();Delay(300);gif(a=='r)?Vart_Printf('*ESCbacktomenu\iiM);o^BUZZER_PWM_Test();°}0aif(a=='2,)。(??Uart_Printf("ESCbacktomenu\nM);gEnabIe_Eint();(9b=Uart_Getch();Delay(300);。?if(b==ESC_KEV)break)Oddo)0?e1seUart_Printf(uError!pleasetryagainu);#inc1ude”2410addr.h'?#inc1ude"2410lib.h”#include?'def.h"〃使用KI按鍵觸發EINTO,EINT0->GPFO〃使用K3按鍵觸發EINT2,EINT2->GPF2//使用K5按鍵觸發EINT11,EINT11->GPG3//使用K7按鍵觸發EINT19,EINT19->GPG11//KSCANO->GPE11intk=l;chart;char*week[8]={“SUN“JMON“,“TUES","WED","THURS”JFRI“,“SAT”};intyeai;nionth,date,weekday,hour,min,sec;voidirqwatchdog_int(void);voidirqTick_Isr(void);voidGet_Rtc(void);voidBuzzer_Freq_Set(U32freq);voidBuzzer_St0p(void);void_irqEint0_ISR(void);voidirqEint2_ISR(void);void_irqEintll_19_ISR(void);voidwatchdog_test(void)(//initializeinterruptregisters允許WatchDog中斷C1earPending(BIT_VVDT);//往中斷向量表填WatchDog中斷向量pISR_VVDT=(unsigned)watchdog_int;//Presealervalue=100>clockdivisionfactor=128//t_watchdog=l/[PCLK/(PrescalervaIue+1)/Division_factorj=0.00025856//disab1ewatchdogrWTCON=((l00?8)|(3?3));//看門狗時鐘周期T=WTCNT*t_watchdog=4S〃看門狗喂狗rWTDAT=15000;rVVTCNT=15000;rVVTCON|=((1?5)|(1<<2));//enableWatchdogtimerangwatchdoginterrupt〃開中斷Enab1eIrq(BIT_WDT);/****watchdog_int****/void_irqwatchdog_int(void){〃清除中斷?rGPFDAT=rGPFDAT&-(l?7);De1ay(2023);rGPFDAT=rGPFDAT|(1?7);rGPFDAT=rGPFDAT&-(1<<6);Delay(2023);rGPFDAT=rG

溫馨提示

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

評論

0/150

提交評論