想让单片机隔10分钟测一次温度值(用DS18b20),求一个函数能让单片机等待10分钟!谢谢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了想让单片机隔10分钟测一次温度值(用DS18b20),求一个函数能让单片机等待10分钟!谢谢相关的知识,希望对你有一定的参考价值。

程序大部分已经写好了,就差延迟10分钟的函数了,谢谢奥!

给你个大概框架,我不知道你里面怎么样子,我就把读取温度并显示的函数统一写成ds1820();
bit t0;
int i;
void timer0_init()//开启定时器

TH0=(65535-50000)/256;//一次50MS;所以1秒要累计20次;你要十分钟,累计多少就自己算了。
TL0=(65535-50000)%256;
ET0=1;TR0=1;

void main()

TMOD=0x01;//定时器0,方式1;
EA=1;//开启中断;
timer0_init();//开启定时器

t0=1;//初值是1,为了第一次得到温度;
i=0;//累加数;
while(1)

if(t0==1) t0=0;ds1820();//如果1秒计时到了处理,同时要清零,防止无限进入。你的要求,只要计算一次就可以了。


void timer0 interrupt 1

TH0=(65535-50000)/256;//定时器初值回填,不懂看书的说明。
TL0=(65535-50000)%256;
i++;
if(i==20) i=0;t0=1;//加满后i要清零,同时说明计时到了。


纯手工打造,这对我来说知识花那么几分钟打字,对你可能在理解上能够节约不少时间,如果你诚心,就多给点分数,这样以后有问题,也会有更多解决问题的机会。
5分,也就我这样没事干的会来帮助你了。
参考技术A 用定时器加中断,比如你定时器最长定时时间为1分种,每次定时器溢出引发中断程序中变量i加1,到10的时候不就是10分钟了么,当然还有其他方法,程序不难,自己写写吧,追问

亲!本人是外行啊!C语言懂些但是单片机定时器神马的是一点都不懂啊,能给个程序范例给看看吗?劳烦啦~~~~

追答

懂c语言更简单了,照着手册来就行了,不同单片机程序也不同,你还是自己写吧,有些事情还是靠自己比较好

参考技术B 用定时器就行了啊,估计温度的程序不是你写的吧?我有类似的设计,不知道适不适合你,需要可以互相交流一下,或者直接找我要资料。

基于单片机温度监测监控报警系统设计-设计资料

【资源下载】下载地址:点击下载(820) 百度网盘

温度监测器功能描述:

1.主控芯片用的是51单片机(STC89C51)。

2.使用温度传感器DS18b20采集温度。

3.用1602液晶显示显示温度。

4.当温度达到设置的上下限时蜂鸣器报警。

5.温度的上下限可以用按键进行设置。

6.本资料有完整的开题报告任务书论文等。

 

 

 

 

 

以上是关于想让单片机隔10分钟测一次温度值(用DS18b20),求一个函数能让单片机等待10分钟!谢谢的主要内容,如果未能解决你的问题,请参考以下文章

单片机练习 - DS18B20温度转换与显示

温度传感器DS18B20

Proteus51单片机+双DS18B20浮点数温度显示

16.STC15W408AS单片机获取DS18B20温度

16.STC15W408AS单片机获取DS18B20温度

16.STC15W408AS单片机获取DS18B20温度