找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3316|回复: 2
打印 上一主题 下一主题
收起左侧

51单片机写的恒温箱程序 可控硅0,1控制灯泡亮灭

[复制链接]
跳转到指定楼层
楼主
ID:416820 发表于 2019-3-24 11:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
具有按键设置,声光报警,显示,自动调节等功能
使用DS18B20测试箱内温度,可控硅0,1控制灯泡亮灭,由此控制温度,具有LCD1602显示,按键设置上下限,声光报警功能。

单片机源程序如下:
  1. #include <reg52.h>
  2. #include "temp.h"
  3. #include "lcd.h"

  4. #define uchar unsigned char
  5. #define uint unsigned int
  6.         
  7. sbit key1=P3^1;//+
  8. sbit key2=P3^0;//-
  9. sbit silicon=P2^1;    //可控硅
  10. sbit BZ=P1^5;         //蜂鸣器
  11. sbit LED=P2^0;        //led标志位
  12.         
  13. uint temp,temps=26;//温度缓存变量,设定温度变量

  14. void delay(uint us)//延时函数
  15. {
  16.         for(;us>0;us--);
  17. }
  18. void keyson()                        //按键扫描程序
  19. {
  20.         if(!key1&&temps<60)
  21.         {
  22.                 delay(30);
  23.                 temps++;
  24.                 while(!key1);
  25.         }
  26.         if(!key2&&temps>0)
  27.         {
  28.                 delay(30);
  29.                 temps--;
  30.                 while(!key2);
  31.         }
  32. }
  33. void display()                //lcd1602显示界面
  34. {
  35.     LcdWriteCom(0x85);//当前温度
  36.                 LcdWriteData('C');
  37.                 LcdWriteData(':');
  38.                 LcdWriteData(temp/10+0x30);
  39.                 LcdWriteData(temp%10+0x30);
  40.                 LcdWriteData(0xdf);
  41.                 LcdWriteData('C');
  42.                 LcdWriteCom(0x80+0x45);//设置温度
  43.                 LcdWriteData('S');
  44.                 LcdWriteData(':');
  45.                 LcdWriteData(temps/10+0x30);
  46.                 LcdWriteData(temps%10+0x30);
  47.                 LcdWriteData(0xdf);
  48.                 LcdWriteData('C');
  49. }

  50. void beep()
  51. {
  52.         uchar k,g;
  53.         for (k=0;k<80;k++)
  54.         {
  55.                 BZ=~BZ;
  56.                 for(g=0;g<200;g++);
  57.         }
  58. }

  59. void main()
  60. {
  61.         uint i,j,flag=1,flag1;//标志位
  62.         LcdInit();                                                                                                                        //lcd1602初始化
  63.         for(i=0;i<60;i++)
  64.         temp=(float)Ds18b20ReadTemp()*0.0625;
  65.         while(1)
  66.         {
  67.                 temp=(float)Ds18b20ReadTemp()*0.0625;               
  68.                 display();                                                                                                                //lcd1602显示界面
  69.                 keyson();                                                                                                                        //按键扫描程序
  70.                 if(temp<temps)
  71.                 {
  72.                         silicon=0;                                                                         //低于设定温度,可控硅打开
  73.                         LED=0;
  74.                         flag=1;
  75.                 }
  76.                 if(temp>=temps)
  77.                 {
  78.                         silicon=1;
  79.                         if(flag==1)flag1=1,flag=0;
  80.                 }
  81.                 if(flag1==1)                                                                            //高于设定温度,可控硅关闭,声光报警
  82.                 {   
  83.                         LED=0;
  84. //                        BZ=0;
  85. //                        delay(40);
  86. //                        BZ=1;
  87.                         beep();
  88.                         delay(1);                                                           
  89.                         j++;
  90.                         if(j>35)flag1=0,j=0;
  91.                 }
  92.                 else        LED=1,BZ=1;                                       
  93.         }
  94. }
复制代码

Keil代码下载:
恒温箱-.zip (55.74 KB, 下载次数: 93)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:775921 发表于 2020-6-11 10:30 | 只看该作者
优秀,不错
回复

使用道具 举报

板凳
ID:68878 发表于 2022-2-1 09:28 | 只看该作者
谢谢分享 正需要谢谢楼主!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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