隨著社會的不斷發(fā)展,人們對健康問題也是愈發(fā)的重視。而煙民也從傳統(tǒng)煙民轉(zhuǎn)變?yōu)殡娮訜熋瘛D贻p人作為電子煙民的主力軍,追求時尚與炫酷成為電子煙的基本標準。
電子煙需要顯示電量,以及追求時尚的一些燈光效果,同時可拓展語音播報功能,電量提示和音樂播放,是追求靚麗的方式之一,市面上的電子煙,需要通過MUC+電量檢測芯片+LED呼吸燈驅(qū)動芯片+功放芯片 等多個元器件組成,在電子煙有限的空間里,增加了許多面積。
深圳唯創(chuàng)知音研發(fā)的WT588F02KD-24SS,支持電量顯示、電池電量檢測、LED燈光效果、語音功能、等,有豐富的IO口資源開發(fā)產(chǎn)品;
應(yīng)用框架圖

WT588F02KD-24SS,功能特點
1、可以支持4位數(shù)碼管調(diào)節(jié)亮度(可以擴展10個) ;
2、可以支持32個發(fā)光二極管LED單獨調(diào)光;
3、帶按鍵喚醒,主動掃描功能和帶按鍵返回;
4、內(nèi)置亮度調(diào)節(jié)的電路---占空比8級可調(diào),使用1K的頻率;
5、可控制數(shù)碼管顯示不同字符,也可對單段數(shù)碼管進行調(diào)節(jié);
7、客戶也可以通過配套下載器在線更換芯片內(nèi)部語音內(nèi)容;
WT588F02KD-24SS
1、可以實時顯示電池電量,并可做實時電量語音播報;
2、充電時可做呼吸燈效果,充電結(jié)束后也做聲音提示和燈光效果提示;
3、可做炫酷彩燈效果(流水燈、呼吸燈);
WT588F02KD-24SS芯片相當于一顆74HC573鎖存芯片、一顆PCF8591 AD芯片和一顆語音播報芯片,從根本上節(jié)約了成本;而WT588F02KD-24SS支持UART協(xié)議調(diào)節(jié)LED顯示狀態(tài)、控制語音播報等開發(fā)步驟,極大的縮短了開發(fā)周期。

