..信息工程学院实验报告课程名称:传感器原理及应用实验项目名称:实验四声音传感器实验实验时间:2016.10.21班级:姓名:学号:一、实验目的1.学习CC2530单片机GPIO的使用。2.学习声音传感器的使用二、实验原理1.CC2530节点与三轴加速度传感器的硬件接口成绩:指导老师(签名):..(1).声音传感器模块(MIC)引脚GND:外接GNDDO:数字量输出接口(0和1)+5V:外接5V电源(2).传感器模块与CC2530模块之间的连接传感器模块CC2530模块GNDGNDDOP1_4+5VVDD(5V)2.GPIO(1).简介CC2530单片机具有21个数字输入/输出引脚,可以配置为通用数字I/O或外设I/O信号,配置为连接到ADC、定时器或USART外设。这些I/O口的用途可以通过一系列寄存器配置,由用户软件加以实现。I/O端口具备如下特性:●21个数字I/O引脚●可以配置为通用I/O或外部设备I/O●输入口具备上拉或下拉能力●具有外部中断能力。这21个I/O引脚都可以用作于外部中断源输入口。因此如果需要外部设备可以产生中断。外部中断功能也可以从睡眠模式唤醒设备。(2).寄存器简介本次实验中主要涉及到GPIO的寄存器如下:..3.MIC声音传感器(1).概述声音传感器的作用相当于一个话筒(麦克风)。它用来接收声波,显示声音的振动图象。但不能对噪声的强度进行测量。该传感器内置一个对声音敏感的电容式驻极体话筒。声波使话筒内的驻极体薄膜振动,导致电容的变化,而产生与之对应变化的微小电压。这一电压随后被转化成0-5V的电压,经过比较器转换数字信号后,被数据采集器接受,并传送给计算机。传感器特点:●具有信号输出指示。●输出有效信号为低电平。●当有声音时输出低电平,信号灯亮。应用范围:●可以用于声控灯,配合光敏传感器做声光报警,以及声音控制,声音检测的场合。(2).使用方法本实验利用CC2530的GPIO读取声音传感器模块的检测结果输出端,当检测到一定的声音时,此输出端为低电平;未检测到一定的声音时,此输出端为高电平。因此在实际应用中可以根据这种情况判断是否有声音在传感器附近产生。4.程序流程..三、实验内容与步骤1.将CC2430仿真器的一端JTAG接口与一个CC2530模块相连,并打开CC2530节点的电源,再将CC2430仿真器的另一端用USB接口与PC计算机相连。2.用MiniUSB线将CC2530节点与计算机的USB口连接起来后,打开串口调试器软件,设置波特率57600,校验位None,数据位8,停止位1,然后点击打开串口按钮,如下图所示:说明:串口号可以在设备管理器看到,具体方法如下图所示:..3.用IAREmbeddedWorkbenchfor80518.10打开配套传感器实中的“SerialPort.Edition\18.IRDMS\Main.eww”工程文件。4.点击IAR功能菜单上的绿色下载按钮,进入程序下载页面,如下图所示:..5.程序下载完成后,点击IAR开发环境中的运行程序按钮运行程序,如下图所示:此外,也可以通过点击其它按钮实现对当前程序的调试(单步、断点、暂停、步入等功能)。6.扩展实验为了能够更加直观地观察到传感器工作的状况,在实验过程中可以利用光盘中配套的上位机软件CurveDisplay来观察传感器的数据曲线。操作步骤(1).将仿真器的一端JTAG接口与一个CC2530模块相连,并打开CC2530节点的电源,再将仿真器的另一端用USB接口与PC计算机相连。(2).用MiniUSB线将CC2530节点与计算机的USB口连接起来后,打开配套传感器实验中的“CurveDisplay\Curve3Display.exe”上位机软件,选择正确的串口号后,再设置波特率57600,校验位None,数据位8,停止位1,最后点击打开连接按钮,如下所示:(3).用IAREmbeddedWorkbenchfor80518.10打开配套传感器实验中的“Curve.Edition\10.ADXL345\Main.eww”工程文件,然后通过IAR将程序下载到CC2530模块中。程序下载完成后,点击IAR开发环境中的运行程序按钮运行程序。四、实验结果及分析:1.程序正常运行后,每采集一次传感器检测结果,串口信息更新一次,如下图所示:如下图所示:..2.在实验过程中,对着传感器说话或者吹气,当有声音产生时,传感器模块上的红色LED被点亮,当无振动产生时,红色LED熄灭。3.扩展实验现象(1).程序正常运行后,在CurveDisplay软件中可以观察到传感器的数据曲线,如下图所示:(2).在实验过程中,用手移动或旋转CC2530节点,可以在Curve3Display软件上的传..感器数据曲线也发生相应的变化,如下图所示:五、实验总结:通过这次实验,我熟悉了对CC2530单片机ADC模块的使用,并学会了的了声音传感器的使用。在实验过程中,通过自己去熟悉程序代码并对其按键功能进行扩展,实现按键控制传感器的采样,让我又学到了很多内容。六、源程序清单(加上必要的注释)核心代码1.初始化声音传感器voidInitSound(void)//初始化声音传感器{//引脚(P1_6,通用IO,输入)P1SEL&=~0x40;P1DIR&=~0x40;}2.主函数voidmain(void){//初始化时钟InitClock();//初始化IOInitGPIO();//初始化串口USART0..InitUART();//初始化声音传感器InitSound();//关闭GPIO_RLED和GPIO_GLEDGPIO_RLED=0;GPIO_GLED=0;//发送串口初始化成功消息UART_SendStr(\nUSART0InitSuccessfully!\n);while(1){//红灯:点亮--检测到人体,熄灭--未检测到人体if(ckFlag==1){//点亮GPIO_RLEDGPIO_RLED=1;//发送消息提示未检测到声音UART_SendStr(Sound:Detected\n);}else{//关闭GPIO_RLEDGPIO_RLED=0;//发送消息提示未检测到声音UART_SendStr(Sound:None\n);}//绿灯:点亮--开始检测,熄灭--停止检测if(SOUND_DETECT==0){//关闭GPIO_GLEDGPIO_GLED=0;}else{//点亮GPIO_GLEDGPIO_GLED=1;ckFlag=0;}//延时200msDelayXms(200);}}3).中断处理函数//P1外部中断服务函数#pragmavector=P1INT_VECTOR__interruptvoidP1_ISR(void){..IRCON2&=~0x08;//清除P1中断标志if(P1IFG&0x40){ckFlag=1;P1IFG&=~0x40;//清除P1.6中断标志}}