『壹』 用51單片機,實現語音識別,簡單的數字,或者單個字詞都行,需要什麼樣的硬體,電路圖,如何編程。
可以用語音識別晶元LD3320,電路圖你只要下了它的pdf就可以知道了,pdf裡面有典型的應用。
但我推薦你別用這個晶元,應為比較貴在100元左右。我推薦你用凌陽61單片機,自帶語音識別模塊,專為語音而生。而且官方提供很多函數,可以直接調用,並不需自己寫程序去控制聲音的中間處理過程。另外凌陽單片機比較容易學習,比51還容易,而且是16位單片機,相比51更有優勢。
『貳』 51單片機控制語音晶元進行播報怎麼做,另外PC機通過無線給單片機傳輸命令
提問不明確。語音晶元型號很多,大多數都可以處理多段語音信息,所以,原理上都可以被51去控制。因為語音晶元,實際是語音存儲晶元,所以每個信息段都必須有一個地址碼,如果你想播放哪段語音,就用51去調用這個地址,就能實現語音播放。
第二部分問題:PC通過什麼制式的無線信號給單片機傳輸命令,這個需要說清楚。無線信號類型也很多的。
『叄』 用51單片機控制ISD1820語音晶元的原理圖及c程序或匯編程序
#include<reg52.h>
code unsigned char seg7code[11]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //顯示段碼
void Delay(unsigned int tc) //顯示延時程序
{while( tc != 0 )
{unsigned int i;
for(i=0; i<100; i++);
tc--;}
}
sbit TMDAT =P3^1; //DS18B20的數據輸入/輸出腳DQ,根據情況設定
unsigned int sdata;//測量到的溫度的整數部分
unsigned char xiaoshu1;//小數第一位
unsigned char xiaoshu2;//小數第二位
unsigned char xiaoshu;//兩位小數
bitfg=1; //溫度正負標志
void dmsec (unsigned int count) //延時部分
{
unsigned char i;
while(count--)
{for(i=0;i<115;i++);}
}
void tmreset (void) //發送復位
{
unsigned char i;
TMDAT=0; for(i=0;i<103;i++);
TMDAT = 1; for(i=0;i<4;i++);
}
bit tmrbit (void) //讀一位//
{
unsigned int i;
bit dat;
TMDAT = 0;
i++;
TMDAT = 1;
i++; i++;//微量延時 //
dat = TMDAT;
for(i=0;i<8;i++);
return (dat);
}
unsigned char tmrbyte (void) //讀一個位元組
{
unsigned char i,j,dat;
dat = 0;
for (i=1;i<=8;i++)
{ j = tmrbit();dat = (j << 7) | (dat >> 1); }
return (dat);
}
void tmwbyte (unsigned char dat) //寫一個位元組
{
unsigned char j,i;
bit testb;
for (j=1;j<=8;j++)
{ testb = dat & 0x01;
dat = dat >> 1;
if (testb)
{ TMDAT = 0; //寫0
i++; i++;
TMDAT = 1;
for(i=0;i<8;i++); }
else
{TMDAT = 0; //寫0
for(i=0;i<8;i++);
TMDAT = 1;
i++; i++;}
}
}
void tmstart (void) //發送ds1820 開始轉換
{tmreset();//復位
dmsec(1);//延時
tmwbyte(0xcc);//跳過序列號命令
tmwbyte(0x44);//發轉換命令 44H,
}
void tmrtemp (void) //讀取溫度
{
unsigned char a,b;
tmreset ();//復位
dmsec (1);//延時
tmwbyte (0xcc);//跳過序列號命令
tmwbyte (0xbe);//發送讀取命令
a = tmrbyte ();//讀取低位溫度
b = tmrbyte (); //讀取高位溫度
if(b>0x7f) //最高位為1時溫度是負
{a=~a; b=~b+1; //補碼轉換,取反加一
fg=0; //讀取溫度為負時fg=0
}
sdata = a/16+b*16; //整數部分
xiaoshu1 = (a&0x0f)*10/16; //小數第一位
xiaoshu2 = (a&0x0f)*100/16%10;//小數第二位
xiaoshu=xiaoshu1*10+xiaoshu2; //小數兩位
}
void DS18B20PRO(void)
{tmstart();
//dmsec(5);//如果是不斷地讀取的話可以不延時 //
tmrtemp();//讀取溫度,執行完畢溫度將存於TMP中 //
}
void Led()
{
if(fg==1) //溫度為正時顯示的數據
{ P2=P2&0xef;
P0=seg7code[sdata/10]; //輸出十位數
Delay(8); P2=P2|0xf0; P2=P2&0xdf;
P0=seg7code[sdata%10]|0x80; //輸出個位和小數點
Delay(8); P2=P2|0xf0; P2=P2&0xbf;
P0=seg7code[xiaoshu1]; //輸出小數點後第一位
Delay(8); P2=P2|0xf0; P2=P2&0x7f;
P0=seg7code[xiaoshu2]; //輸出小數點後第二位
Delay(4); P2=P2|0xf0;
}
if(fg==0)//溫度為負時顯示的數據
{ P2=P2&0xef;
P0=seg7code[11]; //負號
Delay(8); P2=P2|0xf0; P2=P2&0xdf;
P0=seg7code[sdata/10]|0x80; //輸出十位數
Delay(8); P2=P2|0xf0; P2=P2&0xbf;
P0=seg7code[sdata%10]; //輸出個位和小數點
Delay(8); P2=P2|0xf0; P2=P2&0x7f;
P0=seg7code[xiaoshu1]; //輸出小數點後第一位
Delay(4); P2=P2|0xf0;
}
}
main()
{fg=1;
while(1)
{
DS18B20PRO();
Led();
}
}
『肆』 通過51單片機讓語音晶元控制輸出「謝謝你」這句話的程序如何寫啊急求!!用c語言寫!急急急!!
其實實現這個功能也不是很難,但是你一定要選擇一款合適的語音晶元,我前兩天剛做了一個這方面的東東,51上的控制很簡單,只有幾條語句,控制一下語音晶元的時序就可以了。下面是控制代碼:
//TG2 、TG1 分別語音晶元的兩個控制管腳
TG2 = 0;
for(i=0;i<250;i++); // 延時750us
TG2 = 1;
for(i=0;i<250;i++); // 延時750us
TG1 = 1;
for(j=0;j<360;j++); // 延時 2 ms
TG1 = 0;
就這幾條語句,就可以發音了。希望對你有所幫助。
並且不同的語音晶元,控制方法也不一樣,你應該把你的語音晶元的型號告訴我們,也許正好有人用過呢,或者正在用,大家可以一起交流一下的,
『伍』 誰編寫過WT588D語音晶元的程序 這個需要怎樣下載和使用 用51單片機可以編寫他的程序嗎!!!!!!!
WT588D這個語音晶元不用編寫,它提供了多種介面 可以通過單片機來控制播放,語音內容及介面方式 是通過 上位機軟體來下載和設置的。WT588D內部有SPI-FLASH,SPI-FLASH的容量就決定了可播放文件的長度。
『陸』 51單片機如何實現語音功能
單片機需要增加語音功能,要麼選擇功能強大stm32之類的晶元,用內部的dac來模擬輸出,要麼就外掛一個語音晶元
語音晶元的作用
1、顧名思義,就在是產品上增加語音播報的功能,實現的也就是把語音播放出來
2、常見的如:停車場報金額、電梯報站、貨車報「左轉彎,請注意」等等,應用非常的廣泛
語音晶元的種類,不過主要的分類基本也就大致三種
1、第一種,稱之為OTP,就是那種SOP8封裝的語音晶元,內置幾段常用的語音,出廠之後就固話死了,不可修改
2、第二種,稱之為flash語音晶元,通常是一個主控晶元外掛一個spiflash,主控晶元是不變的,而flash則是可以重復燒錄的,但是語音往往只支持wav,所以音質會壓縮的很差。代表的如WT588D
3、第三種,就是現在最優秀的KT404A晶元,他是支持MP3解碼,比前面的兩種在技術上是一個跨越,將MP3這種優秀的技術應用於語音晶元上,同時他強大的usb直接虛擬flash成為U盤,這樣更新語音非常方便
您選的單片機有4個串口,隨便拿一個出來控制KT404A就好了
KT404A外掛一個spiflash,通過usb直接更新語音
『柒』 想做一個基於51單片機的語音控制
51單片機做語音識別基本上不可能,你可以用凌陽單片機做,一套100多,當年畢業設計用凌陽做的成績基本很差,不是設計不好,而是凌陽做得比較完美,把各個部件一組裝,把程序一修改,就可以語音控制了,太簡單了所以得低分。
建議你用凌陽單片機做,網上有專業網站介紹,而且非常簡單。
具體設計太簡單了,還真不好說。
『捌』 用51單片機實現簡短提示音的播放,只用實現播放功能呢,不用實現錄音,該什麼晶元實現呢
簡單的做法就是,你去買個語音晶元。控制語音晶元放音即可。
PM66或者ISD1700的晶元都可以
不過這些語音晶元都需要類似「編程器」的設備將語音事先燒錄進去。你可以和賣家協商,讓他們給你燒錄幾片做實驗。
『玖』 51單片機通過什麼控制語音晶元ISD4004進行錄放的語音晶元ISD4004對咪頭採集的語音信號做了什麼處理
看你怎麼用了,如果你的設備應用時只播放不錄音或者需要預置一部分特定的語音,就需要使用專門的拷貝機編程來進行批量生產,否則不需要。單片機訪問4004隻需要通過介面線按協議發送控制命令就行了,不復雜。