资源简介
温度传感器将温度显示在LCD1602上,高温和低温预警,并带动相应的继电器
【文件目录】
51黑论坛_基于单片机的温控系统
├── 1-程序
│ ├── sw.LST
│ ├── sw.OBJ
│ ├── sw.c
│ ├── 水温
│ ├── 水温.M51
│ ├── 水温.Uv2.bak
│ ├── 水温.hex
│ ├── 水温.lnp
│ ├── 水温.opt.bak
│ ├── 水温.plg
│ ├── 水温.uvopt
│ ├── 水温.uvproj
│ ├── 水温_Opt.Bak
│ ├── 水温_Uv2.Bak
│ └── 水温_uvopt.bak
└── 5-protus仿真
├── ISIS.dmp
├── LCDShow.DSN
├── LCDShow.PWI
└── Last Loaded LCDShow.DBK
2 directories, 19 files
代码片段和文件信息
#include
#define uint unsigned int
#define uchar unsigned char //宏定义
#define LCD1602 P0
sbit SET=P3^1; //定义调整键
sbit DEC=P3^2; //定义减少键
sbit ADD=P3^3; //定义增加键
sbit BUZZ=P3^6; //定义蜂鸣器
sbit ALAM=P1^2; //定义灯光报警
sbit ALAM1=P1^4;
sbit DQ=P3^7; //定义DS18B20总线I/O
sbit RS = P2^7;
sbit EN = P2^6;
bit shanshuo_st; //闪烁间隔标志
bit beep_st; //蜂鸣器间隔标志
uchar x=0; //计数器
uchar code tab1[]={“Now Tem: . C “};
uchar code tab2[]={“TH: C TL: C“};
uint c;
uchar Mode=0; //状态标志
signed char TH=40; //上限报警温度,默认值为40
signed char TL=10; //下限报警温度,默认值为10
//============================================================================================
//====================================DS18B20=================================================
//============================================================================================
/*****延时子程序*****/
void Delay_DS18B20(int num)
{
while(num--) ;
}
void delay(uint xms)//延时函数,有参函数
{
uint xy;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}
/*****初始化DS18B20*****/
void Init_DS18B20(void)
{
unsigned char x=0;
DQ = 1; //DQ复位
Delay_DS18B20(8); //稍做延时
DQ = 0; //单片机将DQ拉低
Delay_DS18B20(80); //精确延时,大于480us
DQ = 1; //拉高总线
Delay_DS18B20(14);
x = DQ; //稍做延时后,如果x=0则初始化成功,x=1则初始化失败
Delay_DS18B20(20);
}
/*****读一个字节*****/
unsigned char ReadOneChar(void)
{
unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 给脉冲信号
dat>>=1;
DQ = 1; // 给脉冲信号
if(DQ)
dat|=0x80;
Delay_DS18B20(4);
}
return(dat);
}
/*****写一个字节*****/
void WriteOneChar(unsigned char dat)
{
unsigned char i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = dat&0x01;
Delay_DS18B20(5);
DQ = 1;
dat>>=1;
}
}
/*****读取温度*****/
unsigned int ReadTemperature(void)
{
unsigned char a=0;
unsigned char b=0;
unsigned int t=0;
float tt=0;
Init_DS18B20();
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0x44); //启动温度转换
Init_DS18B20();
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0xBE); //读取温度寄存器
a=ReadOneChar(); //读低8位
b=ReadOneChar(); //读高8位
t=b;
t<<=8;
t=t|a;
tt=t*0.0625;
// t= tt*10+0.5; //放大10倍输出并四舍五入
t= tt*10+0.5;
return(t);
}
/*****读取温度*****/
void check_wendu(void)
{
c=ReadTemperature()-5; //获取温度值并减去DS18B20的温漂误差
if(c>1200)
c=1200;
}
/********液晶写入指令函数与写入数据函数,以后可调用**************/
void write_1602com(uchar com)//****液晶写入指令函数****
{
RS=0;//数据/指令选择置为指令
// rw=0; //读写选择置为写
LCD1602=com;//送入数据
delay(1);
EN=1;//拉高使能端,为制造有效的下降沿做准备
delay(1);
EN=0;//en由高变低,产生下降沿,液晶执行命令
}
void write_1602dat(uchar dat)//***液晶写入数据函数****
{
RS=1;//数据/指令选择置为数据
// rw=0; //读写选择置为写
LCD1602=dat;//送入数据
delay(1);
EN=1; //en置高电平,为制造下降沿做准备
delay(1);
EN=0; //en由高变低,产生下降沿,液晶执行命令
}
void lcd_init()//***液晶初始化函数****
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2020-11-13 19:19 51黑论坛_基于单片机的温控系统\
目录 0 2020-11-13 19:19 51黑论坛_基于单片机的温控系统\1-程序\
文件 17382 2016-05-19 21:48 51黑论坛_基于单片机的温控系统\1-程序\sw.LST
文件 7703 2016-05-19 21:48 51黑论坛_基于单片机的温控系统\1-程序\sw.OBJ
文件 7158 2014-10-07 13:47 51黑论坛_基于单片机的温控系统\1-程序\sw.c
文件 6134 2017-11-10 13:35 51黑论坛_基于单片机的温控系统\1-程序\水温
文件 22473 2017-11-10 13:35 51黑论坛_基于单片机的温控系统\1-程序\水温.M51
文件 2079 2013-07-17 13:49 51黑论坛_基于单片机的温控系统\1-程序\水温.Uv2.bak
文件 6140 2017-11-10 13:35 51黑论坛_基于单片机的温控系统\1-程序\水温.hex
文件 38 2017-11-10 13:35 51黑论坛_基于单片机的温控系统\1-程序\水温.lnp
文件 989 2013-07-17 13:49 51黑论坛_基于单片机的温控系统\1-程序\水温.opt.bak
文件 179 2019-01-14 11:32 51黑论坛_基于单片机的温控系统\1-程序\水温.plg
文件 56624 2019-01-14 11:32 51黑论坛_基于单片机的温控系统\1-程序\水温.uvopt
文件 13180 2013-07-17 13:50 51黑论坛_基于单片机的温控系统\1-程序\水温.uvproj
文件 953 2013-04-18 15:46 51黑论坛_基于单片机的温控系统\1-程序\水温_Opt.Bak
文件 1641 2013-04-18 15:46 51黑论坛_基于单片机的温控系统\1-程序\水温_Uv2.Bak
文件 55814 2019-01-09 18:32 51黑论坛_基于单片机的温控系统\1-程序\水温_uvopt.bak
目录 0 2020-11-13 20:05 51黑论坛_基于单片机的温控系统\5-protus仿真\
文件 28511 2012-07-22 18:03 51黑论坛_基于单片机的温控系统\5-protus仿真\ISIS.dmp
文件 188369 2020-11-13 20:05 51黑论坛_基于单片机的温控系统\5-protus仿真\LCDShow.DSN
文件 1483 2020-11-13 20:05 51黑论坛_基于单片机的温控系统\5-protus仿真\LCDShow.PWI
文件 188369 2020-11-13 19:37 51黑论坛_基于单片机的温控系统\5-protus仿真\Last Loaded LCDShow.DBK
相关资源
- 基于STM32F407ZG的监控摄像头及FATFS文件
- 51单片机protues文件(KST-51.DSN)
- 图形学简单绘图系统
- 宠物管理系统课程设计(源码+数据库
- C语言 学生兴趣管理系统
- c语言实现火车订票系统(控制台)源
- c语言实现竞技比赛打分系统
- 微型文件系统源码(FatFs)
- Linux c语言 学生成绩管理系统
- 成绩管理系统.doc
- 基于c语言的通讯录系统
- 学生成绩管理系统.c
- 51单片机交通灯设计
- 基于51单片机的简易计算器
- 深入理解计算机系统-复习-清华课件
- 简单员工管理系统(适合初学MFC)
- C语言实现 设备信息管理系统
- c++ 账务系统源码
- 校园闲置物品管理系统.c(控制台)
- c语言课程设计:客房登记系统源码
- 学生成绩管理系统(c源码)
- 职工信息管理系统源码(控制台)
- 家谱管理系统(C++)源码以及文档
- 51驱动步进电机
- 51基本框架
- 基于51单片机多路超声波报警设计
- 51单片机红外智能小车
- 链表实现学生管理系统(main.c)
- C++餐饮管理系统源码(控制台)
- C++通讯录管理系统源码(控制台)
评论
共有 条评论