光敏传感器:

·光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;

·入射光强,电阻减小,入射光弱,电阻增大。

·光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转化为电的变换)。

电路图:

·通过外部ADC

·模拟量接入到P06引脚

ADC输入使用

1、当使用ADC时,端口0对应的引脚必须配置为ADC输入。

2、8个ADC输入引脚。

3、要配置一个端口0引脚为一个ADC输入,APCFG寄存器中相应的位必须设置为1(默认值选择端口0引脚为非ADC输入)。

4、APCFG寄存器的设置将覆盖P0SEL的设置。

寄存器

APCFG:

·P06作为模拟I/O

·使能:ADCCFG |= 0x40;(使能第6位置1)

·禁用:ADCCFG &=(0x40^0xFF);         (0100 0000 ^ 1111 1111 = 1011 111 ,相当于取反)

ADCCON1——ADC控制1

· 第4,5位必须置为1,启动选择,STSEL[5:4]:开启转换事件

·第6位置为1,ST[6]:开启转换。->        ADCCON1 = 0x40;

·第7位,每次转换之后第7位会被置为1,每次判断该位是否为1,若是1则转换完成。读取ADCH时,他就被清除。

ADCCON3——ADC控制3

·第0到3位,ECH[3:0]:单个通道选择,模拟量接入的是P06,选择的是通道6,第0到3位则置为0110。

·第4、5位,EDIV[5:4]:为了方便起见,这里选择个64位抽取率,只用判断高8位就可以。第4、5位置为00。

·第6、7位,EREF[6:7]:选择用于额外转换的参考电压,这里还是选择AVDD5引脚,第6、7位置为10。

因此ADCCON3 = 0x86;        //(1000 0110)

驱动分析

注意:cc2530.h中定义的0xF2寄存器为ADCCFG,而手册上命名为APCFG

uint myApp_ReadLightLevel(void)
{uint reading = 0;ADCCFG |= 0x40;    //模拟IO使能ADCCON3 = 0xb6;    //选择通道、抽取率、参考电压//开启下一转换ADCCON1 = 0x40;    //循环等待转换完成,就是判断ADCCON1高位为是否1。while(!(ADCCON1&0x80));   //禁用转换(第六位给置0)ADCCFG &= (0x40^0xff)  // (0100 0000 ^ 1111 1111 = 1011 111 ,相当于取反)//读取值reading = ADCL;    //先把ADCL寄存器存的低8位赋值给readingreading |= (int16)(ADCH << 8);    // 让ADCH寄存器存的是高八位的数据,先让他左移八位,然后赋值给readingreading >>= 2;    //根据相应有效位,最后右移相应的位数,实现能够从低位读取return (reading);
}

代码:

void main(void)
{char strTemp[12]={0};CLKCONCMD &= ~0x40;               //设置系统时钟源为32MHZ晶振while(CLKCONSTA & 0x40);          //等待晶振稳定为32MCLKCONCMD &= ~0x47;               //设置系统主时钟频率为32MHZ  InitBeep();InitUart();                       //调置串口相关寄存器while(1){LightLevel = myApp_ReadLightLevel();/*上面一条语句是读取光敏电阻引脚上的ad转换值,并没有换算成能表示光强强度的值主要是示意大家如何使用2530芯片的AD功能*///返回的 unsigned int类型转换为字符串存入strTemp字符数组,因为有效位为7位,精度为128,模拟值是除以128得到的,所以返回值LightLevel范围再0~128strTemp[0] = LightLevel / 100 + '0';strTemp[1] = LightLevel / 10%10 + '0';strTemp[2] = LightLevel % 10 + '0';strTemp[3] = '\r';    //回车换行strTemp[4] = '\n';UartSendString(strTemp,12); //串口送数DelayMS(2000);//延时函数,如果没此函数,读取时间太短,向串口送数据太快了}
}

