




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
./实验一软件安装和工程建立一、实验目的1.熟悉IARFor8051的安装;2.掌握开发环境的配置;3.掌握工程文件的建立。二、实验任务1.IARFor8051的安装;2.根据需要配置开发环境;3.工程文件的使用,如建立空工程,选择Device,选择Code和MemoryModel,配置linker,配置仿真器和添加文件到工程;三、实验步骤等〔一IARFor8051安装IARfor8051软件时开发TIZ-Stack协议栈应用程序的必备软件,所有程序的编译、仿真调试均需使用该软件,当前最新版的Z-Stack协议为ZStack-CC2530-2.5.1a,配套IAR版本V8.101.1安装文件程序安装包以及破解文件位于开发套件根目录下的软件工具文件夹下,如下图都解压,在目录找到安装文件,双击开始安装,如下图:点击第二个选项InstallIAREmbeddedWorkbench开始安装,然后点击Next,接受license,再点击next。此时在破解文件目录找到破解文件,并且双击运行,如果是WIN7系统,请使用管理员权限运行,如下图按照图示步骤,选择好需要破解的IAR版本,然后获取ID,最后生成注册码,然后回到安装程序,拷贝相应的序列号到需要的地方,然后在点击next,继续安装过程。点击完next后,选择全部安装。安装目录就选择默认的安装目录,最好不要修改,否则在编译程序的过程中有可能出现找不到库文件的错误,如下图。然后一路next,直至安装过程结束。安装结束后,在开始->程序目录中找到IARFOR8051,并打开程序打开界面如下1.2配置开发环境开发环境安装好后,需要对开发环境进行配置,这样能更好的方便开发,具体配置过程如下:打开Tools->options选项,在editor配置项中,把TabSize与Indentsize均配置为4,如下图然后在该配置项下的colorsandFonts,配置字体大小与显示颜色,如下图:
其中语法配色在本环境中配置如下<其中字体配置为CourierNew,Size=12>:名称配色样式CKeywordBlueBoldStringsGreenNormalCharGreenNormalPreprocessorBlueNormalInteger<dec>RedNormalInteger<oct>RedNormalInteger<hex>RedNormalFloatRedNormalC++commentGreenNormalCommentGreenNormalUserKeywordBlueBoldCompileKeywordBlueBoldAsmKeywordBlueBoldAsmcommentGreenNormal所有的配置好后,点击确定保存配置,自此开发环境配置结束,下面开始正式学习CC2530的容。〔二建立工程在开始实验前首先需要建立一个新的工程,建立过程如下:2.1、建立空工程在Project菜单下点击CreatNewProject然后选择建立空工程点击OK后,选择工程建立的目录,例如我们建立了一个名为"1、LED"文件夹,把工程建立在此文件夹下,该文件夹在电脑的位置根据自己习惯定,输入工程名称led,然后保存。2.2、选择Device首先在Workspace工作区右键点击工程,选择Options,如下图然后选择Device,本开发板中单片机为TI的CC2530F256,选择如下图:然后选择CC2530F256,如下图2.3、选择Code和MemoryModel在code类型中有Near和Banked两项可选择"Near"当不需要Bank支持是可以选择Near,例如,你只需要访问64Kflash空间的时候,不需要更多的flash空间,比如你使用的是CC2530F32或CC2530F64,或者使用的CC2530F256但并不需要那么大的flash空间时,可以选择Near。"Banked"选择该项时标明你需要更多的空间能够仿真CC253xF128或者CC253xF256的整个Flash空间。默认Nearcodemodel中的datamodel是Small,默认的Banked,datamodel为Large,datamodel决定编译器或者连接器如何使用8051的存来存储变量,选择smalldatamodel,变量典型的存储在DATA存空间,如果使用Largedatamodel,变量存储在XDATA空间。在CC2530用户手册和IAR8051编译器参考手册中会详细描述变量存空间。在这里,重要的事情是,8051使用不同的指令来访问variousmemoryspaces访问IDATA,一般情况下,比仿真XDATA要快,但通常XDATA的空间会比IDATA大。在Z-Stack协议栈中,使用largememorymodel来支持CC2530F256,这样协议栈可以存储在XDATA区域,以上设置结束后,如下图所示。在Bankedcodemodel中,有一些额外的选项需要注意,选择CodeBanktab,如下图,CC2530使用7个codebanks,为了访问整个256K的Flash空间,Numberof必须设置为0x07,Register0x9F是CC2530的FMAP寄存器,用来控制当前那个codebank映射到8051的地址空间,第三个Register未使用,最好设置0xFF,设置如下图。然后选择使用的库,如下图2.4、配置linker下一步需要配置IDE怎样使用Linker来程序代码。在左边的选项中选择Linker,并在右边的选项卡中选择Config一页,在LinkerCommandfile中复选Overridedefault,例如,我们选择lnk51ew_CC2530F256_banked.xcl,banked表示使用bankedcodemodel。默认路径为:$TOOLKIT_DIR$\config\devices\TexasInstruments\lnk51ew_CC2530F256_banked.xcl2.5、配置仿真器在Debug选项中选择TI的仿真器,其他都默认配置即可至此工程已经配置完毕,我们可以开始在这个环境中编写我们自己的应用了。2.6、添加文件到工程在工具栏中点击新建文件,此时文件还没有保存,然后在点击工具栏上保存按钮,输入文件名,例如我们新建一个led.c的文件,选择保存在我们的工程目录下,如下图:但此时led.c文件还一个独立的文件,还没有加入到工程,进行如下操作把该文件加入到工程中去,然后编译文件,虽然本文件还是个空文件,编译是不能通过的,因为没main函数,所以我们在led.c文件中加入如下代码即可voidmain<void>{}在工程名上点击右键->make此时会提示保存工程,按如下操作即可。在输出信息窗口可以得到如下结果表示编译成功,此时点击工具栏上的downloadanddebug按钮,即可开始仿真程序。至此我们可以在此文件添加其他的代码,或者在该工程中添加其他文件,方法都如上所述。实验二LED灯控制实验一、实验目的:熟悉CC2530的I/O口的基本操作;二、实验任务:使用I/O口来控制LED灯,如点亮LED灯,控制LED灯闪烁;三、实验设备:仿真器1台,ZigBee模块1块,USB连接线1根;四、实验步骤等1、实验介绍本次实验的目的是让用户学会使用CC2530的I/0来控制外设,本例以LED灯为外设,用CC2530控制简单外设时,应将I/O设置为输出。实验设备:仿真器1台,ZigBee模块1块,USB连接线1根。底板上共两个LED,电路连接如下图由电路可知,低电平点亮LED灯。实验中操作了的寄存器有P1SEL,P1DIR,具体说明如下:P1SEL〔P1寄存器位号位名复位值操作性功能描述7:0P1[:0]000读/写P1端口普通功能寄存器,可位寻址P1DIR〔P1方向寄存器位号位名复位值操作性功能描述7DIRP1_70读/写P1_7方向0输入1输出6DIRP1_60读/写P1_6方向0输入1输出5DIRP1_50读/写P1_5方向0输入1输出4DIRP1_40读/写P1_4方向0输入1输出3DIRP1_30读/写P1_3方向0输入1输出2DIRP1_20读/写P1_2方向0输入1输出1DIRP1_10读/写P1_1方向0输入1输出0DIRP1_00读/写P1_0方向0输入1输出2、示例源码如下:led1.c点亮led1#include<ioCC2530.h>#defineLED_1P1_0voidInitLedGPIO<void>{ P1DIR|=0x01;//将P1_0定义为输出 LED_1=1;//LED1off}voidmain<void>{while<1>{InitLedGPIO<>;LED_1=0;}}Led2.c将Led2灯闪烁#include<ioCC2530.h>#include<stdint.h>#defineLED_2P1_1voidInitLedGPIO<void>{ P1DIR|=0x02;//将P1_1定义为输出 LED_2=1;//LED2off}voiddelay<uint16_tn>{ uint16_ttt; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>;}voidmain<void>{InitLedGPIO<>;while<1>{LED_2=!LED_2;delay<50000>;}}3、实验相关函数解释voiddelay<uint16_tn>{ uint16_ttt; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>;}函数功能是软件延时,在下面学习了定时器后,可以使用定时器进行精确的延时。4、实验要求〔1建立工程,编写代码点亮LED2〔2建立工程,编写代码同时实现LED1、LED2闪烁实验三按键控制LED实验一、实验目的:增加对IO口设置的认识;二、实验任务:按下K1键LED1状态取反,按下K2键LED2状态取反;三、实验设备:仿真器1台,ZigBee模块1块,USB连接线1根;四、实验步骤等1、实验介绍:电路连接如下图2、实验相关寄存器实验中相关的寄存器除LED相关的外,还有有P0SEL,P1SEL,P0DIR,P1DIR,P0INP,P1INP。前面三个寄存器在实验1已经有详述,这里不再重复介绍。下面为P0INP,P1INP的描述3、实验源码key控制LED1#include<ioCC2530.h>#include<stdint.h>#defineLED_1P1_0#defineKEY_1P0_1voidInitLedGPIO<void>{P1DIR|=0x03;//IO口为输出LED_1=1;//关闭LED1灯}voidInitKeyGPIO<void>{P0DIR&=~0x01;//P0_1口为输入}voiddelay<uint16_tn>{ uint16_ttt; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>;}uint8_tget_key<void>{if<KEY_1==0>{delay<200>;//delaysometimeavoidMechanicalditherif<KEY_1==0>{while<KEY_1==0>;//WaituntilReleasereturn1;}}return0;}voidmain<void>{uint8_tkey; InitLedGPIO<>;InitKeyGPIO<>; while<1> {key=get_key<>;if<key==1>LED_1=!LED_1; }}4、实验要求〔1建立工程,编写代码实现KEY2控制Led2的亮灭〔2建立工程,编写代码同时实现KEY1控制Led1,KEY2控制Led2的亮灭实验四外部中断实验一、实验目的:增加对IO口设置的认识;二、实验任务:使用中断方式,按下K1键LED1状态取反,按下K2键LED2状态取反;三、实验设备:仿真器1台,ZigBee模块1块,USB连接线1根;四、实验步骤等1、实验介绍:电路连接如下图2、实验相关寄存器:实验中操作了的除前面使用的寄存器外,中断涉及到的寄存器有P0IEN,P0CTL,IEN2,P0IFG等寄存器。P0IEN〔P0口中断掩位号位名复位值可操作性功能描述7P0_7IEN0读/写P07中断掩码0关中断1开中断6P0_6IEN0读/写P06中断掩码0关中断1开中断5P0_5IEN0读/写P05中断掩码0关中断1开中断4P0_4IEN0读/写P04中断掩码0关中断1开中断3P0_3IEN0读/写P03中断掩码0关中断1开中断2P0_2IEN0读/写P02中断掩码0关中断1开中断1P0_1IEN0读/写P01中断掩码0关中断1开中断0P0_0IEN0读/写P00中断掩码0关中断1开中断PICTL〔P口中断控制寄存器位号位名复位值可操作性功能描述7-0读预留6ADSC0读/写输出驱动能力选择0最小驱能力,1大驱动能力5P2IEN0读/写P2〔0-4断使能位0关中断1开中断4P0IENH0读/写P0〔4-7断使能位0关中断1开中断3P0IENL0读/写P0〔0-3断使能位0关中断1开中断2P2ICON0读/写P2〔0-4中断配置0上升沿发,1下沿触发1P1ICON0读/写P1〔0-7中断配置0上升沿发,1下沿触发0P0ICON0读/写P0〔0-7中断配置0上升沿发,1下沿触发P0IFG〔P0口中断标志寄存器位号位名复位值可操作性功能描述7:0P0IF[70]000读/写P〔0-7断标志位在中断条件发生,相应位自动置1IEN1〔中断使能寄存器位号位名复位值功可操作性功能描述7:6--00读没有,读出为005P0IE0读/写端口0中断使能0:中断禁止1:中断使能4T4IE0读/写定时器4中断使能0:中断禁止1:中断使能3T3IE0读/写定时器3中断使能0:中断禁止1:中断使能2T2IE0读/写定时器2中断使能0:中断禁止1:中断使能1T1IE0读/写定时器1中断使能0:中断禁止1:中断使能0DMAIE0读/写DMA传输中断使能0:中断禁止1:中断使能IEN2〔中断使能寄存器位号位名复位值可操作性功能描述7:6-00读没有,读出为05WDTIE0读/写看门狗定时器中断使能0关中断1开中断4P1IE0读/写P1中断使能使能0关中断1开中断3UTX1IE0读/写串口1发中断使能0关中断1开中断2UTX0IE0读/写串口0发中断使能0关中断1开中断1P2IE0读/写P2口中断使能0关中断1开中断0RFIE0读/写普通射频中断使能0关中断1开中断3、示例源码〔使用中断,用按键K1控制LED1灯亮灭按照表格寄存器容,我们对LED1和按键K1,也就是P1.0和P0.1口进行配置,当P1.0输出低电平LED1被点亮,按键K1按下时P0.1产生外部中断从而控制LED1的亮灭,具体配置如下:LED1初始化:外部中断初始化:<3>中断函数:<4>示例源码:#include<ioCC2530.h>#include<stdint.h>#defineLED_1P1_0#defineKEY_1P0_1voiddelay<uint16_tn>{ uint16_ttt; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>;}voidInitLedGPIO<void>{P1DIR|=0x01;//P1.0定义为输出LED_1=1;//LED1灯关闭}voidInitKeyGPIO<void>{P0DIR&=~0x02;//设置K1:P0.1asinput定义为输入P0IEN|=0x02;//P0.1设置为中断方式PICTL|=0x01;//下降沿触发IEN1|=0x20;//端口0中断使能P0IFG=0x00;//中断标志位初始化EA=1;//开总中断}#pragmavector=P0INT_VECTOR//中断格式:#pragmavector=中断向量//紧接着是中断处理程序__interruptvoidP0_ISR<void>{delay<2000>;//去抖动LED_1=!LED_1;//改变LED1状态P0IFG=0;//清中断标志P0IF=0;//清中断标志}voidmain<void>{ InitLedGPIO<>;//调用初始化函数InitKeyGPIO<>; while<1>;//等待外部中断}4、实验要求请实现上述示例源码功能,并编写代码使用中断,实现K2控制Led2灯的亮灭,完成程序的下载和实现。实验五定时/计数器实验〔T1自由运行模式实验目的:了解定时器1的基本上使用方法二、实验任务:用定时器1来改变LED灯的状态,T1每溢出一次,两个led闪烁取反,使用定时器中断。三、实验设备:仿真器1台,ZigBee模块1块,USB连接线1根;四、实验步骤等1、实验介绍:定时器包括一个16位计数器,在每个活动时钟边沿递增或递减。活动时钟边沿周期由寄存器位CLKCON.TICKSPD定义,它设置系统时钟的划分,提供了从0.25MHz到32MHz的不同的时钟标签频率〔可以使用32MHzXOSC作为时钟源。这在定时器1中由T1CTL.DIV设置的分频器值进一步划分。这个分频器值可以从1、8、32或128。因此当32MHz晶振用作系统时钟源时,定时器1可以使用的最低时钟频率是1953.125Hz,最高是32MHz。当16MHzRC振荡器用作系统时钟源时,定时器1可以使用的最高时钟频率是16MHz。计数器可以作为一个自由运行计数器,一个模计数器或一个正计数/倒计数器运行,用于中心对齐的PWM。可以通过两个8位的SFR读取16位的计数器值:T1CNTH和T1CNTL,分别包含在高位字节和低位字节中。当读取T1CNTL时,计数器的高位字节在那时被缓冲到T1CNTH,以便高位字节可以从T1CNTH中读出。因此T1CNTL必须总是在读取T1CNTH之前首先读取。对T1CNTL寄存器的所有写入访问将复位16位计数器。当达到最终计数值〔溢出时,计数器产生一个中断请求。可以用T1CTL控制寄存器设置启动并停止该计数器。当一个不是00值的写入到T1CTL.MODE时,计数器开始运行。如果00写入到T1CTL.MODE,计数器停止在它现在的值上。2、实验相关寄存器在前面介绍的寄存器在这就不在介绍,在这里需要时钟控制的相关的寄存器CLKCOMMD与CLKCONSTA,具体介绍如下:另外还有中断使能控制器IEN1:定时器1的控制寄存器T1CTL3、示例源码用定时器1来改变LED1灯的状态,T1每溢出一次,LED1闪烁取反,使用定时器中断:系统时钟设置:该函数实现的功能是切换外部时钟,使用外部时钟32M晶体定时器T1设置:该函数把定时器1初始化为自由运行模式,对系统时钟32分频,也就是定时器工作的时钟是1M,这样当定时器计数从0000-FFFF时溢出产生中断,时间为=65536us。完整源码:#include<ioCC2530.h>#include<stdint.h>#defineLED_1P1_0voidInitLedGPIO<void>{ P1DIR|=0x01;//将P1_0定义为输出 LED_1=1;//LED1off}voidInitSysTick<void>{CLKCONCMD&=~0x40;//设置系统时钟源为32MHZ晶振while<CLKCONSTA&0x40>;//等待晶振稳定为32MCLKCONCMD&=~0x47;//设置系统主时钟频率为32MHZ}voidInitTimer1<void>{T1CTL=<0x02<<2>|<0x01>;//DIV[1:0]=10,T1时钟标记频率/32//MOD[1:0]=01,T1自由运行模式IEN1|=0x02;//允许T1中断EA=1;//开总中断}voidmain<void>{ InitSysTick<>;InitLedGPIO<>;InitTimer1<>; while<1>;}#pragmavector=T1_VECTOR__interruptvoidT1_ISR<void>{LED_1=!LED_1;}4、实验要求请实现上述示例源码功能,并编写代码使用中断,实现T1控制Led2灯的亮灭,完成程序的下载和实现。实验六串口通信〔查询模式一、实验目的:了解串口的使用方法;二、实验任务:使用查询方式,串口发送HelloWorld!字符串;三、实验设备:仿真器1台,ZigBee模块1块,USB连接线1根;四、实验步骤等1、实验介绍:电路连接如下图由上图可知,串口的管脚分别在单片机的P0.2〔RX与P0.3〔TX,使用的为USART0。在CC2530中,USART0和USART1是串行通信接口,它们能够分别运行于异步USART模式或者同步SPI模式。两个USART的功能是一样的,可以通过设置在单独的IO引脚上。USART模式的操作具有下列特点:1、8位或者9位负载数据2、奇校验、偶校验或者无奇偶校验3、配置起始位和停止位电平4、配置LSB或者MSB首先传送5、独立收发中断6、独立收发DMA触发注:在本次实验中,我们用到的是UART0。CC2530配置串口的一般步骤:1、配置IO,使用外部设备功能。此处配置P0_2和P0_3用作串口UART02、配置相应串口的控制和状态寄存器。此处配置UART0的工作寄存器3、配置串口工作的波特率。此处配置为波特率为115200注意:在本实验中需要使用到USB转串口,所以要在PC机上安装usb转串口的驱动。2、实验相关寄存器P0SEL〔1功能选择寄存器位号位名复位值操作性功能描述7SELP0_70读/写P0_7功能0普通I/O1外设功能6SELP0_60读/写P0_6功能0普通I/O1外设功能5SELP0_50读/写P0_5功能0普通I/O1外设功能4SELP0_40读/写P0_4功能0普通I/O1外设功能3SELP0_30读/写P0_3功能0普通I/O1外设功能2SELP0_20读/写P0_2功能0普通I/O1外设功能1SELP0_10读/写P0_1功能0普通I/O1外设功能0SELP0_00读/写P0_0功能0普通I/O1外设功能3、示例源码在串口调试助手上可以看到不停的收到CC2530发过来的:Helloworld!波特率:9600,并用LED1的闪烁来标志数据的每一次发送。系统时钟设置:串口设置:数据发送模块:4、实验要求:完成上述的完整源码,实现程序下载和调试,完成数据通信,得出实验结果。实验六串口通信〔中断模式一、实验目的:了解串口的使用方法;二、实验任务:使用中断方式,从PC机接收字符并返回;三、实验设备:仿真器1台,ZigBee模块1块,USB连接线1根;四、实验步骤等1、实验介绍:电路连接见实验五2、实验相关寄存器:在此给出新的寄存器,其他见实验五3、示例源码:从串口调试助手发送数据到CC2530,而CC2530将数据返回计算机。系统时钟设置:串口设置:中断设定4、实验要求:完成上述的完整源码,实现程序下载和调试,完成数据通信,得出实验结果。实验七A/D实验一、实验目的:了解CC2530的ADC使用方法;二、实验任务:通过串口输出AD通道0转换的值;三、实验设备:仿真器1台,ZigBee模块1块,USB连接线1根;四、实验步骤等1、实验相关寄存器:实验需要使用到的寄存器ADCCON32、实验源码:voidInitialAD<void>{APCFG|=_BV<0>;//EnableIOADP0SEL|=_BV<0>;ADCCON3=0x03<<4;//SelectInternalreference,Channal:AIN0 //512decimationrate<12bitsENOB> ADCCON1=0x03<<4; //stopADconvert ADCCON1|=_BV<6>; //startADconvert}/***briefdelaysometime.*paramndelaycount*retvalNone*/voiddelay<uint16_tn>{ uint16_ttt; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>; for<tt=0;tt<n;tt++>;}/***briefinitsystemtickclock.*paramNone*retvalNone*/voidInitSysTick<void>{CLKCONCMD&=~0x40;/*selectxosc32MHzassystemclock*/while<CLKCONSTA&0x40>;/*waituntilxoscstable*/CLKCONCMD=0;/*usexosc32MHzassystem,timer1clock32Mhz*/}/***briefinituart.*paramNone*retvalNone*/voidInitUart<void>{PERCFG&=~_BV<0>;/*usedefaultpinasuart0pin:TX-P0.3RX-P0.2*/P0SEL|=<_BV<2>|_BV<3>>;/*selectP0.2P0.3usedasPeripheralfunction*/P0DIR&=~_BV<2>;/*P0.2:RXsetinput*/U0CSR|=_BV<7>;/*Selectuartmode*/U0GCR|=8;U0BAUD=59;/*setbaudrate:9600*/UTX0IF=0;}/***briefsendstringuseuart0*paramNone*retvalNone*/voiduart_send_string<uint8_t*dat,intlen>{uint16_tj;for<j=0;j<len;j++>{U0DBUF=*dat++;while<UTX0IF==0>;UTX0IF=0;}}/***briefgetadcvalue.*paramNone*retvalNone*/voidget_adc<void>{uint16_tadc;uint8_ti;uint8_ttmp[2];floatad;if<ADCCON1>=0x80>{InitialAD<>;tmp[1]=ADCL;tmp[0]=ADCH;adc=tmp[1];adc|=<tmp[0]<<8>;adc>>=4;if<adc&0x8000>adc=0;//ifnegative,adc=0;ad=adc*1.25/2048;memset<get_dat,'',8>;//formatstringadc=<uint16_t><ad*1000>;sprintf<<void*>get_dat,"%d",adc>;get_dat[strlen<<void*>get_dat>]='';for<i=0;i<8;i++>{buf[13+i]=get_dat[i];}uart_send_string<buf,sizeof<buf>>;}}/***briefMainprogram.*paramNone*retvalNone*/voidmain<void>{InitSysTick<>;InitUart<>;InitialAD<>;while<1>{get_adc<>;delay<50000>;delay<50000>;}}3、实验要求:完成上述的完整源码,并给主要源码加以注释,实现程序下载和调试,完成数据通信,得出实验结果。实验八热释红外实验一、实验目的:熟悉热释红外传感器的使用方法;二、实验任务:通过检测热释红外传感器检测是否有人,并通过串口显示"有人","无人";三、实验设备:仿真器1台,ZigBee模块1块,USB连接线1根;四、实验步骤等1、实验介绍:1热释红外原理:专门用作探测人体辐射的红外线传感器,由探测元件将探测并接收到的红外辐射转变成微弱的电压信号,经装在探头的场效应管放大后向外输出。为了提高探测器的探测灵敏度以增大探测距离,一般在探测器的前方装设一个菲涅尔透镜,它和放大电路相配合,可将信号放大70分贝以上,这样就可以测出20米围人的行动。人体辐射的红外线中心波长为9~10--um,而探测元件的波长灵敏度在0.2~20--um围几乎稳定不变。在传感器顶端开设了一个装有滤光镜片的窗口,这个滤光片可通过光的波长围为7~10--um,正好适合于人体红外辐射的探测,而对其它波长的红外线由滤光片予以吸收,这样便形成了一种专门用作探测人体辐射的红外线传感器。2实验所用传感器简介:本实验的热释红外传感器如下图所示:当有人进入其感应围则输出高电平,人离开感应围则自动延时关闭输出低电平。感应距离7米,感应角度110°传感器电路板接口电路图如下:终端与传感器板接口,热释红外的输出接到了单片机的P0.0口2、实验源码:使用传感器检测其周围是否有人:当有人出现在其检测围时,在计算机上显示"有人",否则显示"无人"。系统时钟设置:串口设置:数据发送模块:传感器检测模块:3、实验要求:完成上述的完整源码,实现程序下载和调试,完成传感器检测和通信,得出实验结果。实验九超声波传感器实验一、实验目的:了解超声波传感器的使用方法;二、实验任务:通过超声波传感器串口打印被测量物体的距离;三、实验设备:仿真器1台,ZigBee模块1块,USB连接线1根;四、实验步骤等1、实验介绍:1超声波原理:超声波传感器是利用超声波的特性研制而成的传感器。超声波是一种振动频率高于声波的机械波,由换能晶片在电压的激励下发生振动产生的,它具有频率高、波长短、绕射现象小,特别是方向性好、能够成为射线而定向传播等特点。超声波对液体、固体的穿透本领很大,尤其是在不透明的固体中,它可穿透几十米的深度。超声波碰到杂质或分界面会产生显著反射形成反射成回波,碰到活动物体能产生多普勒效应。因此超声波检测广泛应用在工业、国防、生物医学等方面。2实验所用超声波传感器简介:传感器参数:感应角度:不大于15度。探测距离:2cm-400cm高精度:可达0.3cm。电路图:Trig〔控制端——P0.0,Echo〔接收端——P0.1时序图:控制口发一个10US以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周期测,就可以达到你移动测量的值了。检测流程:<1>采用IO触发测距,给至少10us的高电平信号;<2>模块自动发送8个40khz的方波,自动检测是否有信号返回;<3>有信号返回,通过IO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间.测试距离=<高电平时间*声速<340M/S>>/2或者测试距离=nUS/58厘米;2、实验源码:使用传感器检测其前方遮挡物体距离,并通过串口显示距离信息,当前方无法检测到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年一年级下学期数学6.1人民币的认识(教案)
- 六年级上册数学教案 第一单元 分数乘法第4课时 练习课 西师大版
- 学习2025年雷锋精神六十二周年主题活动实施方案 (4份)-94
- 《南乡子 登京口北固亭有怀》历年中考古诗欣赏试题汇编(截至2022年)
- 2024年鼠抗肿瘤相关抗原单克隆抗体项目资金筹措计划书代可行性研究报告
- 2024年注射剂类药品项目资金筹措计划书代可行性研究报告
- 2025年河北省秦皇岛市单招职业倾向性测试题库新版
- 2025陕西省建筑安全员C证考试题库
- 2025年嘉兴南洋职业技术学院单招职业适应性测试题库完整
- 2025年黑龙江旅游职业技术学院单招职业适应性测试题库完整版
- 设计质量、进度、安全、保密等管理方案及保障措施
- 中学实验室安全风险分级管控制度
- 单片机应用技术学习通超星期末考试答案章节答案2024年
- 知识点总结(知识清单)-2023-2024学年六年级上册数学北京版
- 川教版小学信息技术四年级下册教案-全册
- 基于自然语言处理的法律知识图谱构建
- 高效倾听模型
- 新能源行业论文开题报告
- 动物防疫员考试题附答案
- 英语常用动词表500个
- 《税法》(第六版)全书教案电子讲义
评论
0/150
提交评论