DS18B20测温,1602液晶显示。
有仿真程序,电原理图及PCB图。
主要功能:
当温控开关打开时,若测得环境温度大于设定温度,则继电器吸合
,启动压缩机工作;若测得环境温度小于设定温度,则继电器释放,
压缩机停止工作。
该实验可以应用于对温度控制精度要求不是很高的场合,例如,粮仓,
电冰箱,空调,电饭锅等。如果配以通讯接口,可以做成多点温度检
测监控系统。具有极强的扩展性。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)
单片机源程序如下:
- /*******************************************************************
- 智能温控器
- 问题描述:当温控开关打开时,若测得环境温度大于设定温度,则继电器吸合
- ,启动压缩机工作;若测得环境温度小于设定温度,则继电器释放,
- 压缩机停止工作。
- 该实验可以应用于对温度控制精度要求不是很高的场合,例如,粮仓,
- 电冰箱,空调,电饭锅等。如果配以通讯接口,可以做成多点温度检
- 测监控系统。具有极强的扩展性。
- 作者: LI YONG QIANG "XIAN technologcal university"
- 注意: 此文档为仿真程序,若要在试验板上验证,需要须改一下函数
-
- void lcd_wait(void)
- {
- DATAPORT=0xff;
- LCM_EN=1;
- LCM_RS=0;
- LCM_RW=1;
- _nop_();
- while(DATAPORT&BUSY);
- LCM_EN=0;
-
- }
- *******************************************************************/
- #include<reg51.h>
- #include<intrins.h>
- #include <absacc.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define BUSY 0x80 //lcd忙检测标志
- #define DATAPORT P0 //定义P0口为LCD通讯端口
- #define PLAYE_ADDR XBYTE[0XBFFF] //语音报警地址
- sbit RED_ALARM=P1^0; //红色指示灯
- sbit WRITE_ALARM=P1^1; //白色指示灯
- sbit GREEN_ALARM=P1^2; //绿色指示灯
- sbit BLUE_ALARM=P1^3;
- sbit P1_4=P1^4; //时钟调整
- sbit P1_5=P1^5; //时钟加
- sbit P1_6=P1^6; //时钟减
- sbit DQ = P1^7; //定义ds18b20通信端口
- sbit LCM_RS=P2^0; //数据/命令端
- sbit LCM_RW=P2^1; //读/写选择端
- sbit LCM_EN=P2^2;
- sbit sda=P2^3; //IO口定义
- sbit scl=P2^4; //LCD使能信号
- sbit ad_busy=P3^2; //adc中断方式接口
- sbit RECLED_EOC=P3^5; //ISD1420放音结束查询标志
- sbit OUT=P3^7;
- uchar ad_data; //ad采样值存储
- uchar seconde; //定义并初始化时钟变量
- uchar minite;
- uchar hour;
- uchar mstcnt=0;
- uchar temp1,temp2,temp; //温度显示变量
- uchar t,set;
- uchar K;
- bit ON_OFF=0;
- bit outflag;
- bit write=0;
- uchar code str0[]={"--- : : --- "};
- uchar code str1[]={"SET: C SA: . C"};
- void delay_LCM(uint); //LCD延时子程序
- void initLCM( void); //LCD初始化子程序
- void lcd_wait(void); //LCD检测忙子程序
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
温控器.zip
(647.92 KB, 下载次数: 59)
|