标题: 做实物时,发现这个单片机程序温度是固定的,为什么不能改 [打印本页]

作者: xdoudou    时间: 2019-12-19 11:31
标题: 做实物时,发现这个单片机程序温度是固定的,为什么不能改




作者: ahshmj    时间: 2019-12-19 17:52
“单片机程序温度是固定的”是什么意思?

把程序贴上来让人看看。

你贴的截图,想试仿真一下都不行。
作者: xdoudou    时间: 2019-12-20 08:22
#include"reg51.h" #include"intrins.h" #defineucharunsignegchar #defineuintunsignedint #defineoutp0 sbitsmg1=out^4; sbitsmg2=out^5; sbitDQ=p3^7; voiddelay5(uchar); voidinit_ds18b20(void); ucharreadbyte(void); voidwritebyte(uchar); ucharretemp(void);  voidmain(void) { uchari,temp; delay5(1000); while(1) { temp=retemp(); for(i=0;i<10;i++) { out=(temp/10)&0x0f; smg1=0; smg2=1; delay5(1000); out=(temp%10)&0x0f; smg1=1; smg2=0; delay5(1000); } } } voiddelay5(ucharn) { do { _nop_(); _nop_(); _nop_(); n--; } while(n); } voidinit_ds18b20(void) { ucharx=0; DQ=0; delay5(120); DQ=1; delay5(16); delay5(80); } ucharreadbyte(void) { uchari=0; uchardate=0; for(i=8;i>0;i--) { DQ=0; delay5(1); DQ=1; date>>=1; if(DQ) date|=0x80; delay5(11); } return(date); } voidwritebyte(uchardat) { uchari=0; for(i=8;i>0;i--) { DQ=0; DQ=dat&0x01; delay5(12); DQ=1; dat>>=1; delay5(5); } } ucharretemp(void) { uchara,b,tt; uintt; init_ds18b20(); writebyte(0xcc); writebyte(0x44); init_ds18b20(); writebyte(0xcc); writebyte(0xBE); a=readbye(); b=readbye(); t=b; t<<=8; t=t|a; tt=t*0.0625; return(tt); }
作者: xdoudou    时间: 2019-12-20 08:24
要测室温,温度的显示应该是随温度的变化而变化的,但是我做的实物不能随温度的变化
作者: xdoudou    时间: 2019-12-20 08:26
温度固定的意思就是室温变化但是显示不变
作者: 没有你    时间: 2019-12-20 15:01
查看DS18b20能不能正常通信,晶振频率是否一致?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1