Uart串口通訊程序(參考程序)
#include "reg51.h"
#include "intrins.h"
typedef unsigned char uchar;
typedef unsigned int uint;
#define FOSC 11059200L //系統(tǒng)頻率 STC15
#define BAUD 9600 //串口波特率
sfr AUXR = 0x8e; //輔助寄存器
sfr T2H = 0xd6; //定時器2高8位
sfr T2L = 0xd7; //定時器2低8位
bit busy;
uchar rxcnt,rxbuf[64],txbuf[64],sum,song_num,cnt;
void SendData(uchar dat);
void Sendhex(uchar *s,uchar cnt);
void play_single_song(uchar song_num );
void Disp_tube(void );
void Disp_waterfall_light(void );
uint Key_Get_Value(void );
void Delay1000ms();
void main()
{
uchar i,j;
T2L = (65536 - (FOSC/4/BAUD)); //設(shè)置波特率重裝值
T2H = (65536 - (FOSC/4/BAUD))>>8;
AUXR = 0x14; //T2為1T模式,并啟動定時器2
AUXR |= 0x01; //選擇定時器2為串口1的波特率發(fā)生器
ES = 1; //使能串口1中斷
EA = 1;
SendString("wt\r\nUart Test!\r\n");
while(1)
{
for(i=0;j<0xdf;i++)
{
play_single_song(i) ;//播放第i首
Delay1000ms();//依語音播放時間長短留相應(yīng)的播放間距
Delay1000ms();
}
}
}
/*----------------------------UART中斷服務(wù)程序-----------------------------*/
void Uart() interrupt 4
{
if (RI)
{
RI = 0; //清除RI位
rxbuf[rxcnt++] = SBUF; //
rxcnt&=0x3f;
}
if (TI)
{
TI = 0; //清除TI位
busy = 0; //清忙標志
}
}
/*----------------------------播放單首數(shù)據(jù)----------------------------*/
void play_single_song(uchar song_num )
{
sum=0;
txbuf[0]=0x7E;
txbuf[1]=0x04;
txbuf[2]=0xa0;
txbuf[3]=song_num;
for(j=1;j<4;j++)sum+=txbuf[j];//從第二位開始計算累加和
txbuf[4]=sum;
txbuf[5]=0xfe;
Sendhex(txbuf,6);
}
/*----------------------------數(shù)碼管顯示“1234”數(shù)據(jù)--------------------------------------*/
/*-------------------7E 0A B0 40 C0 C0 B5 D5 C9 8F 5C FE------------------------- ----*/
/*-----“0-F”的顯示碼分別為"0xFC 0xC0 0xB5 0xD5 0xC9 0x5D 0x7D 0xC4-----*/
/*-----0xEF0xFD 0xDD 0x7B 0x3E 0xF3 0x3F 0x2F "-----------------------------*/
void Disp_tube(void )
{
sum=0;
txbuf[0]=0x7E;
txbuf[1]=0x0A;
txbuf[2]=0xB0;
txbuf[3]=0x40; //地址自動遞增模式
txbuf[4]=0xC0; //第一位數(shù)碼管地址為0XC0
txbuf[5]=0xC0; //第一位數(shù)碼管顯示“1”
txbuf[6]=0xB5; //第二位數(shù)碼管顯示“2”
txbuf[7]=0xD5; //第三位數(shù)碼管顯示“3”
txbuf[8]=0xC9; //第四位數(shù)碼管顯示“4”
txbuf[9]=0x8F; //顯示亮度為“0x8F”
for(j=1;j<10;j++)sum+=txbuf[j];//從第二位開始計算累加和
txbuf[10]=sum;
txbuf[11]=0xfe;
Sendhex(txbuf,12);
}
/*-----------------------顯示流水燈,從第一位數(shù)碼開始逐一點亮--------------------------------------*/
/*--------------設(shè)置某段YY亮度X"7E 04 CX YY Sum FE "--------------------------------*/
void Disp_waterfall_light(void )
{
uchari;
for(i=0;i<0x20;i++)
{
sum=0;
txbuf[0]=0x7E;
txbuf[1]=0x04;
txbuf[2]=0xC4;//設(shè)置亮度為0XC4
txbuf[3]=i; //要顯示的段(0-31)
for(j=1;j<4;j++)sum+=txbuf[j];//從第二位開始計算累加和
txbuf[4]=sum;
txbuf[5]=0xfe;
Sendhex(txbuf,6);// 發(fā)送串口數(shù)據(jù)
Delay500ms();//延時500ms,再亮下一段
}
}
/*-----------------------串口接收顯示按鍵值-----------------------------------------------------------------*/
/*--------------串口中斷接收一幀數(shù)據(jù)后取出按鍵值(接收長度rxcnt)----------------------*/
/*--------------例如收到按鍵上傳數(shù)據(jù)幀“7E 06 B0 42 00 20 18 FE ”---------------------------*/
uint Key_Get_Value(void )
{
uchar i;
if((rxbuf[0]==0x7E)&&(rxbuf[3]==0x42)&&(rxbuf[7]==0xFE)) //判定幀頭,幀尾,命令碼是否為0x7E 0xFE0x42
{
sum=0;
for(i=1;i<6;i++)sum+=rxbuf[i];
if(sum==rxbuf[6]) //校對累加和是否一致
{
rxflag=1;//成功接收到按鍵,標志位置1
return (256*rxbuf[4]+rxbuf[5]) ;//返回按鍵值0x0020(00 20)
}
else return 0XFF; //返回錯誤碼0XFF
}
for(i=0;i<8;i++)rxbuf[i]=0;//清零接收緩沖區(qū)
}
/*----------------------------軟件延時1000MS----------------------------*/
void Delay1000ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
_nop_();
i = 43;
j = 6;
k = 203;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
/*----------------------------發(fā)送串口數(shù)據(jù)----------------------------*/
void SendData(uchar dat)
{
while (busy); //等待前面的數(shù)據(jù)發(fā)送完成
busy = 1;
SBUF = dat; //寫數(shù)據(jù)到UART數(shù)據(jù)寄存器
}
/*----------------------------發(fā)送字符串----------------------------*/
void Sendhex(uchar *s,uchar cnt)
{
unsigned char i;
for(i=0;i};cnt++)senddata(*s++);
//===========end==================================
審核編輯:湯梓紅
-
led
+關(guān)注
關(guān)注
242文章
23742瀏覽量
671381 -
語音芯片
+關(guān)注
關(guān)注
12文章
1971瀏覽量
37664 -
電子煙
+關(guān)注
關(guān)注
21文章
228瀏覽量
29598
發(fā)布評論請先 登錄
WT588F02KD-24SS數(shù)碼管時鐘語音播報芯片設(shè)計方案

基于WT588F02KD芯片的語音播報系統(tǒng)設(shè)計

4位LED數(shù)碼管驅(qū)動芯片WT588F02KD-24SS介紹

基于WT588F02KD-24SS語音芯片的電子煙設(shè)計
WT588F02KD-24SS時鐘顯示語音芯片數(shù)據(jù)手冊
WT588F02KD-24SS數(shù)碼管顯示驅(qū)動芯片數(shù)據(jù)手冊
WT588F02KD-24SS帶鍵盤掃描接口LED的驅(qū)動控制
WT588F02KD-24SS數(shù)碼管時鐘語音播報芯片設(shè)計方案

WT588F02KD-24SS C002_01語音芯片說明書
WT588F02KD-24SS 時鐘顯示語音芯片 說明書
WT588F02KD-24SS 數(shù)碼管顯示驅(qū)動芯片IIC控制
WT588F02KD-24SS鍵盤顯示芯片UART版 說明書
WT588F02KD-24SS語音芯片:集多功能于一身,引領(lǐng)小家電產(chǎn)品智能化升級

WT588F02KD-24SS語音芯片集成數(shù)碼管顯示驅(qū)動算法:聲音播放提示的智能升級

評論