急!为什么我做的温度传感器显示85度不变了?
-
在proteus里面已经仿真成功了,但电路连完后只显示85度不变,上拉电阻用的是10K的排阻,求高人指点啊!#include
#include sbitDQ=P1^2;sbitLED=P1^0;sbitspeaker=P... 在proteus里面已经仿真成功了,但电路连完后只显示85度不变,上拉电阻用的是10K的排阻,求高人指点啊! #include #include sbit DQ=P1^2; sbit LED=P1^0; sbit speaker=P1^1; #define uchar unsigned char #define uint unsigned int bdata uchar a,b; //定义a,b位于位选区 sbit mybit=b^7; uint temp,k,t,s; float p; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0x40}; void delay_18B20(uint i) //延时程序 {while(i--);
} void Init_DS18B20(void) //初始化DS18B20 { uchar x=0; DQ=1; delay_18B20(8); DQ=0; delay_18B20(80); DQ=1; delay_18B20(14); x=DQ; delay_18B20(20); } uchar ReadOnechar(void) //读取一个字符 { uchar i,dat; dat=0; for(i=0;i<8;i++) { DQ=0; dat>>=1; DQ=1; if(DQ) dat|=0x80; delay_18B20(4); } return (dat); } void WriteOnechar(uchar dat) //写入一个字符 { uchar i=0; for(i=0;i<8;i++) { DQ=0; DQ=dat&0x01; delay_18B20(5); DQ=1; dat>>=1; } } void ReadTemp(void) //温度转换 { Init_DS18B20(); WriteOnechar(0xcc); WriteOnechar(0x44); delay_18B20(100); Init_DS18B20(); WriteOnechar(0xcc); WriteOnechar(0xbe); delay_18B20(100); a=ReadOnechar(); b=ReadOnechar(); t=b&0x07; t<<=8; t=t|a; if(mybit) {t=~t+1;
t=t&0x07ff;
} p=t*0.0625; s=p*10+0.5; } void delay(uint z) { uint s,t; for(s=0;sfor(s=0;s for(t=0;t<40;t++);
} void display(uchar num0,uchar num1,uchar num2,bit num3) //显示程序 { P2=0xfe; P0=table[num2]; delay(4); P2=0xfd; P0=table[num1+10]; delay(4); P2=0xfb; P0=table[num0]; delay(4); num3=mybit; if(num3) {P2=0xf7;
P0=0x40;
delay(4);
} } void main() { uchar num0,num1,num2; //百、十、个、符号位 bit num3; LED=0; while(1) { ReadTemp(); num0=s/100; num1=(s-num0*100)/10; num2=s%10; if(p>33&&(!mybit)) { LED=1; speaker=0; } else {LED=0;
speaker=1;} display(num0,num1,num2,num3); } } 展开
全部评论(1条)
-
- 新乐小男人year 2012-07-10 00:00:00
- 应该不是程序的问题,Proteus仿真中只是显示温度传感器的温度,你可以该改变温度传感器的温度对应显示就改变了。
-
赞(20)
回复(0)
热门问答
- 急!为什么我做的温度传感器显示85度不变了?
- 在proteus里面已经仿真成功了,但电路连完后只显示85度不变,上拉电阻用的是10K的排阻,求高人指点啊!#include
#include sbitDQ=P1^2;sbitLED=P1^0;sbitspeaker=P... 在proteus里面已经仿真成功了,但电路连完后只显示85度不变,上拉电阻用的是10K的排阻,求高人指点啊! #include #include sbit DQ=P1^2; sbit LED=P1^0; sbit speaker=P1^1; #define uchar unsigned char #define uint unsigned int bdata uchar a,b; //定义a,b位于位选区 sbit mybit=b^7; uint temp,k,t,s; float p; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0x40}; void delay_18B20(uint i) //延时程序 {while(i--);
} void Init_DS18B20(void) //初始化DS18B20 { uchar x=0; DQ=1; delay_18B20(8); DQ=0; delay_18B20(80); DQ=1; delay_18B20(14); x=DQ; delay_18B20(20); } uchar ReadOnechar(void) //读取一个字符 { uchar i,dat; dat=0; for(i=0;i<8;i++) { DQ=0; dat>>=1; DQ=1; if(DQ) dat|=0x80; delay_18B20(4); } return (dat); } void WriteOnechar(uchar dat) //写入一个字符 { uchar i=0; for(i=0;i<8;i++) { DQ=0; DQ=dat&0x01; delay_18B20(5); DQ=1; dat>>=1; } } void ReadTemp(void) //温度转换 { Init_DS18B20(); WriteOnechar(0xcc); WriteOnechar(0x44); delay_18B20(100); Init_DS18B20(); WriteOnechar(0xcc); WriteOnechar(0xbe); delay_18B20(100); a=ReadOnechar(); b=ReadOnechar(); t=b&0x07; t<<=8; t=t|a; if(mybit) {t=~t+1;
t=t&0x07ff;
} p=t*0.0625; s=p*10+0.5; } void delay(uint z) { uint s,t; for(s=0;sfor(s=0;s for(t=0;t<40;t++);
} void display(uchar num0,uchar num1,uchar num2,bit num3) //显示程序 { P2=0xfe; P0=table[num2]; delay(4); P2=0xfd; P0=table[num1+10]; delay(4); P2=0xfb; P0=table[num0]; delay(4); num3=mybit; if(num3) {P2=0xf7;
P0=0x40;
delay(4);
} } void main() { uchar num0,num1,num2; //百、十、个、符号位 bit num3; LED=0; while(1) { ReadTemp(); num0=s/100; num1=(s-num0*100)/10; num2=s%10; if(p>33&&(!mybit)) { LED=1; speaker=0; } else {LED=0;
speaker=1;} display(num0,num1,num2,num3); } } 展开
- 为什么单片机控制18B20测温初始总是显示85度然后显示测量值
- 空压机的温度传感器为什么显示全是星号?
- 视频头不显示连接、我的电脑中不显示视频设备
- 视频头拔下来重新插也没用,插的时候电脑什么反应也没有,怎么回事啊,很久没用摄像头了,重新用就这样了,怎么回事啊?
- 为什么我洗完头然后带上帽子头型就变了
- 恒温恒湿箱为什么在20度一下和85度以上不能做湿度?
- 为什么不用欧姆表做温度传感器
- 为什么不用欧姆表做温度传感器
- 为什么我的电脑接DVI线,有时候显示器不显示?
- 如题,我电脑是独立显卡,以前用的是VGA线,现在换成了DVI高清线,有时候会出现开了主机(主机一切运行正常能听到进系统的声音),显示器不显示,但是显示器有电,只是不显示。换线都不行,请问是为什么,是显卡问题,还是什么问题来的?有时候玩游戏,玩着玩... 如题,我电脑是独立显卡,以前用的是VGA线,现在换成了DVI高清线,有时候会出现开了主机(主机一切运行正常能听到进系统的声音),显示器不显示,但是显示器有电,只是不显示。换线都不行,请问是为什么,是显卡问题,还是什么问题来的?有时候玩游戏,玩着玩着突然死机,然后再重启也不会显示。每次我要解决这个问题就非的把那个DVI线接显卡的那头拼命的望显卡里面插,用手按住,启动起来有显示之后再松开手又OK了,有时候几天都不会出问题,郁闷。谢谢!请高手指点一下到底是什么问题。 展开
- 温度记录仪DR130,不显示测试,怎么解决???急!!!
- proteus里的频率计为什么不显示
- 为什么我的金士顿dtge9检测不出芯片信息,也不显示品牌
- 急!!MCGS 组态软件6.2通用版历史曲线不显示??
- 无线测温仪为什么不显示温度
- 我的培养基高压灭菌后的PH值变化很大,变了1.0以上,为什么啊
- 急啊!~我的血液为什么偏黑????
- 我有一次去打吊瓶,打完吊瓶后,医生让我用棉球按一会,免得血留出来了,可是我耐不住性子,于是觉得没血出来了。我就去拿药。本来我都还没发现血正在顺着自己的指尖流下,还是医SF... 我有一次去打吊瓶,打完吊瓶后,医生让我用棉球按一会,免得血留出来了,可是我耐不住性子,于是觉得没血出来了。我就去拿药。本来我都还没发现血正在顺着自己的指尖流下,还是医SF现了跟我说的。我立马跑到给我打吊瓶的那个医生那里,让她给我处理一下。没想到她说我的血偏黑,要去检查一下。他不说不知道,一说吓一跳啊!`果真是蛮黑的,望知此结果的朋友,告知一下。感激不尽。。。。谢拉。 展开
- 溢流阀安装的电磁流量计为什么不显示流量
- OTDR十公里以下光显示曲线不显示数据为什么?
5月突出贡献榜
推荐主页
最新话题
-
- #DeepSeek如何看待仪器#
- 干体炉技术发展与应用研究
- 从-70℃到150℃:一台试验箱如何终结智能...从-70℃到150℃:一台试验箱如何终结智能调光膜失效风险?解决方案:SMC-210PF-FPC温湿度折弯试验箱的五大核心价值1. 多维度环境模拟,覆盖全生命周期测试需求超宽温域:支持-70℃至+150℃的极限温度模拟(可选配),复现材料在极寒、高温、冷热冲击下的性能表现;控湿:湿度范围20%~98%RH(精度±3%RH),模拟热带雨林、沙漠干燥等复杂工况,暴露材料吸湿膨胀、分层缺陷;动态折弯:0°~180°连续可调折弯角度,支持R1~R20弯曲半径设定,模拟实际装配中的微小应力,提前预警裂纹、断裂风险。
参与评论
登录后参与评论