基于单片机的ds18b20数字温度计内容摘要:

key2=1。 key3=1。 flag1=0。 flag3=0。 temp_h=0。 temp_l=0。 } void delayms(unsigned int v) { unsigned int m,n。 for(m=v。 m0。 m) for(n=73。 n0。 n)。 } void display()//温度显示函数 { shi=temp/100。 //获取十位 ge=temp%100/10。 //获取个位 xiao=temp%10。 //获取小数点后第一位 P2=0x00。 P0=0x05。 P2=table[shi]。 delayms(5)。 P2=0x00。 P0=0x06。 P2=table1[ge]。 delayms(5)。 P2=0x00。 P0=0x07。 P2=table[xiao]。 delayms(5)。 P2=0x00。 } void display_h()//显示上限温度 { shi=temp_h/10。 ge=temp_h%10。 xiao=0。 P0=0x04。 P2=0x76。 //显示 h delayms(5)。 P2=0x00。 P0=0x05。 P2=table[shi]。 delayms(5)。 P2=0x00。 P0=0x06。 P2=table1[ge]。 delayms(5)。 P2=0x00。 P0=0x07。 P2=table[xiao]。 delayms(5)。 P2=0x00。 } void display_l()//显示下限温度 { shi=temp_l/10。 ge=temp_l%10。 xiao=0。 P0=0x04。 P2=0x38。 //显示 l delayms(5)。 P2=0x00。 P0=0x05。 P2=table[shi]。 delayms(5)。 P2=0x00。 P0=0x06。 P2=table1[ge]。 delayms(5)。 P2=0x00。 P0=0x07。 P2=table[xiao]。 delayms(5)。 P2=0x00。 } void main()//主函数 { init()。 //调用初始化程序 while(1)//大循环 { while((flag1==0)amp。 amp。 (flag3==0))//模式 0, 显示温度 , flag1作为模式标志位 , 0为显示模式 , 1为上限调整模式 , 2为下限调整模式 { tmpchange()。 //温度转换 temp=tmp()。 display()。 //调用温度显示函数 if(key1==0)//按下 key1,则转换到上限调整模式 { delayms(200)。 flag1=1。 key1=1。 } } while((flag1==0)amp。 amp。 (flag3==1))//显示模式并开始比较 { feng=1。 tmpchange()。 //温度转换 temp=tmp()。 display()。 //调 用温度显示函数 //temp=temp/10。 while((temptemp_h)||(temptemp_l)) { tmpchange()。 //温度转换 temp=tmp()。 display()。 //调用温度显示函数 feng=0。 } } while(flag1==1)//。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。