矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 9994|回复: 19

电脑显示气温DIY

  [复制链接]
     
发表于 2011-9-7 22:24:48 | 显示全部楼层 |阅读模式
电脑显示气温DIY

                                                                                                万里江山2010-04-02

用一个单总线集成温度传感器DS1820获取当前气温,通过串口打印出来,并附带时间,

呵呵,以后做一个温度采集器不错的啦。

1.jpg


原理图
2.jpg

电脑超级终端打印的效果,哈哈哈





附注:C脚本

#include <AT89X52.h>
#include<stdio.h>
#include"DS1820_tem_read.h"//DS1820驱动头文件

unsigned int hour=23 ,min=4,sec=0,clk=0;//时,分,秒,时基

main()



{  


   float temp; //存放温度
   TMOD = 0x21;                              //T1工作方式1,用于设定波特率
   TH1  = 0xFd;                              //波特率4800Bps,12MHz晶振
   TL1  = 0xFd;
   TL0= 0x4b;//定时初值
   TL1=0xff;

   PCON |= 0x00;                             //SMOD = 1,波特率加倍
   SCON = 0x50;                              //允许发送接收
   ES   = 0;                                            //禁止串口中断

   ET0   =1;//允许T0中断
   EA=1;                                

   TI   = 1;
   TR0  = 1 ;
   TR1  = 1;


while(1)
{

if((sec%2==0)&&(clk<20)&&(clk>18))
{
  temp= tem_read ();

printf("\f\033[1;42;31m热爱电子,热爱机电\033[m\n"); // 清屏\附带彩色(高亮,背景绿,字体红),背景信息发送
    printf("\033[1;40;37m当前的气温是:%.2f度\n" , temp )  ;//附带彩色(高亮,黑底白字),背景信息发送
printf("\033[m时间是:%d:%d:%d \n", hour, min, sec) ;
}
  }

}



void time_sever(void) interrupt 1 using 1
{ TL0= 0x4b;
   TL1=0xff;
   clk++;
   if(clk==20)
     {
   clk=0;
   sec++;
  P1_0 =! P1_0;
   if(sec==60)
     {
    sec=0;
    min++;
    if(min==60)
       {
      min=0;
      hour++;
       if(hour==24)
       hour=0;
     }
    }
    }
}
发表于 2011-9-7 23:40:23 | 显示全部楼层
不错,呵呵.
回复 支持 反对

使用道具 举报

     
发表于 2011-9-8 08:15:16 | 显示全部楼层
我在想,这东西是不是不用单片机也可以做得出来呢?
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2011-9-8 20:31:14 | 显示全部楼层
不用单片机是可以的,模拟电表的那种
回复 支持 反对

使用道具 举报

发表于 2011-9-8 20:58:22 | 显示全部楼层
显示的时间能否带上年月日!
回复 支持 反对

使用道具 举报

     
发表于 2011-9-8 21:04:23 | 显示全部楼层
如果用上位机采集数据,直接用上位机的日期和时间就可以
楼主这个时钟做的比较简单,是个演示程序
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2011-9-8 22:32:17 | 显示全部楼层
显示的时间能否带上年月日!
华诚筑邦 发表于 2011-9-8 20:58


这个是可以的,增加读年日日(公历)的代码就可以了,DS1302里面有
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2011-9-8 22:33:59 | 显示全部楼层
如果用上位机采集数据,直接用上位机的日期和时间就可以
楼主这个时钟做的比较简单,是个演示程序
slsdz 发表于 2011-9-8 21:04


坛友所言其是,可以使用电脑本身的时间(但这个要写上位机软件),也可以用单片机发出的时间(串口发送)
回复 支持 反对

使用道具 举报

发表于 2011-9-8 22:37:27 | 显示全部楼层
这个有成品机或套件吗?
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2011-9-8 22:54:12 | 显示全部楼层
本帖最后由 yangcheng84 于 2011-9-8 22:55 编辑
这个有成品机或套件吗?
华诚筑邦 发表于 2011-9-8 22:37



   
    这个是和坛友们分享学习用的,没有套件。其实它很简单,如果你手头有51/52单片机,能够加载程序的话,请再买或者找一个数字温度传感器DS1820(5--7块钱零售,进口),按上图接好,然后加载下面的目标代码就可以了

电脑回读气温DIY.rar (22.91 KB, 下载次数: 1174)
回复 支持 反对

使用道具 举报

发表于 2011-9-8 23:05:36 | 显示全部楼层
回复 10# yangcheng84


    谢谢先! 找找可能有!!
回复 支持 反对

使用道具 举报

     
发表于 2011-9-9 08:40:49 | 显示全部楼层
学习
回复 支持 反对

使用道具 举报

发表于 2011-9-9 09:42:24 | 显示全部楼层
现在15元的数显闹钟都有温度显示功能了。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2011-9-9 20:07:03 | 显示全部楼层
现在15元的数显闹钟都有温度显示功能了。
我很简单 发表于 2011-9-9 09:42



我不得不承认,假如单单搞温度计,大可使用指针表或者数码管,LCD之类的,何必大动干戈呢?这位朋友,您是否注意到这个实验有一个特点:利用计算机串口和单片机通信,直接把单片机计算结果显示出来,而显示用的软件正是WINDOW  XP系统自带的串口通信软件,通过单片机设置参数,屏幕上是可以带着颜色打印信息的,字体大小也可改变,我个人认为学习交流的目的是为了进步,如果对于知识的求取过程被简单的用XX元就可以办到,那我看,我们的论坛几乎没有可以讨论的地方,因为“全都可以用钱去衡量,去折算,不值一提!”
回复 支持 反对

使用道具 举报

     
发表于 2011-9-9 22:45:26 | 显示全部楼层
回复 13# 我很简单


    有些指针手表连日期都没有,更别说温度了,都卖5位数以上..
听说而已,不曾拥有
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-30 13:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表