A. 用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();
}
}
B. stm32單片機控制isd1820模塊播放
提供一個觸發電平就夠了
C. 怎樣用「stc12c5a60s2」51單片機控制isd1820語音模塊,求程序,程序!!!!
簡單控制的話,用單片機控制的光耦或三極體開關代替1820電路的三個開關,復雜控制用SPI請參閱1820手冊
D. 單片機AT89S52和語音晶元ISD1820引腳怎麼連接,我要做一個單片機控制語音晶元,將超聲波的
你好!超聲波模塊有了嗎?超聲測量需要溫度補償嗎?
設計什麼時間交?可以嘗試完成
E. 語音晶元ISD1820
si liao
F. 如何用msp430單片機控制ISD1820語音模塊,無需按鍵即可實現語音的自動播放。
我最近剛調試的這款語音模塊,你需要的話,我把程序發給你,我把注釋都寫上了,你可以自己就轉換成自動播放
G. 如何用語音晶元ISD1820和光感測器連接在一起,可以給出電路圖么
我不給出你直接的電路圖,因為對你的光感型號等不知曉且不知道你要測光還是測暗的前提下無法給出,很多需要親自去測量調節的,我給出你方案,你自行改進,首先,你是不是將光耦當做觸發信號?那麼你需要做一個反向觸發器鏈接光耦,光耦供電用主供電串聯一個電阻再串聯光阻再將光耦串聯個可調電阻。從電阻和光耦間接出信號後接觸發器,調節可調電阻達到你需要的靈敏值。之後將這套電路代替我給你的圖的任意一個按鈕就好了……
H. ISD1820錄音語音模塊 取消咪頭可以嗎直接線路輸入錄音是否可行
錄音 (REC) 高電平有效.只要REC變高(不管晶元處在節電狀態還是正在放音)... 可以藉助ISD1425編程拷貝機加ISD1820P拷貝模塊的方案.用
I. 求助51/52單片機與ISD1820語音模塊的鏈接及原理圖^O^!
這個型號好像是語音晶元,
不是ds1820溫度晶元吧,
樓上幾位都搞錯了
J. 求助isd1820 錄放音模塊,如何用單片機定時控制輸出錄音
簡單控制的話,用單片機控制的光耦或三極體開關代替1820電路的三個開關,復雜控制用SPI請參閱1820手冊
用單片機發指令控制錄放的語音晶元可以選擇ISD品牌的,如果只用單片機定時放音的話可以選擇PM66系列的語音晶元(這顆晶元電路及控制指令都非常簡單,晶元的錄音需要專用的設備進行燒寫錄制)。