网站大量收购独家精品文档,联系QQ:2885784924

DSP温度采集与显示设计程序.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP温度采集与显示设计程序

#includereg52.h sbit DQ1=P1^3; sbit DQ2=P1^4;//温度输入口 sbit DP=P1^2; int table[]={0xff,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}, i,k,value,MSB,LSB,temp,ss,w1,w2,w3,w4; void delay_50us(int m) { int j; for(;m0;m--) for(j=5;j0;j--); } void delay(int t) { while(t--); } /****************DS18B20复位函数************************/ void init1() { DQ1=1; delay(8); DQ1=0; delay(80); //大约600u秒,在12M晶振下 DQ1=1; delay(15); } /****************DS18B20写命令函数************************/ //向1-WIRE 总线上写1个字节 void write_byte1(int dat) //写一个字节 { for(i=0;i8;i++) { DQ1=0; DQ1=dat0x01; //此条语句可延时1u秒 delay(4); DQ1=1; dat=1; } delay(4); } /****************DS18B20读1字节函数************************/ //从总线上取1个字节 int read_byte1() //读一个字节 { for(k=0;k8;k++) { DQ1=0; value=1; DQ1=1; //释放总线 if(DQ1) value=value|0x80; delay(4); } return value; } /****************读出温度函数************************/ int read_temperature1() //读温度函数 { init1(); write_byte1(0xcc); //跳过ROM命令 write_byte1(0x44); //写转换指令 delay(300); init1(); write_byte1(0xcc); write_byte1(0xbe); //写读温度指令 LSB=read_byte1(); MSB=read_byte1(); ss=MSB0x0f8; if(ss==0x00) { MSB=4; MSB=MSB|(LSB0xf0)4; //整数部分? } else { DP=0;delay(50);DP=1; P2=7;P0=table[0]; MSB=0x00; } return MSB; } /****************温度数据处理函数************************/ void display1() //显示函数 { while(MSB10||MSB50) { DP=0;delay(50);DP=1; P2=7;P0=table[0]; read_temperature1(); } P2=4; P0=0x40; delay_50us(5); P2=5; P0=table[temp/10+1]; delay_50us(5); P2=6; //整数部分显示 P0=table[temp%10+1]|0x80; delay_50us(5); LSB=LSB0x0f; P2=7; P0=table[LSB%10+1]; //小数部分显示 delay_50us(5); } /****************DS18B20复位函数************************/ void init2() { DQ2=1; delay(8); DQ2=0; delay(80); //大约6

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档