单片机实例分享,温度记忆杯垫
“记忆杯垫”是我利用身边的材料制作的,杯垫材料是一张光盘,导热材料是硬币,用502胶水和加厚双面胶粘合,制作起来十分简单。
这个作品的设计初衷是源自个人的生活经验,希望和我有着一样烦恼的“技术宅”们会喜欢这个设计。笔者作为“职业码农”,常常遇到这样的困扰:早上冲好的咖啡,放着放着就凉了;同事胃不好,需要喝温水,可一忙就忘记了……想必每个人都有这样的经历,这次的设计,就是给大家解决这一问题——可以及时提醒人们饮用热饮。喜欢喝热饮的朋友,以后不必再因为冷却的热饮而苦皱眉头了!
功能描述
“记忆杯垫”能实现以下功能:当我们把装有温度较高液体的杯子放到杯垫上时,杯垫上安装的温度传感器开始测量杯子的底部温度,只要杯子不是隔热材料的,那么杯子的表层温度就会和里面的液体温度成正比,当杯子内的液体降到了适合人的饮用习惯时,此时按下“记忆键”,杯垫就将永久记录下此时的杯子底层温度;当使用者再次将装有热饮的杯子放在杯垫上时,液体在降温过程中,只要杯子的底层温度与之前记忆的温度接近,杯垫就可以根据设计者的要求提示主人饮用,比如通过闪烁灯提示或者通过音乐提示。
工作原理
这次设计的核心就是围绕温度传感器DS18B20和单片机EEPROM的应用。
DS18B20采集温度,单片机负责数据的处理,当有温度需要记录时,单片机将待记录温度存储到单片机EEPROM中;当EEPROM中有了温度记录后,单片机将采集到的数据与EEPROM中数据随时进行比较,当数据接近时,就会做出相应输出,开启提示功能。
当下次冲好了一杯咖啡,就可以把杯子放到杯垫上面了,温度传感器会将采集到的温度T值与EEPROM里的数值A做比较,当A-1 < T < A+1 时,杯垫侧面的8个发光二极管就会闪烁,以此来提示主人喝咖啡或水。
温度的差值也可以根据设计者的需要自行改变,比如在比较寒冷的地区,T与A的差值可以通过改变程序来实现。笔者在南方,实际测试的时候发现T与A的值在±1之间就可以了。
记忆键在向单片机记录温度数据的时候,也会擦除之前的数据,这样一个按钮就可以完成需要的操作。
国产的STC单片机大多数都自带了一定大小的EEPROM,这就给设计者带来了极大的方便。为了让电路更加简洁,这次选用的是STC11F04E的1T单片机,其具备4KB的程序存储空间和1KB的EEPROM空间,20引脚的封装设计大大减小了PCB面积。图15.1为电路原理图,制作说明见图15.2、图15.3。
图15.1 电路原理图
图15.2
图15.2 光盘中间的圆孔用来放置温度传感器,上面用金属片导热材料固定,并涂上硅脂,增加导热效果,因为大多数杯子底部是凹进去的,也可以用硬币这种有一定厚度的材料导热。
图15.3
图15.3 杯垫的背面,用双面胶(电工固定线盒那种)粘住电池盒、电路板、流水灯,温度传感器已经粘在电路板下面了
程序设计
这里要作出说明的是,大多数DS18B20程序代码都是为12T单片机设计的,而1T单片机指令速度要比12T单片机快很多,这就导致了通常的DS18B20程序不能直接拿来调用。笔者根据STC的官方资料,通过计算指令外加逻辑分析仪测试的方式,得出的结论是,11系列的1T单片机指令要比12T单片机快6.5倍左右,根据这个数据来修改原始DS18B20程序的延时程序和EEPROM程序,就能保证系统的稳定性。
STC绝大多数芯片都集成了EEPROM,不同型号的擦写程序也是大同小异,使用起来十分方便,无需额外EEPROM的IC,更不需要IC通信程序。因为是内部集成的,程序代码简单,很好理解,节约了设计成本的同时,也给应用者节约了程序设计时间。
STC的官方资料很明确地给出了EEPROM的原始程序,笔者根据自己的理解,为使程序更加简洁,对官方程序作了一些改动,应用了C语言的宏定义,自己也做了对应的库文件,方便实用。本程序是在Keil环境下编译的,使用时要添加我自己写的basic.h、STC11Fxx_IAP.h文件,同时要下载官方的单片机库文件,这样方可保证程序的正确编译。
■ 本制作的相关源文件可以到qq群657864614进行下载。 ■介绍一个与众不同的淘宝店铺:首页-数码达人小二-淘宝网,不信你试试?单片机实例:六位显示数码管时钟((附闹钟设置,源码,原理图)
从左到右的开关控制分别为:秒设置、分设置、时设置、进入时间设置(设置时间需要按一下这个再按前面3个按键设置)、闹钟设置(通过前面3个按键设置)、保存设置(设置完成后按下保存并退出)。
时钟可以显示到秒位
数码管用的是共阴,共阳的话加三极管闲麻烦,没加。数码管a~g接的P0口,没用10K排阻上拉,试了下觉得亮度太低了,就都换成了2K的作为上拉。
有兴趣的可以给加上温度传感器,可以显示温度(我这里面就没加了)初学单片机没多久,欢迎大佬指导。材料如下:89C52*1 4位数码管*1+2位数码管*1(当然如果有六位的也可以直接用,找不到其他数码管了就这么混搭了) 有源蜂鸣器*1(试过无源,但时间计算过于占用资源导致发声不是很完美,大佬可以改一下) 轻触开关*7(1个用于复位,其余六个用于设置) + 自锁开关*1 电池*1 + 5V稳压*1
单 片 机 时 钟 源 码 程 序--戳可见--->51单片机六位显示数码管时钟实例(带闹钟设置,源码,原理图)
相关问答
选用Mcs-51 单片机 作为本设计核心器件.具有键盘输入 温度 给...[最佳回答]TheaimofthedesignistoachieveZnOYaminresistancebysinteringfurnacetemperaturecontrol.Mc...
单片机 、光耦[回答]1系统总体结构原理粮食在储藏期间,由于受环境、气候和通风条件等因素的变化,粮仓内温度或湿度会发生异常,这极易造成粮食的霉烂、或发生虫害。那么...
我想用按键设置 温度 的上下限,按键有三个,用 数码管 显示 温度 ,怎么写啊,我好想知道啊,请大家帮帮忙?是不是单片机之类的东西?输入就是3个按键,输出就是数码管?我说说我的思路。基本就是2个界面,选择界面和设置界面。我就当你有4个数码管了。3个按键,作用分...
...统涉及电、热、 单片机 控制等多方面内容.通过分析电加_作业帮[最佳回答]我看没有什么问题,把里面design全部换成designing,就可以了.
DS18B20 温度 传感器与 单片机 间的通信线(延长线)可以多长 - 15...加电源或者用寄生模式50-100用5V供电没没问题,只接一支DS18B20最远可以达到500m,18B20单线传输抗干扰能力本来就不高,线最长就几厘米,不管你用什...
单片机温度 控制系统怎么解决?单片机温度控制系统可以通过以下步骤来解决:选择合适的传感器:选用温度传感器来监测环境温度。连接传感器:将传感器与单片机连接,以便采集温度数据。编写...
单片机温度 传感器作用?温度传感器的作用:用物质各种物理性质随温度变化的规律把温度转换为电量。温度传感器是温度测量仪表的核心部分,品种繁多。按测量方式可分为接触式和非接触式...
基于51 单片机 的 温度 控制器_汽配人问答[最佳回答]图片为温度控制电路图。温度到达上限时led灯亮,并停止对RT的加热,温度达到下限时led灯灭并开始对RT进行加热。A1和A2为uA741运算放大器。引脚号在图...
学 单片机 可以接什么单?学习单片机可以搭建各种电子系统和项目,因此可以接很多不同的单元和硬件。以下是一些常见的单元和硬件,你可以使用单片机与其进行连接和控制:1.传感器:例如...
单片机 采集 温度 传感器怎么用?第一要完成温度传感器与单片机的硬件连接:(1)温度传感器是将非电量转换为电量即温度转换成电压(一般电压值较小为毫伏级的)因此需要加一级运算放大电路...