简单的高灵敏度光探测器,在黑暗中保持约10uA左右的功耗电流;收光线后,唤醒单片机,控制音乐芯片工作播放音频,同时点亮指示灯;图中的430单片机是MSP430G2553,换用更小的F201X系列也能满足使用要求。光敏器件使用的是5539;可以换用光敏器件与分压电阻大小调整灵敏度。
Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)
PCB图(槽用来安装电池)
电路图
单片机源程序如下:
- /*********************************************************
- 功能:光敏电阻变化,检测比较器电平,驱动喇叭发音及LED灯发光
- 器件:MSP430G2553单片机
- P1.6为输入,上升沿触发中断;
- P1.0与P1.1输出高电平;
- *********************************************************/
- #include "msp430g2553.h"
- void delay5s(void) //误差 -0.5us,测试时用,可直接用430自带的delay_cycles函数准确延时
- {
- unsigned char a,b,c;
- for(c=231;c>0;c--)
- for(b=229;b>0;b--)
- for(a=150;a>0;a--);
- }
- void main(void)
- {
- WDTCTL = WDTPW+WDTHOLD; //关闭看门狗定时器
- if (CALBC1_8MHZ ==0xFF || CALDCO_8MHZ == 0xFF)
- {
- while(1);//挂起
- }
- BCSCTL1 = CALBC1_12MHZ;
- DCOCTL = CALDCO_12MHZ;
- BCSCTL2 |= 0; //MCLK AND SMCLK == DCO, DIVIDER == 1不分频
- P1DIR=BIT0|BIT1; //P1.5准备输出脉冲波
- P1OUT=0;
- P1IE|=BIT6;
- P1IES&=~BIT6; //P1.0上升沿触发进中断
- P1IFG=0;
- _EINT();
- LPM3; //进入低功耗模式
- }
- #pragma vector = PORT1_VECTOR
- __interrupt void PORT1_ISR(void)
- {
- P1IE=0;
- if(P1IFG & BIT6)
- {
- P1OUT=BIT0|BIT1;
- delay5s();
- P1OUT=0;
- }
- P1IFG=0;
- P1IE|=BIT6;
- }
复制代码
所有资料51hei提供下载:
光感应探测装置.zip
(721.64 KB, 下载次数: 49)
|