欢迎访问有用文档网!

当前位置: 有用文档网 > 述职报告 >

嵌入式,综合应用实验报告,(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 、

推荐访问:嵌入式 实验 报告

热门排行Top Ranking

弦振动实验报告

弦振动得研究 一、实验目得 1、观察固定均匀弦振动共振干涉形成驻波时得波形,加深驻波得认识。 2、了

宣传委员述职报告12020 幼儿园党支部宣传委员述职报告

下面是小编为大家精心整理的宣传委员述职报告12020幼儿园党支部宣传委员述职报告文章,供大家阅读参考。宣传委员述

党建工作现场述职会上讲话 公安局长在党建工作现场会上的讲话

下面是小编为大家精心整理的党建工作现场述职会上讲话公安局长在党建工作现场会上的讲话文章,供大家阅读参考。党建工作现场

支部宣传委员述职述廉报告范例 幼儿园党支部宣传委员述职报告

下面是小编为大家精心整理的支部宣传委员述职述廉报告范例幼儿园党支部宣传委员述职报告文章,供大家阅读参考。支部宣传

政治生态评估报告5篇

可能会捆绑住经办人员的手脚,不利于业务工作的开展。致使个别中层干部主体责任压力传导出现能量损耗;个别

2021年领导述职报告合集2020 县领导述职报告

下面是小编为大家精心整理的2021年领导述职报告合集2020县领导述职报告文章,供大家阅读参考。2

工商局监察室主任述职述廉报告

工商局监察室主任述职述廉报告 第一篇:工商局监察室主任述职述廉报告 我叫haoword,中共党员,现

党支部书记个人述职报告 对村党支部书记述职报告的点评

下面是小编为大家精心整理的党支部书记个人述职报告对村党支部书记述职报告的点评文章,供大家阅读参考。党支部书记个人

结合乡村振兴战略人才工作述职报告 乡村振兴工作员年度述职

下面是小编为大家精心整理的结合乡村振兴战略人才工作述职报告乡村振兴工作员年度述职文章,供大家阅读参考。结合

财务分析课程报告4篇

财务分析课程报告4篇财务分析课程报告篇1一年来,在领导和同事们的的支持帮助和指导下,加上自身的不断努

个人安全生产履职报告[安全生产述职报告] 党委书记安全生产履职报告

下面是小编为大家精心整理的个人安全生产履职报告[安全生产述职报告]党委书记安全生产履职报告文章,供大家阅读参

企业年度工作总结报告范文13篇

企业年度工作总结报告范文13篇企业年度工作总结报告范文篇1时光飞逝,转眼已经毕业一年了,我顺利地完成