本装置可以模拟温度报警系统,可以进行目标温度和警报温度的设计,未达到目标温度模拟加热的Led灯会出现一闪一闪的情况,达到设定的目标温度会停止模拟加热,当当前温度高于设定的警报温度时,蜂鸣器会进行报警。具体使用说明见设计书,还有就是有一点,不太会画PCB,所以可以不用打开PCB
仿真原理图如下
制作出来的实物图如下:
Altium Designer画的原理图和PCB图如下:
#include
#include"lcd.h"
#include"temp.h"
#include"general.h"
#include"ds1302.h"
/*******************************************************************************
* 函数名 : main
* 函数功能 :进入目标温度和报警温度设置页面后,需要返回温度显示页面,必须先返回万年历页面,此时再按温度显示键,方可进入温度显示页面
* 输入 : 无
* 输出 : 无
*******************************************************************************/
//全局函数
void LcdDisplay(int);
void DS1302_LcdDisplay();
void RES();//结果运算函数
void aim();
void alarm();
void change_temp();
//--定义全局变量
typedef unsigned int u16;
unsigned char Runmodel = Calendar;
unsigned char Temp[] = "Temperature"; //温度
unsigned char Date[] = "calendar"; //万年历
unsigned char Aim_tp[] = "AIM_TEMP";
unsigned char Alarm_tp[] = "Alarm_tp";
unsigned char Aim_temp = 27; //目标温度初始值
unsigned char Alarm_temp = 95; //报警温度初始值
unsigned char Aim_h,Aim_l,Alarm_h,Alarm_l,Alarm_mh;
int Now_temp;
//IO口设定
#define GPIO_KEY P1
sbit K1 = P2^0; //选择按键1,进入万年历模式
sbit K2 = P2^1; //选择按键2,进入温度测量模式
sbit K3 = P2^2; //选择按键3,进行目标温度和最高温度警报设置
sbit K4 = P1^0; //自加按键
sbit K5 = P1^1; //自减按键
sbit led = P2^3;
sbit beep=P1^5; //蜂鸣器响应
sbit reset = P3^2; //复位按键
void delay(u16 i)
{
while(i--);
}
void main()
{
unsigned char i = 0;
Isrint();
LcdInit(); //初始化LCD1602
while(1)
{
Runmodel = Run_Model();
if(K3 == PutDown)
{
Delay10ms(1);
if(K3 == PutDown)
{
LcdWriteCom(0x01);
LcdWriteCom(0x83);
for(i = 0;i<8;i++)
LcdWriteData(Aim_tp[i]); //第一次按下K3进行目标温度设定
LcdWriteCom(0xc5);
aim();
LcdWriteData(Aim_h);
LcdWriteData(Aim_l);
LcdWriteData(0xdf);
LcdWriteData('C');
while(1)
{
Delay10ms(10); //这里必须加个延迟,不然温度会一下子加三下
if(K4 == PutDown) //设置目标温度进行自加
{
Delay10ms(2);
if(K4 == PutDown)
{
Aim_temp++; //设置目标温度进行自加
aim();
LcdWriteCom(0xc5);
LcdWriteData(Aim_h);
LcdWriteData(Aim_l);
LcdWriteData(0xdf);
LcdWriteData('C');
}
}
if(K5 == PutDown) //设置目标温度进行自减
{
Delay10ms(1);
if(K5 == PutDown)
{
Aim_temp--;
aim();
LcdWriteCom(0xc5);
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』