基于EasyARM2131开发板的蜂鸣器控制EasyARM2131开发板是广州周立功公司设计的EasyARM系列开发套件之一,采用了PHILIPS公司基于ARM7TDMI-S核、但电源供电、LQFP64封装的LPC2131,具有JTAG仿真调试、ISP编程等功能。开发板上提供了一些键盘、LED、蜂鸣器等常用功能部件,还具有RS232接口电路、I2C存储器电路。另外,用户也可以更换兼容的CPU进行仿真调试,如LPC2132、LPC2138、LPC2142等。灵活的跳线组合(开发板内使用的所有I/O均可断开连接),还有用户I/O接口,极大地方便了用户进行32位ARM嵌入式系统的开发实验。在EasyARM2131开发板上,接有一个蜂鸣器,由P0.7控制,通过跳线JP11选择连接。蜂鸣器控制电路如图所示。R2210KVDD3.3P0.7_PWM22A1B1C113BEEPP0.7R421KVDD3.3Q18550B1BUZZER图1.蜂鸣器控制电路电路参数请参考硬件原理部分的说明,如果跳线JP11选择蜂鸣器,当P0.7输出低电平时,蜂鸣器鸣叫,当P0.7输出高电平则停止鸣叫。实验利用P0.7的输出功能,控制蜂鸣器鸣叫。程序设置PINSEL0使P0.7连接GPIO,并通过IO0DIR将其设置为输出状态,然后通过IO0CLR和IO0SET清零和置位P0.7口,控制蜂鸣器,流程图见下图2所示,程序清单代码如程序清单所示。开始P0.7选择连接GPIO设置P0.7为输出状态置位P0.7口,关闭蜂鸣器延时延时清零P0.7,蜂鸣器鸣叫图2.蜂鸣器控制流程图程序清单:#include“config.h”#defineBEEP17//P0.7控制蜂鸣器,低电平蜂鸣/********************************************************************************函数名称:DelayNS()**函数功能:长软件延时**入口参数:dly延时参数,值越大,延时越久**出口参数:无*******************************************************************************voidDelayNS(uint32dly){uint32i;for(;dly0;dly-)for(i=0;i50000;i++);}/********************************************************************************函数名称:main()**函数功能:用P0.7控制BEEP,让BEEP鸣叫**调试说明:需要将跳线JP5和LED短接*******************************************************************************intmain(void){PINSEL1=0x00000000;//设置管脚连接GPIOIO0DIR=BEEP;//设置BEEP控制口为输出while(1){IO0SET=BEEP;//BEEP停止蜂鸣DelayNS(50);//延时IO0CLR=BEEP;//BEEP蜂鸣DelayNS(50);//延时}return0;}