资源描述
C语言学习与应用教学课件项目实训2入侵监控系统设计实例n标掌握CC2530的时钟原理及应用;掌握CC2530的定时器原理及应用;掌握CC2530的串口原理及应用;掌握入侵监控系统程序的编写方法;掌握分析一个项目的C语言源程序的顺序O项目实训2入侵监控系统设计项目分析1.任务说明用基于CC2530芯片ZigBee模块实现入侵监测小系 统,当人体红外传感器监测到有人时,在串口助手上显示 h“有人”,反之显示“无人”。(1)设置系统时钟32MHz。(2)ZigBee模块上连接的人体传感器周期性地将人 体传感数据通过串口发送出去,格式为:“有人”或“无 人”,串口波特率为38400。项目实训2入侵监控系统设计项同分析2.任务方案本项目的硬件结构比较简单,由ZigBee模块、人 体传感器模块和PC组成。入侵监控系 统结构如图8 所示。人体传感器模块-_ _ _ _ PC Zig%;模块图8入侵监控系统结构图项目实训2入侵监控系统设计CC2530简介CC2530单片机是一款完全兼容8051内核,同时支持IEEE802.15.4协议的无线射频单片机。强大的5通道DMA。IEEE 802.5.4MAC定时器,通用定时器(一个16位定时器,一个8位定时器)。IR发生电路。具有捕获功能的32-kHz睡眠定时器。(5)硬件支持CSMA/CA。(6)支持精确的数字化RSSI/LQI。电池监视器和温度传感器。(8)具有8路输入和可配置分辨率的12位ADCo(9)AES安全协处理器。(10)2个支持多种串行通信协议的强大USARTO(11)21 个通用I/O 引脚(19x4mA,2x20mA)。(12)看门狗定时器。项目实训2入侵监控系统设计通用I/OCC2530有21个数字输入/输出引脚,可以配置为通用数字I/O或 外设I/O信号,配置为连接到ADC、定时器或USART外设。这些I/O口的 用途可以通过一系列寄存器配置,由用户软件加以实现。I/O端口具备如下重要特性。(1)21个数字I/O引脚。可以配置为通用I/O或外部设备I/O。输入口具备上拉或下拉能力。具有外部中断能力。项目实训2入侵监控系统设计系统时钟CC2530的CLKCONSTA寄存器是一个只读寄存器,用于获得当前时 钟状态。设备的C语言学习与应用292振荡器可以选择高精度的晶体 振荡器,也可以选择低功耗的高频RC振荡器,应根据实际情况进行选 择。当设备运行RF收发器时,因为要求精度高,所以必须使用32MHz晶 体振荡器。振荡器。设备有两个高频振荡器:a.32MHz 晶振。b.l6MHzRC 振荡器。设备有两个低频振荡器:a.32kHz 晶振。b.32kHzRC 振荡器。项目实训2入侵监控系统设计系统时钟(2)系统时钟。系统时钟是从所选的主系统时钟源获得的,主系 统时钟源可以是32MHzXOSC或16MHzRC0SC。CLKCONCMD.OSC位选择主 系统时钟的源。注意要使用RF收发器,必须选择高速且稳定的32MHz 晶振。注意改变CLKCONCMD.OSC位不会立即改变系统时钟。时钟源 的改变首先在CLKCONSTA.OSC=CLKCONCMD.OSC时生效。这是因为在 实际改变时钟源之前需要有稳定的时钟。还要注意CLKCONCMD.CLKSPD位反映系统时钟的频率,因此是CLKCONCMD.OSC位的映像。选 择了32MHz XOSC且稳定之后,即当CLKCONSTA.OSC位从1变为。时,16 MHzRC振荡器就被校准。项目实训2入侵监控系统设计异步串行通信(UART)UART模式提供异步串行接口。在UART模式中,接口使 用2线或者含有引脚RXD、TXD、可选RTS和CTS的4线。UART模式的操作具有下列特点。8位或9位负载数据;奇校验、偶校验或无奇偶校验;配置起始位和停止位电平;,配置LSB或MSB首先传送;独立收发中断;独立收发DMA触发;奇偶校验和帧校验出错状态。项目实训2入侵监控系统设计人体传感器简介人体接近传感器又称无触点接近传感 器,是理想的电子开关量传感器。具有穿透 墙壁和非金属门窗的功能;能探测人体距离 的远近,而且远近可以调节,可调节半径为 半米左右;探测区域范围广,因为探测区域 呈双扇形;对环境温度范围具有较高的适应 性,且灵敏度高;实现了非接触性探测;能 够适应恶劣环境,如高温、潮湿、噪音、气 流、灰尘、光线等;对射频具有很强的抗干 扰能力,如图9所示。图9人体接近传感器1项目实训2入侵监控系统设计人体传感器简介人体接近传感器还可以用在安全防盗领域,如资料档案、金融、财会、博物馆、金库 等重要地方,同时,在测量技术和控制技术 中也得到了广泛使用,如长度和位置的测量,位移、速度、加速度的测量和控制等。在 机床、冶金、化工、轻纺、印刷等行业的 应用时,当金属监测体通过检测区时,开关 就会无接触、无火花、无压力迅速发出电 气指令,准确地反映出这些物体的具体的位 置和行程,如图10所示。图10人体接近传感器2项目实训2入侵监控系统设计项目实例源码及代码解析1.项目实例源码#include#define LED1 P1_O#define LED2 Pl_l#define INO P0_2 void init_gpio()P1SEL&二0 x03;PlDIR|=0 x03;POSEL&二0 x04;P0DIR&二0 x04;IN0=0;项目实训2入侵监控系统设计项目实例源码及代码解析voidinit_sysclk()CLKCONCMD&=0X80;while(CLKCONSTA&0X40);voidinit_uart()PERCFG=OXOO;P0SEL|=0X3C;P2DIR&二OxCO;U0CSR=0X80;UOGCR=1O;U0BAUD=59;UTXOIF=O;项目实训2入侵监控系统设计【项目实例源码及代码解析voiduart_tx_string(char*data_tx,intlen)unsignedintj;for(j=0;jlen;j+)UODBUF=*data_tx+;while(UTXOIF=O);UTXOIF=O;项目实训2入侵监控系统设计项目实例源码及代码解析void Delay(unsignedinti)unsignedj.k;for(k=0;ki;k+)for(j=0;j500;j+);项目实训2入侵监控系统设计项目实例源码及代码解析void main(void)init_gpio();init_sysclk();init_uart();while(l)if(INO=O)uart_tx_string(有人!”,sizeof(有人!”);LED1=1;LED2=0;项目实训2入侵监控系统设计项目实例源码及代码解析Delay(lOOO);elseuat_tx_string(“无人!”,sizeof(无人!);LED1=O;LED2=1;Delay(lOOO);项目实训2入侵监控系统设计微课创建工AR工程项目实训2入侵监控系统设计项目实例源码及代码解析2.代码解析通用I/O口初始化。void init_gpio()P1SEL&二0 x03;PlDIR|=0 x03;POSEL&=-0 x04;P0DIR&二0 x04;IN0=0;通用Q 输出 通用Q 输入项目实训2入侵监控系统设计项目实例源码及代码解析系统时钟配置。void init_sys_clk()CLKCONCMD&=0X80;设置系统时钟为 32MHzwhile(CLKCONSTA&0X40);等待晶振稳定项目实训2入侵监控系统设计项目实例源码及代码解析异步串行通信(UART)初始化。voidinit_uart()PERCFG=OXOO;P0SEL|=0X3C;P2DIR&二OxCO;U0CSR=0X80;UOGCR=1O;U0BAUD=59;UTXOIF=O;选择USARTO的I/O 口位置将对应P0_2、P0_3、P0_4、PO_5配置成外设功能P0优先作为 UART模式uart模式设置波特率为38400/uartO tx中断标志位清零项目实训2入侵监控系统设计项目实例源码及代码解析数据发送函数。void uart_tx_string(char*data_tx,int len)unsigned int j;for(j=0;jlen;j+)UODBUF=*data_tx+;while(UTX0IF=0);UTX0IF=0;项目实训2入侵监控系统设计祝你进步!谢谢!
展开阅读全文