ZigBee:CC2530+AD转换及继电器控制实验

2021年9月26日 12点热度 0条评论 来源: BrilliantC

一、实验目的

  1. 通过CC2530 芯片GPIO控制继电器的闭合、断开

  2. 通过实验掌握CC2530 芯片GPIO和AD转换寄存器的配置方法

  3. 掌握AD 转换函数程序的编程方法

  4. 掌握光敏传感器的操作使用

  5. 掌握光照传感器采集程序的编程方法

二、实验内容

  1. 使用绿色开发板:控制继电器的开关;

  2. 使用蓝色开发板:编写光照传感器采集程序,设计实验检测光照的强度,通过AD转换将光照强度在IAR调试环境显示出来。

三、实验原理

  1. 继电器:是一种电子控制元器件,主要用在自动控制电路中,其作用相当于一个开关,不同的是,开关是用外力来控制电路的开闭的,而继电器是用电来控制的。绿色开发板中的继电器通过P0_0输出高低电平来控制其断开或闭合。

  2. 光敏传感器:光敏电阻进行光照强度的检测。光敏电阻是一种半导体材料制成的电阻,其电导率随着光照度的变化而变化。利用这一特性可以制成不同形状和受光面积的光敏电阻。蓝色开发板中的光敏电阻5528就是其中的一种,光越强阻值越大。该光敏电路用200K电阻分压(参考传感器底板电路原理图),由light/100就可以计算实际测量的电压值,然后根据分压比和5528的参数就可以计算出光照值。

  3. AD 转换寄存器:CC2530的ADC支持14位模拟数字转换,转换后的有效数字位高达12位。ADC包括一个8路独立可配置通道的模拟多路转换器和一个参考电压发生器。CC2530的ADC转换结果可以通过DMA方式写入存储器,也可直接读取ADC寄存器获取。CC2530的ADC具有多种不同的运行模式。

  • CC2530的P0口可作为ADC输入,其中AIN0~AIN7分别对应P0.0~P0.7。ADC输入可配置成单端或差动输入,如选择差动输入,则对应的输入分别为AIN0~AIN1、AIN2~AIN3、AIN4~AIN5、AIN6~AIN7,需要注意引脚电压不能为负电压,也不能大于VDD。在差动输入中,每个差动输入的转换模式是不一样的。除了AIN0~AIN7作为ADC输入之外,片内温度传感器也可以作为测量温度的ADC输入,AVDD5/3电压同样可以作为一个ADC输入。AVDD5/3作为ADC输入主要用于电池测量,需要注意的是不能以待测的电池电压作为参考电压。
  • CC2530ADC有两种转换方式,第一种是连续转换,此时需要配置ADCCON1 和ADCCON2 寄存器,寄存器APCFG的设置将会影响连续序列转换的通道数,CC2530的8路ADC输入不一定要求全部设置为模拟输入。如果只用到了序列转换中的部分通道,可以屏蔽APCFG寄存器中其他通道的相应模拟输入位,此时该通道在转换时将被跳过;第二种是单次转换,此时只需要配置寄存器ADCCON3 即可。(具体寄存器配置见后面附录或数据手册)

四、实验过程

连接绿色开发板,并编写相应程序,控制继电器的开合;

请将编写的程序复制在下面:

#include "ioCC2530.h" void delay(void) { //unsigned int i; int i; unsigned char j; for(i=0;i<11500;i++) { for(j=0;j<200;j++) { asm("NOP"); asm("NOP"); asm("NOP"); } } } void main(void) { P0DIR |= 0x01; // 设置P0为输出模式 while(1000) { P0_0 = 0; //继电器打开 delay(); //延时 P0_0 = 1; //继电器关闭 delay(); } } 

请验证对P0_0送出0、1时继电器的状态,0时为打开,1为关闭

    原文作者:BrilliantC
    原文地址: https://blog.csdn.net/Cxx0125/article/details/89930368
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。