功能:
0.本系统采用STC89C52作为单片机
1.系统实时监测并显示当前温度,并通过四位数码管显示
2.超过设定阈值,蜂鸣器将报警,同时控制相应继电器实现降温或者加热
3.系统具备三个功能按键,可更改温度上限和下限
4.采用DC002作为电源接口可直接输入5V给整个系统供电
原理图:

PCB :

主程序:
#include // 包含头文件
#include #define uchar unsigned char // 以后unsigned char就可以用uchar代替
#define uint unsigned int // 以后unsigned int 就可以用uint 代替sbit DQ = P1^1; // DS18B20传感器的引脚定义
sbit w1 = P2^4; // 数码管第1位的控制引脚
sbit w2 = P2^5; // 数码管第2位的控制引脚
sbit w3 = P2^6; // 数码管第3位的控制引脚
sbit w4 = P2^7; // 数码管第4位的控制引脚
sbit Buzzer = P1^0; // 蜂鸣器引脚
sbit JdqLow = P2^0; // 温度过低继电器控制(加热)
sbit JdqHig = P2^1; // 温度过高继电器控制(降温)
sbit LedLow = P2^2; // 温度低指示灯
sbit LedHig = P2^3; // 温度高指示灯
sbit KeySet = P3^2; // 设置按键
sbit KeyDown = P3^3; // 减按键
sbit KeyUp = P3^4; // 加按键/* 数码管的显示值: 0 1 2 3 4 5 6 7 8 9 - */
uchar code Array1[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40 };/* 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. */
uchar code Array2[]={ 0xBf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef };uchar Buff[4]; // 显示缓冲区
uchar ShowID=1; // 当前显示的是哪一个数码管int AlarmLow=150; // 默认报警的温度下限值是15度
int AlarmHig=300; // 默认报警的温度上限值是30度/*********************************************************/
// 毫秒级的延时函数,time是要延时的毫秒数
/*********************************************************/
void DelayMs(uint time)
{uint i,j;for(i=0;i
仿真演示视频:
https://www.bilibili.com/video/BV1MG4y1p74C/
实物演示视频:
https://www.bilibili.com/video/BV1Cd4y1i7Ja/