找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4204|回复: 2
收起左侧

自制基于MSP430单片机的低功耗光传感器资料,含电路原理图,PCB图,程序

[复制链接]
ID:194472 发表于 2019-1-27 20:07 | 显示全部楼层 |阅读模式
简单的高灵敏度光探测器,在黑暗中保持约10uA左右的功耗电流;收光线后,唤醒单片机,控制音乐芯片工作播放音频,同时点亮指示灯;图中的430单片机是MSP430G2553,换用更小的F201X系列也能满足使用要求。光敏器件使用的是5539;可以换用光敏器件与分压电阻大小调整灵敏度。

Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)

PCB图(槽用来安装电池)

PCB图(槽用来安装电池)

电路图

电路图
0.png

单片机源程序如下:
  1. /*********************************************************
  2. 功能:光敏电阻变化,检测比较器电平,驱动喇叭发音及LED灯发光
  3. 器件:MSP430G2553单片机
  4. P1.6为输入,上升沿触发中断;
  5. P1.0与P1.1输出高电平;
  6. *********************************************************/
  7. #include "msp430g2553.h"
  8. void delay5s(void)   //误差 -0.5us,测试时用,可直接用430自带的delay_cycles函数准确延时
  9. {
  10.     unsigned char a,b,c;
  11.     for(c=231;c>0;c--)
  12.         for(b=229;b>0;b--)
  13.             for(a=150;a>0;a--);
  14. }



  15. void main(void)
  16. {
  17.   WDTCTL = WDTPW+WDTHOLD; //关闭看门狗定时器  
  18.    if (CALBC1_8MHZ ==0xFF || CALDCO_8MHZ == 0xFF)
  19.   {
  20.     while(1);//挂起
  21.   }
  22.     BCSCTL1 = CALBC1_12MHZ;
  23.     DCOCTL  = CALDCO_12MHZ;
  24.     BCSCTL2 |= 0;  //MCLK AND SMCLK == DCO, DIVIDER == 1不分频
  25.     P1DIR=BIT0|BIT1;        //P1.5准备输出脉冲波
  26.     P1OUT=0;
  27.     P1IE|=BIT6;
  28.     P1IES&=~BIT6;      //P1.0上升沿触发进中断
  29.     P1IFG=0;
  30.    _EINT();
  31.   LPM3;                //进入低功耗模式
  32. }

  33. #pragma vector = PORT1_VECTOR
  34. __interrupt void PORT1_ISR(void)
  35. {  
  36.   P1IE=0;
  37.   if(P1IFG & BIT6)
  38.   {
  39.    P1OUT=BIT0|BIT1;
  40.   delay5s();
  41.    P1OUT=0;
  42.   }
  43.   P1IFG=0;
  44.   P1IE|=BIT6;
  45. }  
复制代码

所有资料51hei提供下载:
光感应探测装置.zip (721.64 KB, 下载次数: 49)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:474693 发表于 2019-2-2 14:43 来自手机 | 显示全部楼层
学习了
回复

使用道具 举报

ID:523267 发表于 2019-4-27 22:04 | 显示全部楼层
请问这个如何实现的低功耗和无阻塞的?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表