聚豐項(xiàng)目 > 無線供電聲控LED小鬧鐘

無線供電聲控LED小鬧鐘

擁有一個(gè)無線供電的底座,放在底座上即可工作,簡單方便。利用手工焊接的藍(lán)色LED燈作為數(shù)碼管顯示時(shí)間,造型美觀。采用紐扣電池和計(jì)時(shí)芯片計(jì)時(shí),即使斷電后時(shí)間不會(huì)改變。可以用聲音控制LED燈的亮滅以實(shí)現(xiàn)時(shí)間的顯示和熄滅。(本項(xiàng)目采用的是IDT 3W無線充電開發(fā)套件)

綠蘿晨夢 綠蘿晨夢

分享
2 喜歡這個(gè)項(xiàng)目
團(tuán)隊(duì)介紹

綠蘿晨夢 綠蘿晨夢

團(tuán)隊(duì)成員

羅偉 軟件工程師

分享
項(xiàng)目簡介
擁有一個(gè)無線供電的底座,放在底座上即可工作,簡單方便。利用手工焊接的藍(lán)色LED燈作為數(shù)碼管顯示時(shí)間,造型美觀。采用紐扣電池和計(jì)時(shí)芯片計(jì)時(shí),即使斷電后時(shí)間不會(huì)改變。可以用聲音控制LED燈的亮滅以實(shí)現(xiàn)時(shí)間的顯示和熄滅。(本項(xiàng)目采用的是IDT 3W無線充電開發(fā)套件)
硬件說明

img_20171023222731.jpg

img_20171023222920.jpg

MCU采用MSP430G2553

顯示驅(qū)動(dòng)芯片選用SN74HC595N

時(shí)間芯片采用DS1302。

無線供電采用IDT3W模塊。

IO對應(yīng)關(guān)系如下:

 VCC                       GND

       P1.0--聲控輸入               XIN

      P1.1--時(shí)間CLK               XOUT

      P1.2--時(shí)間DAT              TEST

      P1.3--數(shù)碼管DATA      RST

      P1.4--數(shù)碼管SCLK       P1.7

      P1.5--數(shù)碼管RCLK       P1.6--鬧鐘輸出

      P2.0--COM0點(diǎn)                  P2.5--時(shí)間RST

      P2.1--COM1                   P2.4--COM4

      P2.2--COM2                     P2.3--COM3


軟件說明

軟件開發(fā)環(huán)境采用CCS6.0

部分代碼如下:

void main(void)

{

unsigned char i=0,j=0,dat=0,com=1;

unsigned char s=0,s1=0,s_change=0;

unsigned char voice=0,voice1=0,state=0,get_en=1;

unsigned int t=0,l_time=0;

WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer

  BCSCTL1 = CALBC1_1MHZ;

    DCOCTL = CALDCO_1MHZ;

    BCSCTL3 |= LFXT1S_2;

    IFG1 &= ~OFIFG;

    //P1.0是鬧鐘輸出

    P1DIR |= BIT0 ;//P1.0配置為輸出

    P1OUT &= ~BIT0;//P1.0輸出低電平

    //P1.6是聲音傳感器輸入

    P1REN |= BIT6;//P1.6輸入

    P1OUT |= BIT6;//上拉

    P1DIR |= BIT1 + BIT3 + BIT4 + BIT5;//DATA,SCK,RCK輸出

    P1OUT &=~(BIT1 + BIT3 + BIT4 + BIT5);//DATA,SCK,RCK=0

    P2DIR |= BIT0 + BIT1 + BIT2 + BIT3 + BIT4 + BIT5;//COM1,2,3,4輸出

    P2OUT |= BIT0 + BIT1 + BIT2 + BIT3 + BIT4;

    P2OUT &= ~BIT5;

    //Set_RTC(init);//設(shè)置初始時(shí)間

    while(1)

    {

     Read_RTC(time);

     if(get_en)

     {

      if(!(P1IN&BIT6)) voice=1;

      else voice=0;

     }

     else

     {

      t++;

      if(t==50) {t=0;get_en=1;}

     }

     if(voice1==0 && voice==1)

     {

      if(state)state=0;

      else {state=1;l_time=0;}

      get_en=0;

     }

     voice1=voice;

     P2OUT |= BIT1 + BIT2 + BIT3 + BIT4;//COM0,1,2,3,4=1,全滅

     if(state==1)//滿足顯示條件

     {

      l_time++;

      if(l_time==5000){l_time=0;state=0;}

      //顯示

      s=time[0];

      if(s!=s1) s_change=1;

      s1=s;

      i++;

      if(i==5)i=1;

      if(s_change==1) {s_change=0;P2OUT &= ~BIT0;j=0;}

      j++;

      if(j==95) P2OUT |= BIT0;

      switch(i)

      {

       case 1:send_sum(sum_code[(time[2]&0xF0)>>4]&0xff);P2OUT &= ~BIT1;break;

       case 2:send_sum(sum_code[time[2]&0x0F]&0xfe);P2OUT &= ~BIT2;break;

       case 3:send_sum(sum_code[(time[1]&0xF0)>>4]&0xfe);P2OUT &= ~BIT3;break;

       case 4:send_sum(sum_code[time[1]&0x0F]&0xfe);P2OUT &= ~BIT4;break;

       default:break;

      }

     }//顯示結(jié)束

     else P2OUT |= BIT0;

     if(time[2]==0x07 && time[1]==0x00)  P1OUT |= BIT0;//開鬧鐘

     else P1OUT &= ~BIT0;//關(guān)鬧鐘

    }

}


評論區(qū)(2 )
  • 動(dòng)心忍性1234: 您好我是無線電雜志的編輯,我們對您的項(xiàng)目十分感興趣,請問您有興趣投稿嗎?成為我們的作者除稿費(fèi)外還有其他優(yōu)厚條件。敬請參與。投稿請聯(lián)系QQ260534978.

    回復(fù)

  • erictan: 我有類似的項(xiàng)目需要開發(fā),可否與我聯(lián)系?謝謝。QQ:1014637381

    回復(fù)