聚豐項(xiàng)目 > 無線供電聲控LED小鬧鐘
擁有一個(gè)無線供電的底座,放在底座上即可工作,簡單方便。利用手工焊接的藍(lán)色LED燈作為數(shù)碼管顯示時(shí)間,造型美觀。采用紐扣電池和計(jì)時(shí)芯片計(jì)時(shí),即使斷電后時(shí)間不會(huì)改變。可以用聲音控制LED燈的亮滅以實(shí)現(xiàn)時(shí)間的顯示和熄滅。(本項(xiàng)目采用的是IDT 3W無線充電開發(fā)套件)
綠蘿晨夢
分享綠蘿晨夢
團(tuán)隊(duì)成員
羅偉 軟件工程師
MCU采用MSP430G2553
顯示驅(qū)動(dòng)芯片選用SN74HC595N
時(shí)間芯片采用DS1302。
無線供電采用IDT的3W模塊。
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)鬧鐘
}
}
動(dòng)心忍性1234: 您好我是無線電雜志的編輯,我們對您的項(xiàng)目十分感興趣,請問您有興趣投稿嗎?成為我們的作者除稿費(fèi)外還有其他優(yōu)厚條件。敬請參與。投稿請聯(lián)系QQ260534978.
回復(fù)
erictan: 我有類似的項(xiàng)目需要開發(fā),可否與我聯(lián)系?謝謝。QQ:1014637381
回復(fù)