DS1621溫度傳感器實(shí)驗(yàn).doc
《DS1621溫度傳感器實(shí)驗(yàn).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《DS1621溫度傳感器實(shí)驗(yàn).doc(6頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
/* writer:shopping.w */#include #include #define uint unsigned int#define uchar unsigned charbit I2C_Busy, NO_Ack,Bus_Fault,point;uchar bdata a;sbit LSB = a0;sbit MSB = a7;sbit SDA = P33;sbit SCL = P32;uchar Array = 0,1,2,3,4,5,6,7,8,9;uchar command_data= 0xac,0x00,0xee,0xa1,0x00,0x00,0xa2,0x00,0x00,0xaa;uchar Prompt=Waiting for a while.r;uchar i;void DelayMS(uint ms) uchar i;while(ms-) for(i=0;i120;i+);void SendStop() SDA = 0;SCL = 1;_nop_();SDA = 1;I2C_Busy = 0;void SendByte(uchar wd) uchar i;a = wd;for(i=0;i8;i+) SCL = 0;_nop_();_nop_();SDA = MSB;a = 1;_nop_();_nop_();SCL = 1;_nop_();_nop_();SCL = 0;SDA = 1;SCL = 1;_nop_();_nop_();if(!SDA) SCL = 0;_nop_();_nop_();else NO_Ack = 1;SCL = 0;_nop_();_nop_();void Master(uchar slave_addr) I2C_Busy = 1;NO_Ack = 0;Bus_Fault = 0;if(!SCL | !SDA)Bus_Fault = 1;else SDA = 0;_nop_();_nop_();SCL = 0;_nop_();_nop_();SendByte(slave_addr);uchar RecvByte(uchar cnt)uchar i,rcv_data;for(i=0;i8;i+) SDA = 1;SCL = 1;_nop_();LSB = SDA;if(i7)a = 1;_nop_();SCL = 0;_nop_(); if(cnt = 1)SDA = 1;elseSDA = 0;SCL = 1;_nop_();SCL = 0;SDA = 1;_nop_();rcv_data = a;return rcv_data;void SendData(uchar slave_address,uchar start,uchar end) Master(slave_address);for(i=start;i200) val = 255-val;SendCharToSerialPort(-);if(!point)val+=1;SendCharToSerialPort(Array(val/10)/10);SendCharToSerialPort(Array(val/10)%10);SendCharToSerialPort(Arrayval%10);SendCharToSerialPort(.);if(point)SendCharToSerialPort(5);elseSendCharToSerialPort(0);SendCharToSerialPort( );SendCharToSerialPort(C);SendCharToSerialPort(r);void SetTemperatureLimit(uchar HI,uchar LO)command_data4 = HI;command_data5= 0;command_data7 = LO;command_data8 = 0;SendData(0x90,3,5);DelayMS(10);SendData(0x90,6,8);void StartConversion() SendData(0x90,2,2);DelayMS(750);uchar ReadTemp() uchar d;SendData(0x90,9,9);Master(0x91);d = RecvByte(0);point = RecvByte(1)7;SendStop();return d;void WriteConfig(uchar c) command_data1 = c;SendData(0x90,0,1);void main() uchar i; InitialiseSerialPort();while(Prompti!=0)SendCharToSerialPort(Prompti+);WriteConfig(0x02);StartConversion();SetTemperatureLimit(40,35);while(1) DelayMS(50);SendTemperatureToSerialPort(ReadTemp();- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- DS1621 溫度傳感器 實(shí)驗(yàn)
鏈接地址:http://ioszen.com/p-9303654.html