研究目标:
研究课题是多功能水温控制系统的设计。要求系统温度测量范围大于要求的30~90℃,最小区分度为0.1℃,控制精度在0.5℃以内,温度控制的静态误差小于1℃。可利用按键系统调整控制水温的上下限设定。如果发现采集的温度值低于下限值就进行报警,并通过控制继电器使加热设备持续加热直到接近温度上限的温度,系统等待水温冷却在控制范围内。如果采集的温度值高于上限值,那么也有相应的报警声提示操作人员对水温进行控制。如果并没有超过上下限则不会报警。采集到的温度用数码管显示进行显示。本系统不仅具有一般水温控制系统的特点如设置温度上下限、报警等,还可以在水温过低时控制继电器使加热设备持续加热。废话不多说,直接上图。

仿真原理图如下

 

单片机源程序如下:

#include

#include

#include


#define uchar unsigned char

#define uint unsigned int


sbit key1=P3^0;

sbit key2=P3^1;

sbit key3=P3^2;

sbit led=P3^3;

sbit shenwen=P3^4;

sbit baojing=P3^5;

        

uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff,0xbf,0xc7,0x89};

uchar code tab3[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x3f,0xff};


uchar yi,er,san,si,san1;

uint shangxian=90,xiaxian=30,flag=0;


void delay(int ma);

void display1(uchar yi,uchar er,uchar san,uchar si);

void display2(uchar yi,uchar er,uchar san1,uchar si);

void keyscan();


void main()

{

          float wendu=0;

          int wenduzhen=0;


          yi=11;er=11;san=11;si=11;

          baojing=shenwen=1;//关闭蜂鸣器,继电器

                

          while(1)

                {

                  keyscan();


                  if(flag==0)//温度测试界面

                  {

                          wendu=temget();

                                

                          if(wendu                          {

                                          shenwen=0;

                                        baojing=0;

                          }

                          else if((wendu>=xiaxian) && (wendu<=shangxian) )

                          {

                                          baojing=1;//报警关闭

                          }

                          else if(wendu>=shangxian)//报警开启,烧水功能关闭

                          {

                                          shenwen=1;

                                        baojing=0;

                          }


                          wenduzhen=wendu*10;

                      yi=wenduzhen/1000;

                          er=wenduzhen%1000/100;

                          san=wenduzhen%100/10;

                          si=wenduzhen%10;         


                          display1(yi,er,san,si);

                  }

                

                  else         if(flag==1)//温度下限设置界面

                   {

                           yi=13;er=12;

                      san1=xiaxian%100/10;

                      si=xiaxian%10; 

                                  

                          display2(yi,er,san1,si);

                  }


                  else         if(flag==2)//温度上限设置界面

                   {

                           yi=14;er=12;

                      san1=shangxian%100/10;

                      si=shangxian%10; 

                                  

                          display2(yi,er,san1,si);

                  }

                 

                  if(xiaxian>=shangxian)led=0;//下限超过上限led亮

                  else led=1;


                }

}


void keyscan()

{

        if(key1==0)//设置界面

        {

                delay(5);

                if(key1==0)

                {

                  flag++;

                  if(flag>2)flag=0;

                }

                while(!key1);        

        }


          if(key2==0)//加数值

        {

                delay(5);

                if(key2==0)

                {

                          if(flag==1)

                        {

                                xiaxian++;

                                if(xiaxian>=89)xiaxian=89;

                        }

                        else if(flag==2)

                        {

                                shangxian++;

                                if(shangxian>=90)shangxian=90;

                        }

                }

                while(!key2);        

        }


        if(key3==0)//减数值

        {

                delay(5);

                if(key3==0)

                {

                          if(flag==1)

                        {

                                xiaxian--;

                                if(xiaxian<0)xiaxian=0;

                        }

                        else if(flag==2)

                        {

                                shangxian--;

                                if(shangxian<1)xiaxian=1;

                        } 

                }

                while(!key3);        

        }

}


void display1(uchar yi,uchar er,uchar san,uchar si)

{

                P2=0X01;

[1] [2]
关键字:水温控制系统  仿真设计  单片机 引用地址:多功能水温控制系统的仿真设计+单片机源码

上一篇:单片机点焊机控制完整程序+PCB电路图
下一篇:51系列单片机最小系统板开发板 加装上拉排阻

推荐阅读

此项认证为先进客户设计提供了经过验证的、可随时投产的流程 重点: · IC Compiler II和Design Compiler Graphical提供了统一流程,实现最低功耗、最佳性能和最优面积。 · StarRC、PrimeTime和PrimeTime PX支持全流程设计实现并提供时序和功耗分析的signoff支持。 · 具有先进仿真解决方案的新思科技定制设计平台...
var videoObject = { container: '.video', variable: 'player', autoplay: true, ...
三星有望提前发布Galaxy S系列旗舰,最快可能会在1月份亮相。今天三星Galaxy S21的摄像头模具曝光,可以看到它后置是三颗摄像头,造型预计为矩阵。目前尚不确定三星Galaxy S21的摄像头规格,今年三星在Galaxy S20系列上采用了两种不同的主摄,其中Galaxy S20主摄为1200万像素,Galaxy S20 Ultra主摄为一亿像素。从曝光的信息来看,三星Galaxy S21...
10月23日下午消息,华为开发者大会2021正式在东莞举行。在今日下午的“松湖对话”论坛上,华为消费者BG AI与智慧全场景业务部总裁王成录公布,基于鸿蒙的华为设备已有1.57亿台,第三方基于OpenHarmony的设备达到6000万台。  王成录预计,到今年年底第三方鸿蒙设备将达到1亿台,华为有信心,今年年内鸿蒙设备会超过3亿台。王成录认为,万物互联...

史海拾趣

问答坊 | AI 解惑

protel99中快捷键的使用

 文章来源:调频酷站    enter——选取或启动esc——放弃或取消f1——启动在线帮助窗口tab——启动浮动图件的属性窗口pgup——放大窗口显示比例pgdn——缩小窗口显示比例end——刷新屏幕del——删除点取的元件(1个)ctrl+d ...…

查看全部问答∨

关于aduc841

哪位大哥用过aduc841?哪里能够买到这款单片机的仿真器和开发板?请帮忙发送到我的邮箱里面rhchit@163.com,谢谢帮助!…

查看全部问答∨

看门狗应用--精华资料

在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状 ...…

查看全部问答∨

编程问题

起始码        数据长度        操作码        文件夹十位        文件夹个位        曲目百位        曲目十位  ...…

查看全部问答∨

安规距离--LED驱动必看

IEC60950/IEC60335/IEC60065/IEC61558 difference list…

查看全部问答∨

求16路4*4抢答器c程序

1) 抢答器的输入路数为16路; 2) 抢答时当某一方先按下按键,其他键则失效; 3) 用两个七段数码管显示抢中的路编号和倒数时间; 4) 系统复位键按下后,进行下一轮抢答; …

查看全部问答∨

c8051串口通讯连上仿真器可以通讯,断开就不行

c8051串口通讯连上仿真器可以通讯,断开就不行了,这是为什么?…

查看全部问答∨

大功率LED透镜 LED透光板用PMMA

replyreload += \',\' + 760663;Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答∨

【设计工具】virtex5 中文手册

      本技术文档介绍Virtex-5    框架包括:时钟资源,时钟管理技术,锁相环,block RAM,可配置逻辑模块(CLB,select IO资源,selectIO逻辑资源,高级SeclectIO逻辑资源   …

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved