DS1621温度传感器实验.doc

上传人:wux****ua 文档编号:9303654 上传时间:2020-04-04 格式:DOC 页数:6 大小:19KB
返回 下载 相关 举报
DS1621温度传感器实验.doc_第1页
第1页 / 共6页
DS1621温度传感器实验.doc_第2页
第2页 / 共6页
DS1621温度传感器实验.doc_第3页
第3页 / 共6页
点击查看更多>>
资源描述
/* 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();
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!