温度控制,可以显示实时时钟,并检测实时温度,对温度上下限进行设置,超过范围报警,并可以加热制冷
注意:时间设置可以对时间进行调整,温度上下限设置可以对范围调整
压力报警程序预设120-150,则上下10%报警,采集范围0-255
#include <REG51.H>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit DS1302_CLK = P1 ^ 7; /* 实时时钟时钟线引脚 */
sbit DS1302_IO = P1 ^ 6; /* 实时时钟数据线引脚 */
sbit DS1302_RST = P1 ^ 5; /* 实时时钟复位线引脚 */
sbit ADCS = P1 ^ 4; /* ADC0832 片选 */
sbit ADCLK = P1 ^ 2; /* ADC0832 时钟 */
sbit ADDI = P1 ^ 3; /* ADC0832 数据输入 / *因为单片机的管脚是双向的,且ADC0832的数据输入输出不同时进行, */
sbit ADDO = P1 ^ 3; /* ADC0832 数据输出 / *为节省单片机引脚,简化电路所以输入输出连接在同一个引脚上 */
bit LESS = 0;
sbit BUZ = P3 ^ 0;
sbit HOT = P3 ^ 1;
sbit COOL = P3 ^ 2;
sbit ACC0 = ACC ^ 0;
sbit ACC7 = ACC ^ 7;
char hide_sec, hide_min, hide_hour, hide_day, hide_week, hide_month, hide_year; /* 秒,分,时到日,月,年位闪的计数 */
sbit Set = P2 ^ 0; /* 模式切换键 */
sbit Up = P2 ^ 1; /* 加法按钮 */
sbit Down = P2 ^ 2; /* 减法按钮 */
sbit out = P2 ^ 3; /* 立刻跳出调整模式按钮 */
sbit DQ = P1 ^ 0; /* 温度传送数据IO口 */
char done, count, temp, flag, up_flag, down_flag;
uchar temp_value; /* 温度值 */
uchar TempBuffer[5], week_value[2];
bit showFlag = 1;
bit control = 0;
uchar LOW[7] = { '4', '5',' ',' ',' ',' ',' ' };
uchar UP[3] = { '6', '5', ' ' };
uchar LV = 45;
uchar UV = 65;
uchar value = 0;
uchar ADvalue[3];