目录
前言
微型计算器自20世纪70年代诞生以来,得以迅速发展、普及和应用。随着增强型8051单片机和嵌入式微处理器技术的飞速发展,以及单片机C语言应用的普及,单片机应用领域越来越广泛。
一、温控系统是什么?
随着社会的快速发展,科技的加速进步,测温仪器在各个领域应用越来越广泛,自动化和智能化已经成为现代的温度控制系统的主流发展方向。因为各行各业对于温度控制有着越来越高的要求,所以对温度的控制和测量就显得较为重要。温度控制器的使用范围越来越广泛,各种能够应用于不同领域的智能自动温度控制器随着产生。自动温度控制系统主要完成数据采集,温度定时的显示,温度控制,温度定时的设定以及报警等功能.
二、设计目的
对51单片机所学知识进一步强化理解和应用。
1.环境需求
软件:Proteus (文章中使用Proteus 8.6)
Keil (文章中使用Keil C51)
2.设计基础
掌握《C语言》、《单片机原理及应用》两门课程。
三、设计
1.C51程序设计
/*-----------------------------------------------
名称:18B20温度测量报警
内容:在LCD1602第一行可以显示当前温度,
第二行显示设定的温度区间,超过此温度区间,蜂鸣器报警。
温度区间可以通过用户按键设置
------------------------------------------------*/
#include<reg51.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#include<math.h>
#include<INTRINS.H>
#define uchar unsigned char
#define uint unsigned int
/******************************************************************/
/* 定义端口 */
/******************************************************************/
sbit led1=P1^3;// 温度超出范围指示灯
sbit led2=P1^4;
sbit buzzer=P3^3;//蜂鸣器引脚
sbit DQ=P3^7;//ds18b20 端口
sbit RS = P0^4;//1602数据/命令选择端(H:数据寄存器L:指令寄存器)
sbit RW = P0^5;//1602读/写选择端
sbit E = P0^6;//1602使能信号端
sbit key1=P3^4;//用户按键
sbit key2=P3^5;
sbit key3=P3^6;
/******************************************************************/
/* 全局变量 */
/******************************************************************/
int temp;//测得温度
char temp_max=40,temp_min=10;//设定的温度
char TempH,TempL;
uchar flag_get,num=0;
uchar code tab[]={'0','1','2','3','4','5','6','7','8','9'};//液晶显示
uchar tab1[]="min:010 max:040";//液晶第二行显示内容
uchar str[8];
/******************************************************************/
/* 延时函数 */
/******************************************************************/
void delay1(uint i)//短延时函数
{
while(i-