CC2530-光敏传感器相关推荐

  1. CC2530学习光敏传感器

    光敏传感器只需读取与之相连I0口电平,来判断当前环境是亮还是暗. 1. 初始化引脚为输入 2.读取检测到引脚的电平,输出显示,并上传给协调器 3. 接收数据 4. 下载程序,观察结果.

  2. 基于STM32的光敏传感器数据采集系统-嵌入式系统与设计课程设计

    目录 1 项目概述 1.1 项目介绍 1.2 项目开发环境 1.3 小组人员及分工 2 需求分析 2.1 系统需求分析 2.2 可行性分析 2.3 项目实施安排 3 系统硬件设计 3.1 系统整体硬件 ...

  3. CC2530/ESP32+传感器+ZigBee+MQTT+MYSQL+Springboot+Vue+Echarts的老人卫生间防摔倒自动报警系统

    CC2530/ESP32+传感器+ZigBee+MQTT+MYSQL+Springboot+Vue+Echarts的老人卫生间防摔倒自动报警系统 写在前言 运行效果展示 一代版本 ESP32+MQTT ...

  4. 《ZigBee开发笔记》第五部分 外设篇 - 基础实验 第6章 CC2530光敏和热敏传感器

    1理论分析 1.1概述 光敏电阻(photocell),又称光敏电阻器(photoresistor or light-dependent resistor,后者缩写为 ldr)或光导管(photoco ...

  5. 《ZigBee开发笔记》第五部分 外设篇 - 协议栈实验 第6章 CC2530光敏和热敏传感器

    1实验目的 1)通过实验掌握 CC2530 芯片 GPIO 的配置方法: 2)掌握光敏和热敏传感器在协议栈的用法. 2实验设备 硬件:PC 机一台:ZB2530(底板.核心板.仿真器.USB 线)两套 ...

  6. Arduino的光敏传感器和超声波测距传感器测试代码

    光敏传感器测试代码 使用的是一个未知名4pin模块, 4pin依次为Vcc, Gnd, DO, AO, 板载一个可调电阻以及一个LED, 调节电阻大小, 可以控制LED亮灭和DO输出变化对光亮的灵敏度 ...

  7. 光照传感器哪个好_传感器2—光敏传感器

    记忆关键:光敏传感器是负相关,光越强,电阻越小. 记忆技巧(只是技巧,不是原理,不要深究):把光敏传感器看做太阳能发电模块,太阳越强电压(电流越大),那根据欧姆定律,电阻不变,电压变大:电压不变,电阻 ...

  8. 【STM32】光敏传感器示例

    00. 目录 文章目录 00. 目录 01. 光敏传感器简介 02. 硬件模块 03. 程序设计 04. 结果验证 05. 预留 06. 附录 07. 声明 01. 光敏传感器简介 光敏传感器是最常见 ...

  9. 光敏传感器实验报告_光敏传感器光电特性测量实验分析报告.ppt

    思考题 1.光电效应有哪些分类? 光电效应可以分为外光电效应和内光电效应. 2.光敏电阻的物理基础是什么? 内光电效应. * * 光敏传感器的光电特性测量实验 实验简介 光敏传感器是将光信号转换为电信 ...

  10. 光敏传感器实验报告_光敏传感器实验论文-大物实验

    光敏传感器实验及探究 摘要: 光敏传感器是以光电器件作为转换元件的传感器.它可用于检测光量变化或直 接引起光量变化的非电量, 也可用于检测能转换成光量变化的其他非电量. 它首先把被测量 的变化转换成光 ...

最新文章

  1. ylbtech-数据库设计与优化-对作为复选框/单选列表的集合表的设计
  2. 7.2 极大似然估计
  3. MySQL exists的用法介绍
  4. kbengine定义实体
  5. 2019/Province_C_C++_A/F/完全二叉树的权值
  6. linux之/usr/local/bin和/usr/bin区别
  7. Codeforces Round #585 (Div. 2) E. Marbles 状压dp + 逆序对
  8. [vue] 你们项目为什么会选vue而不选择其它的框架呢?
  9. 如何关闭线程池?会创建不会关闭?调用关闭方法时线程池里的线程如何反应?
  10. iOS 静态库和动态库的基本介绍和使用
  11. java 序列化 写入mysql_java 序列化到mysql数据库中
  12. 【报告分享】2020年重点行业薪酬趋势指南.pdf(附下载链接)
  13. webservice系统学习笔记8-简单的权限校验
  14. 从 SGD 到 Adam —— 深度学习优化算法概览(一) 重点
  15. SQLSERVER2000 存储过程与ORACLE存储过程对比
  16. PHP经验——获得PHP版本信息及版本比较
  17. 请求帮助--访问被拒绝:“Interop.jmail”
  18. Linux中service命令和/etc/init.d/的关系
  19. 基于Qt的抽奖小程序
  20. comparator 字符串比较大小_Java8 - 使用 Comparator.comparing 进行比较排序

热门文章

  1. python自制电子记事本_利用Python制作一个“电子记事本”
  2. 基于QT实现Mp3播放器(代码部分)
  3. 闪迪u盘适合装linux,3分钟轻体验告诉你这款闪迪U盘值不值得买
  4. 编程语言搜索量排行:用十年数据告诉你什么最受欢迎
  5. 在线给头像加圣诞帽子网站源码
  6. 旅游系统(SSM框架+MySQL+Redis+VUE)后端代码
  7. 声学回声消除(Acoustic Echo Cancellation)原理与实现
  8. iOS-Security 苹果安全白皮书都讲了些啥?
  9. 【等待事件】等待事件系列(5.1)--Enqueue(队列等待)
  10. [NPUCTF2020]这是什么觅