狠狠干影院/欧美午夜电影在线观看/高黄文/国产精品一区二区在线观看完整版

嵌入式,綜合應用實驗報告,(1)

| 瀏覽次數:

 《 嵌入式系統與接口技術實驗》 》 綜合設計報告 班級

 13 物聯網

  姓名

  黃梓恩

 學號

  13 0804 0106

  指導教師

  沈蘭

 【 綜合應用實驗 目得】

 【 綜合應用實驗 題目】

 利用 GEC2410實驗板,設計并實現一個綜合應用系統 【 綜合應用實驗 要求】

 要用到已學過得所有 GEC2410模塊,包括:

 ? GPIO 端口控制:LED 燈模塊 ? 中斷控制:按鍵外部中斷,內部中斷(Timer or Tick time) ? UART串口:鍵盤輸入,顯示器輸出 ? PWM 定時器:定時中斷,tout0 輸出驅動蜂鳴器 ? 蜂鳴器:

 ? 實時時鐘:當前時間,鬧鐘,節拍中斷 ? 瞧門狗定時器:WTD 中斷,Reset 【相關理論知識】

 【 實現 方案】

 主函數

 # #in clu de ”2410add r、h" # #i nclu de ” 2410lib 、h " # #incl ude "def 、h” extern void wa tc hdo g_test (void ); extern

 void __irq watc hdog _int (v oid ); exter n v oi d __ir q Tic k_ Isr(void ); extern void

 O penRtc (v oi d); ex te rn voi d

 BUZZ ER _PWM_Te st(

 vo id ); ex te rn vo id

 E int_ Init (void); e ex tern vo id Ena bl e_Eint( void ); ext ern void

 watchdo g_test (voi d); exte rn char

 t ; in t Main (v oi d)

 {c? ch ar

 a,b ,c; gnahC? ange Cloc kDivid er (1 ,1) ;

  C hangeMPll Va lu e(0xa1,0x3,0x1 );

  Port_Init ();

  Uart_Se lect (0);

 U art_Init( 0,1152 00) ;

 Ei nt_In it ();/ / 外部中斷初始化

 O penRtc( );// 打開實時時鐘節拍中斷

 watch dog _test( ); traU? rt_ Printf(” **** ** ****H ELL O*** *** ** ** \n" );

  ?U? Uart_P rintf( "1 、Pl ano wh it LED\ n"); ; ?traU? t_ Print f("2 、Pi ano2\n” ); ?basiD?? abl eIrq (BIT _WDT) ;

  DisableI rq(BI T_ EI NT0) ;

  D Di sableIrq(BIT_EINT2 ); D?? Dis able Ir q(BI T_E INT8 _23 );//這 關這 4 個中斷, 為了在鍵盤沒按'1 ’或’3’之這 前拒絕產生這 4 種中斷

 traU? t_Printf("\n1 、2 、3\n ");

 1//琴子電鍵按板發開是就2,琴子電盤鍵是就?? 就是鍵盤電子琴,2就是開發板按鍵電子琴 ,3跑馬燈

  w while (1 )

 ? {

  aU=a?? ar t_ Getc h();Delay (300) ;

 ?? i f(a =="1’ )

 ?

 {

 ? raU? rt_Pr intf (" ES C b ack t o menu\n") ;

 ?

 B UZZE R_PWM_Test ();

  }?? ? i if(a= =’2 2" )

 {? {

 U? Uart_Prin tf("ESC b ack t o m en u\n” );

 ?

 E Enabl e_Ei nt();

  ?

 {

 cteG_traU=b? ch ();Dela y( 300 );

 ??

  (fi? (b ==ESC_KEY )b reak; ?

 }? }

 } }

  ?

 ??

 esle???ftnirP_traU? ntf(”Err ror !p lease

 t ry again") ; }? }

 } } #i nclude ”2410a addr 、h” #includ e "241 0l ib 、h " # #in cl ude ”d de f、h " / /使用K1按鍵觸發 EIN T0,EINT0- 〉GP F0 / /使用 K 3按鍵觸發 E INT 2,EINT2— —〉 〉G PF2 // 使用 K 5按鍵觸發 EINT11 ,EINT11 ->G PG3 // 使用 K7 按鍵觸發 E INT19 ,EINT 19- >GPG11 / //KSCAN0 ->GPE 11 i nt k=1 ; char t; c har *week[8]

 = {

 ” ","SU, N",” MON”, , ”TUE S”,

 "WED”, ,

 " THU RS ","F FR I”, , "SAT " } ; int yea r, mon th ,date ,weekd ay, hour, min,sec; v oi d __irq wa tchd og_int( vo id); v oid

 __irq Tic k_Isr (v oid ); void Ge t_R tc (void ); vo id Buz ze r_F re q_ Set( U32 f re q ); void Buz zer _Sto p( voi d ); v oid __irq Ein t0_IS R(void) ; v oid __irq Ein t2_ISR (void ); v vo id __irq

 Ein t11_ 19_ISR (vo id ); voi d w atchd og_ tes t(void )

 {

 / /in itialize inter ru pt re gis te rs 允許 Wa tch Dog 中斷

  Cl earPen ding(BIT_WDT);

 // 往中斷向量表填 W atc hD og 中斷向量

  pIS R_WDT =(uns ign ed)wat chdo g_ int;

  //P Pr res cale r

 val ue= 100 、clo ck division f ac tor=1 28

 //t_wat chdog= 1/[PCL K/(P rescaler value+1) /Division_fac tor ]=0、00 0025856

  //dis ab le w atchdog

  r WTCON=((100 〈〈8)| (3 <<3 ));

 // 瞧門狗時鐘周期 T=WTCNT *t_w atchdog=4S

  // 瞧門狗喂狗

  rWT DAT =1 5000;

  rWTCN T= 15 000 ;

  rWT CON |=((1 〈< 5)| (1<<2 ));//ena ble Wat chd og

 ti mer

 ang w atchdo og in te rrup t

  // 開中斷

  En ab leIrq (BIT_W DT );

  } /****

 watchd og_i nt

  ** **/ voi d __ir q watchd og _int (void )

 { {

  / /清除中斷

 r GP FDAT= rGPF DAT &~(1<< 7);Del ay (20 00);r GPF DAT=r GPFDAT| |( (1 〈<7 );

 r rG PF DAT=rGP FDAT&~ (1<<6);Delay(200)

 0); ;rGPFD AT=r GPFDAT |(1<〈6) ;

 rGPFDA T=rGPF DA T&~ (1< 〈5) ;Delay (2000 );rGP FD AT=r GP FD AT| (1<<5); FPGr? FDAT=rGPF DA T&~ (1<< 4) ;D el ay(2000) ;rGPFDAT =rG PFDAT| (1 〈<4 4);

 } void __i rq Tick_Is r(vo id) { { k= -k; =k(fi? ==1) Gr? GPFD AT=rG PFDAT& ~(1 5<<4 );

 if(k= =-1 )

 rGPFD AT =rGPFDA T| (1 5<<4); //_teG? _Rtc (); //? /Uar t_ Prin tf(”R RTC TIME :

 %4x—%02x- %02x - % s

 — %02x:%02 2x x:%02x\n" ,year ,month ,d at e, we ek [weekday] ,hou r,m in ,se c);

 Cl earPendin g(BIT _TIC K); } void OpenRtc(void )

 {

  pISR_TICK =(uns igned )Tick_Isr ;

  r TIC NT=0x BF; ;// Tick time

 inter rupt

 en ab le;T ick time cou nt value= =63

 En ableIrq(BIT_TIC K) ;/ /op en RTC TI CK

 INTERRUPT } } void Get _Rtc( void )

 {

  rRTCCON = 0x01; //RTC 讀寫使能,選擇 BCD , 時鐘、計數器,無復位,1/32768 8

 i f (rBCD YEAR

 = = 0 x9 9)

 raey? year = 0 x1999 ;

  else

  2x0

 = raey? 0x200 0 + rB CDY EA R;

  m m onth= rBCDMON;

  date=rBCD DATE ;

 adkeew? ay= rBCDD AY;

 DCBr=ruoh? CDHOUR;

 mi n= rBC DM IN;

 es? ec =rBCDS EC ;

  r RTC CON = 0x 0;

  / //RTC 讀寫禁止, 選擇 BCD 時鐘、計數器,無復位 位,1/ 3276 8 } vo id

 BU ZZER_P WM_ Tes t(

 void ) { {

 / //U 16 freq

 ; //? /Uart_ Print f( "\n K EY

 C ONTR OL B UZZER\n " );

 //rP_traU? rintf( "P re ss "ESC" key to E xit thi s program

 !\n\n”

 ) ;

  w hil e( 1

 )

 {

 8U? 8 k ey = Uart_Getch();/ /通過異步串行通道 U art 輸入按鍵值

 ? s switc h(key )

 {? {

 cas e ’1":B uzz er_Freq_Set( 200 ); ;rGPF DAT=rG PF DAT& ~(1〈<4 4) ;D elay (8 00 );rGPF DAT=rGP FDA T|( 1<<4);Buzze r_Sto p() ;br eak; ;

 ?? case ’2 ':B uzzer_Fr eq _Se t( 30 0 );rG PFDAT=r GP FD AT&~(1 <<5)

 );Del lay (800 );rGPFDAT=rGPFDAT|( 1< <5) ;B uzzer_S top ();br eak ;

 case

 ’ 3':B uzzer _Fr eq_Set( 50 0 );r GPFDA T=r GP FDAT&~(1 <<6);Delay(800 );rGPFDAT=rGPFD AT |(1< 〈6)

 ); Buz zer _Sto p();break;

  c? case

 "4’:Buzzer_Fre q_S et( 8 00 );rG PFDA T=rGPFDA T&~( 1〈〈7); ;D elay (80 0);r GPFD AT=rG PFDAT |(1< 〈7 );Buzzer_ St op();break; ;

 ? ac? ase '5":Buzze r_Freq _Se t(1000 );r GPFDAT =rGP FDAT& ~(1<<4 );De el ay(800 );rG PF DAT =rGPFDAT |(1< 〈4 ); Buzz er_Sto p();br eak ;

 6’ esac?? 6":B uz zer_Fr eq_Se t(12 00 );rG PF DA T=rGPFD AT &~ (1<<5); ;Dela y(800 );rGPFD AT=r GPF DAT |(1 <〈5);Bu zz er _Stop() ;br; eak; ??:’7’ esac? :B uz zer _Fre q_Set (1400);r GPFD AT=rGPFDAT &~ (1<< 6);Del ay( (200 );rGP FD AT =rGPFD AT| (1 <〈6);Bu zzer_St op (); brea k;

 }?? /? //Buzze r_Freq_S et ( freq

 )

 ;

  / /U art_P rintf( ”\ tF re q = % d\n ", freq

 )

 ;/ /通過異步串行通道Ua rt 輸出頻率 (fi?? (key==ESC_K EY)

  {? ?? Bu zz er_S top ();// 停止蜂鳴器

  {//b? {break; } //??? /U art_Pr intf(”\nCh oice

 ag ain \n”)

 );

 er?? eturn ;

 }?}? } } } voi d Bu zzer_Freq _Se t( U 32 freq )

 {

 rGPBCON = rG PB CO N & ~(3 <〈0 )|(1〈<1 );/ /s et GPB0

 as

 tout t0, pwm ou tp ut CTr? rTCFG0

 = rTCFG0 & ~0xff |15 ; / /presc aler = 15

 rTCFG1

 = rTC FG1

 & ~0 xf |2 ;//divider = 1 /8

 r rTCN TB0 = (PCLK〉 〉>7)/f req; //rTCNTB0=PCLK/ {(p resc aler+1)

 )

 * d ivider * freq} 0BTNCTr = 0BPMCTr? 0> >1 ; / /占空比50% //d? disa ble deadzo ne, auto -re loa d,

 i nv -of f, up date TCNTB 0&TCM PB0, sta rt ti mer 0

 rT CON = rT CON & ~0x1f |(0 〈<4 )|(1< 〈3 )|(0<<2 )|(1 <〈1)

 )|(1 ); CTr? TCO N & = ~(1<< 1); //c?? clear

 ma nua l u pdate bit } } v vo id Buzz er_ Stop( voi d ) { { =|

 NOCBPGr? |= 1 ;

 rGPBC ON =

 rGPBCON

 & ~ 3|1;

 ? / /set

 GPB0

 a s ou tput &

 TADBPGr? &= ~1;/ /out put 0 } / ***** **** **

 外部中斷初始化

 *** ******** */ v oid E int_I nit (void) {

  // 設置GPE11 為輸出 0 PGr? PECON

 = (rGPECO N|(3 〈<22 )) & ~(2<<2 2); r? rGPEU P

 |= (1< <11); Gr? GP EDAT &= ~(1<< 11) ;

 rGP FCON = rG PFCO N &

 ~ (3)|( 1<〈1) ;

  //GPF0 設置為EINT0

 rGP FCO N = rGPFCO N

 &

 ~(3< 〈4) |(1<<5; );/

  ? //GPF2 設置為EINT2 ?

 rG PG CON =

 r GP GC ON & ~(3 <〈6)| (1 〈〈7; );/

  ? //G PG3 設置為EI IN T11

 rG PG CON =

 rGP GCON & ~(3 〈<22 )|(1<<23); //GPG 11 設置為 為 EIN T1 9

  rGPF UP|= (1< <0);

  //disa bl e GP F0

 pul l up

 rGPF UP|= (1< <2);

 // dis ab le GPF2 p ul l up

  r GPGUP |=(1〈<3 );

  //disable G PG3 pul l up

 rGPGUP |= (1 〈<1 1);

 //d is ab le GPG11 pull u p r? rEX TI NT0 = (rEXTIN T0 & ~(7〈<0 ))|( 2〈〈0);

  // EIN T0 -〉fall ing g

 ed ge trigge red TXEr? TIN T0 = (rEXTINT 0 & ~ (7)

 <<8)) |(2<<8);

 / /EIN T2 〉 -〉falling edge

 t tr ig gered XEr? XTINT1 =

 (r EXTINT1

 &

 ~( 7<<12) )|(0 x2<<12);

 //EIN T11— —〉 〉fa lling g

 ed ge trigg ered

 r rE XTINT2 = (rEXTIN T2 & ~(7 <<12 ))|(0x2<<12);

 //E IN T19- ->fallin g

 e dg e trig gered

  pISR _EI NT0 =

 (uns ign ed)Eint0 _ISR ;

  pI SR_EIN T2

 = (uns ig ned )Ei nt 2_ISR;

 pISR_EIN T8_2 3 =

 ( unsigned )Ein t1 1_19_ IS R; } } /* ***** *****

  開外部中斷

 ** ***** *****/ void Enab le_Eint(voi d) { {

 rEINT PEND = 0 xf fffff ; / /to clear

 t he previous

 pendin g sta tes

 rSRC PND |=

 BIT _EINT 0|B IT_EINT2 |BIT _EINT 8_23;

 r INTP ND |= BIT_E INT 0|B IT_EIN T2|BIT_EI NT 8_23 ;

 rEIN TMA SK= ~( (1 〈<11 )|(1 〈<19)

 )

 );

 //rI NTM SK= ~( BIT_E INT0|BI T_ EINT2 |BIT _E IN T8 _23 );

  EnableIrq(BIT_EINT0 );

 Ena bleI rq (BIT_EINT2 );

 Enabl eIrq(BIT_EIN T8_ 23) ; } /* *** *** *** *

  外部中斷服務程序

 * ****** *****/ vo id __irq E int0_ISR(v oid )

 {

 Cle ar Pending(BI T_ EI NT0 );

 Buzz er _F re q_Set( 300 )

 ;// 修改PMW 頻率

  D ela y(800);Bu zzer_Stop() ; raU? art_Printf("F req =300\n ")

 ;//通過異步串行通道Uart 輸出頻率 } voi d __irq Eint2 _ISR (void) { { ?

 Clea rPendi ng (BIT_EI NT2) ;

 Buzze r_Fr eq_Se t(

 500 )

 ;// 修改 PMW 頻率

 De lay( 800) ;Buzzer_Stop( );

 U Uart_Pr intf( ”Freq=500\ n” )

 ;/ /通過異步串行通道 Ua rt輸出頻率 } v oid _ _irq Ein t11 _19_ISR (v oid) { {

 if(rE INTPEND

 & (1<<1 1))

 { {

  Buzzer_Fre q_ Set (

 8 00 ) ;// 修改 PMW 頻率

 De la y(800 );Buzzer _Sto p();

 raU? Uart _Pri ntf ("Fre q=8 00 \n"

 )

 ;// 通過異步串行通道 Uar t輸出頻率

 r? rEINTPEND=( 1<<11 );// 清除子登記,方便下次中斷, 方法比較特別,在對應為

 寫 寫 1 將它清為 0

 ClearPen din g(BIT_EINT8_ 23);

 }

  el se

 if (rEINT PEND & (1< 〈19 ))

  {

  Buzz er_Fre q_Set( 100 0 )

 ;/ /修改PM W頻率

  eD? elay(8 00 ); Buz zer_ Stop( );

 ? Uart _Prin tf( "Freq= 1000 \n” ”

 )

 )

 ;/ /通過異步串行通道 U ar t輸出頻率

 IEr? INTPEND=(1 <<19 );

 ClearP ending(BIT _EIN T8_23 );

 }

  el se

  {

  aU? art_Print f(" oth ers EN Ts are occ ur red\n" );

 PTNIEr? PEND=0xffffff;

  Cl earP en di ng( BIT _E INT8 _23);

  } } } 【】果結及程過現實? 【實現過程及結果】

 擇 開始菜單,選擇 1, 為鍵盤電子琴,不同按鍵會有不同得燈亮起

 按 按 E SC 鍵返回選擇菜單,若按了錯誤按鍵, 系統提示錯誤, 擇 選擇 2 為開發板按鍵電子琴, 會顯示您所按按鍵得頻率

  【設計總結

 【參考文獻】

 1 、 2 、 3 、

