(完整版)基于51单片机的温度报警器设计毕业设计

/*****延时子程序*****/ void Delay_DS18B20(int num) {

while(num--) ; }

void delay()//5微秒延时函数 { ;; }

void start() //开始信号 { }

void stop() //终止信号 { }

SDA=1; delay(); SCL=1; delay(); SDA=0; delay();

SDA=0; delay(); SCL=1; delay(); SDA=1; delay();

void respons() //应答 {

uc i; SCL=1; delay();

while((SDA==1)&&(i<250))i++;//如果SDA为低应答有效,或者超过一定时间默

认应答有效 }

void init24c04()//I2C总线初始化 { }

void write_byte(uc date)//写操作 {

SCL=0; delay();

SDA=1; delay(); SCL=1; delay();

uc i,temp; temp=date; for(i=0;i<8;i++) {

temp=temp<<1; SCL=0;

}

delay(); } SCL=0; delay(); SDA=1; delay();

SDA=CY; delay(); SCL=1; delay();

uc read_byte()//读操作 {

uc i,k; SCL=0; delay(); SDA=1; delay();

for(i=0;i<8;i++) {

SCL=1; delay();

k=(k<<1)|SDA; SCL=0; delay();

}

}

return k;

void write_add(uc address,uc date)//往任意地址存数据 { }

uc read_add(uc address)//读随意地址内容 {

start();

write_byte(0xa0);//0xa0代表写入 respons();

write_byte(address); respons(); write_byte(date); respons(); stop();

uc date; start();

write_byte(0xa0);//0xa0代表写入 respons();

write_byte(address); respons(); start();

write_byte(0xa1);//0xa1代表读出 respons();

}

date=read_byte(); stop();

return date;//返回值

/*****初始化DS18B20*****/ void Init_DS18B20(void) {

uc w=0;

DQ = 1; //DQ复位 Delay_DS18B20(8); //稍做延时 DQ = 0; //单片机将DQ拉低

Delay_DS18B20(80); //精

>>闂傚倸鍊搁崐鎼佸磹閹间礁纾圭€瑰嫭鍣磋ぐ鎺戠倞妞ゆ帒顦伴弲顏堟偡濠婂啰绠绘鐐村灴婵偓闁靛牆鎳愰濠傗攽鎺抽崐鎰板磻閹惧墎妫柟顖嗗瞼鍚嬮梺鍝勭焿缂嶄線鐛崶顒夋晬闁挎繂妫岄幐鍛節閻㈤潧浠滄俊顖氾攻缁傚秴饪伴崼婵堫槰闂侀€炲苯澧い顏勫暣婵″爼宕卞Δ鈧〖缂傚倸鍊哥粔鏉懳涘Δ鈧悳濠氬锤濡や礁浜滈梺绋跨箰閻ㄧ兘骞忛搹鍦<缂備降鍨归獮鏍煙閸愯尙绠洪柕鍥ㄥ姌椤﹀绱掓潏銊ユ诞闁诡喒鏅犲畷姗€鎳犻鎸庡亝缂傚倸鍊风欢锟犲窗閺嶎厽鍋嬮柟鎯х-閺嗭箓鏌熼悜姗嗘畷闁稿﹦鍏橀幃妤呮偨閻ц婀遍弫顕€骞嗚閺€浠嬫煟濡櫣浠涢柡鍡忔櫅閳规垿顢欑喊鍗炴闂佺懓绠嶉崹纭呯亽婵炴挻鍑归崹鎶藉焵椤掑啫鐓愰柕鍥у瀵潙螖閳ь剚绂嶆ィ鍐┾拺闁告繂瀚悞璺ㄧ磼閺屻儳鐣烘鐐叉瀵噣宕奸锝嗘珫婵犵數鍋為崹鍫曟晝閳哄倸顕遍柨鐕傛嫹<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4