




免费预览已结束,剩余3页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DS2431 DS18B20 one wire 读写程序最近公司有一个产品用到了DS2431,我就将先前一个DS18B20的程序中加入了DS2431的按规定函数。先传给大家分享.大家可以使用,转载时请说明出处. 此程序不够完善,希望能支持多节点设备连接。单总线适用于单主机系统,能够控制一个或多个从机设备。主机可以是微控制器,从机可以是单总线器件,它们之间的数据交换只通过一条信号线。当只有一个从机设备时,系统可按单节点系统操作;当有多个从机设备时,系统则按多节点系统操作。 以下是程序:#includesystem.h#includeone wire.hunsigned char a_DS24318;/code by lyx and RyanHsiung#define DS_DQ_IN PORTAbits.RA4#define DS_DQ_OUT LATAbits.LATA4#define DS_DQ_TRISD TRISAbits.TRISA4void delay_us(unsigned char time) /delayms=1us of 20Mhz osc /不准确1us while(time-); /* CRC校验*/unsigned char crccheck(unsigned char *p,unsigned char len)unsigned char bit0,cbit,r,temp,i,j,byte;temp=0;for (j=0;jlen;j+) byte=pj; for(i=0;i1; r=cbitbit0; if(r=1) temp=temp0x8c; byte=byte1; return temp;/* 检查DS1820是否存在:如果DS1820不存在返回1,否则返回0*/unsigned char OneWire_ack(void) unsigned char ack; DS_DQ_TRISD=0; /输出 DS_DQ_OUT=0; /输出LOW /delay_us(500); delay_us(250); delay_us(250); delay_us(100); DS_DQ_OUT=1;/输出HIGH DS_DQ_TRISD=1;/RE2输入 delay_us(40);/delay_us(45); if(DS_DQ_IN=1) ack=1; / else ack=0;/ /delay_us(500); delay_us(250); delay_us(250); delay_us(100); return ack;/* 从DS1820读1字节数据*/ unsigned char OneWire_read(void) unsigned char i,byte,temp; byte=0x00; for (i=0;i8;i+) DS_DQ_TRISD=0;/RE2输出 DS_DQ_OUT=0;/输出LOW delay_us(1);/delay_us(3); DS_DQ_OUT=1;/输出HIGH DS_DQ_TRISD=1;/RE2输入 delay_us(5);/delay_us(10); if(DS_DQ_IN) byte|=0x80; / 读入 if (i1; delay_us(120);/delay_us(100); DS_DQ_TRISD=0;/RE2输出 delay_us(2);/delay_us(5); return byte;/* 写ROM或存贮器命令到DS1820*/void OneWire_write(unsigned char cmd) unsigned char i,j; DS_DQ_TRISD=0;/RE2输出 for (j=0;j1; /* 匹配DS1820*/ void OneWire_match(unsigned char *p) unsigned char i; do i=OneWire_ack(); while (i=0x01); OneWire_write(0x55); for(i=0;i=4);tem8l =(unsigned char)address; if(OneWire_ack() return;OneWire_write(0xcc);/跳过ROM匹配OneWire_write(0x0f);/发送写暂存器命令OneWire_write(tem8l);/发送地址低位OneWire_write(tem8h);/发送地址高位 for(i=0;i8;i+)data=*p_data;p_data+;OneWire_write(data);/ClrWDT();delay_us(25); if(OneWire_ack() return;OneWire_write(0xcc);/跳过ROM匹配OneWire_write(0xAA); /复制暂存器数据到存储器中temp8=OneWire_read();temp8=8;temp8+=OneWire_read();errors=OneWire_read(); if(errors!=0x07)return 0; if(OneWire_ack() return;OneWire_write(0xcc);/跳过ROM匹配OneWire_write(0x55);/发出启动转换命令OneWire_write(tem8l);/发送地址低位OneWire_write(tem8h);/发送地址高位 OneWire_write(errors);for(i=0;i=4);tem8l =(unsigned char)address; if(OneWire_ack() return;OneWire_write(0xcc);/跳过ROM匹配OneWire_write(0x0f);/发送写暂存器命令OneWire_write(tem8l);/发送地址低位OneWire_write(tem8h);/发送地址高位 for(i=0;i8;i+)data=*p_data;p_data+;OneWire_write(data);delay_us(25); if(OneWire_ack() return;OneWire_write(0xcc);/跳过ROM匹配OneWire_write(0xAA); /复制暂存器数据到存储器中temp8=OneWire_read();temp8=8;temp8+=OneWire_read();errors=OneWire_read(); if(errors!=0x07)return 0; if(OneWire_ack() return;OneWire_write(0xcc);/跳过ROM匹配OneWire_write(0x55);/发出启动转换命令OneWire_write(tem8l);/发送地址低位OneWire_write(tem8h);/发送地址高位 OneWire_write(errors);for(i=0;i0;i-)a_DS24318-i=OneWire_read();/ClrWDT();return a_DS2431;void Start_convert_ds18b20(void)unsigned char i=1; if(OneWire_ack() return;OneWire_write(0xcc);/跳过ROM匹配OneWire_write(0x44); /启动DS1820转换unsigned int Read_convert_ds18b20(unsigned char flag_language)unsigned char i;unsigned char OneWire9;/存放从DS18B20读取的9字节数据unsigned int OneWire_temp;unsigned char flag_temp=0;if(OneWire_ack() return 0x5fff;OneWire_write(0xcc);/跳过ROM匹配OneWire_write(0xbe); /读转换后温度值for (i=0;i9;i+) OneWirei=OneWire_read(); OneWire_temp=OneWire1; OneWire_temp=OneWire_temp=4; if(OneWire_temp0) OneWire_temp-; if(flag_language!=0) OneWire_temp=OneWire_temp*9/5; if(flag_temp=1) if(OneWire_temp=32) OneWire
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《2025年度保密及竞业限制合同》
- 2025环保设备采购合同
- 2025YY年临时工合同协议范本
- 期货对冲策略试题及答案
- 什么叫经济考试题及答案
- 2025年南阳入团考试试题及答案
- 2025年ssop考试题及答案
- 2025年初中生物中考试题及答案
- 冬奥会管道施工方案审批
- 国企出纳考试试题及答案
- 人教版小学二年级上册数学口算题(全套)
- 2024年-2025年《公路养护》知识考试题库与答案
- NB-T31052-2014风力发电场高处作业安全规程
- FZ-T 01158-2022 纺织品 织物刺痒感的测定 振动音频分析法
- 工程部造价管控手册
- 汽车销售三方协议
- 氧气吸入的注意事项课件
- 20以内加减法口算题(10000道)(A4直接打印-每页100题)
- 天惊牌中药消毒剂专家讲座
- 中国建设工程造价管理协会《建设工程造价鉴定规程》
- 中国新生儿复苏指南解读(2021修订)
评论
0/150
提交评论