推薦訪問: 嵌入式 實驗 報告

【嵌入式,綜合應用實驗報告,(1)】相關推薦

工作總結最新推薦

NEW
  • 同志們:今天這個大會,是市委全面落實黨要管黨、從嚴治黨要求的一項重大舉措,也是對縣市區委書記履行基層黨建工作第一責任人情況的一次集中檢閱,同時是對全市基層黨建工作的一次再部署、再落實的會議。前面,**

  • ***年,我認真履行領班子、帶隊伍、抓黨員、保穩定的基層黨建工作思路,以學習貫徹習近平新時代中國特色社會主義思想和黨的十九大歷次全會精神為主線,以市局基層黨建工作考核細則為落腳點,落實全面從嚴治黨主體

  • 根據會議安排,現將2022年履行抓基層黨建工作職責情況報告如下:一、履職工作特色和亮點1 突出政治建設,著力在思想認識上提高。牢固樹立抓黨建就是抓政績的理念,以“黨建工作抓引領、社區治理求突破,為民服

  • 2022年以來,在**黨委的正確領導下,堅持以習近平新時代中國特色社會主義思想為指導,深入學習宣傳貫徹黨的二十大精神,以黨建工作為統領,扎實開展夯實“三個基本”活動,以“四化四力”行動為抓手,聚力創建

  • 各位領導,同志們:根據會議安排,現就2022年度抓基層黨建工作情況匯報如下:一、主要做法及成效(一)強化政治引領。一是不斷強化理論武裝。堅持通過黨組會、中心組學習會和“三會一課”,第一時間、第一議題學

  • 2022年度抓基層黨建工作述職報告按照黨委工作部署,現將本人2022年度抓基層黨建工作情況報告如下:一、2022年度抓基層黨建工作情況(一)旗幟鮮明講政治將旗幟鮮明講政治放在全局發展首要位置,積極開展

  • 2022年,是我在數計系黨總支書記這個新崗位上度過的第一個完整的工作年度。回首一年來在校黨委的正確領導下,與數計系領導班子和全體師生共同走過的日子,艱辛歷歷在目,收獲溫潤心田。作為黨總支書記,我始終牢

  • 按照考核要求,現將本人一年來,作為統戰部長履行職責、廉潔自律等方面情況報告如下:一、著眼增強政治素質,不斷深化理論學習堅持把旗幟鮮明講政治作為履職從政的第一位要求,帶領統戰系統干部堅決擁護“兩個確立”

  • **年,緊緊圍繞黨工委、管委會的決策部署,全體人員團結協作、凝心聚力,緊扣黨工委“**”基本工作思路,全力開拓進取,認真履職盡責,圓滿完成各項工作任務。一、個人思想政治狀況檸檬文苑www bgzjy

  • 按照縣委關于開展抓基層黨建述職評議會議的有關要求,經請示縣委組織部同意,今天,我們在此召開2022年度基層黨組織書記抓基層黨建述職評議會議。1 首先,請**黨委書記,**同志述職。**黨委能夠主動研究