资源简介
STC89C51采集DS18B20温度,控制2个继电器 温度低于一定的时候动作1个 高于一定的时候动作另1个
代码片段和文件信息
#include “reg52.h“
#include //函数处理头文件
#include //字符串处理头文件
#include // 输入输出函数头文件
#define uchar unsigned char //宏定义 无符号字符串型
#define uint unsigned int //宏定义 无符号整型
sbit rs = P1^2; //LCD1602控制脚声明
sbit rw = P1^1;
sbit ep = P1^0;
sbit D3=P1^4; //DS18B20信号线声明
sbit J1=P1^6; //继电器控制1
sbit J2=P1^7; //继电器控制2
sbit fmq=P2^7;
sbit k1=P2^0; //DS18B20信号线声明
sbit k2=P2^1; //继电器控制1
sbit k3=P2^2; //继电器控制2
sbit k4=P2^3; //DS18B20信号线声明
sbit k5=P2^4; //继电器控制1
sbit k6=P2^5; //继电器控制2
void InitializeSystem();
void Delay(uint time);
void delay1(uint a); //小延时函数声明
void init_18b20(); //18B20温度传感器初始化函数申明
void weite(uchar dat); //向18b20写一个字节函数声明
uchar read(); //向18b20读一个字节函数声明
uchar read_tu(); //读18b20温度函数声明
bit lcd_bz();
lcd_wcmd(uchar cmd);
lcd_pos(uchar pos);
lcd_wdat(uchar dat);
lcd_init();
LCD1206();
void RS232() ;
void kk(viod);
void pro();
unsigned char code dis0[] = {“TEMP:“};//声明一些字符串
unsigned char code dis1[] = {“.“};
unsigned char code dis2[] = {“C“};
unsigned char code dis3[] = {“ON “};
unsigned char code dis4[] = {“OFF“};//关
unsigned char code dis5[] = {“k1:“};
unsigned char code dis6[] = {“k2:“};
unsigned char code dis7[] = {“0123456789“};
unsigned char code dis8[] = {“auto“};
unsigned char code dis9[] = {“shou“};
unsigned char code dis10[] = {“H “};
unsigned char code dis11[] = {“L “};
uint ctttkeyfalgKCOMh=40l=10mode=0J1FALGJ2FALGa;
uint temp_data[2];
float temp;
void main( )
{
Delay(30); //上电延时,目的是去干扰
InitializeSystem();//系统初始化
init_18b20(); //DS18B20初始化
RS232(); //串口初始化
while ( 1 )
{
read_tu(); //将读回的温度赋值给c
LCD1206(); //显示处理
a++;
if(a>=100)
{
a=0;
ES=0;
TI=1;
printf(“%u“t);//
ES=1;
}
}
}
void InitializeSystem() //系统初始化
{
P0 = 0xFF;
P1 = 0xFF;
P2 = 0xFF;
P3 = 0xFF;
J1=1;
J2=1;
lcd_init(); // 初始化LCD
Delay(1);
}
void Delay(uint time) //大延时函数
{
uint ik ;
for(i=0;i<255;i++)
for(k=0;k _nop_();
}
bit lcd_bz() // 测试LCD忙碌状态
{
bit result;
rs = 0;
rw = 1;
ep = 1;
_nop_();
_nop_();
_nop_();
_nop_();
result = (bit)(P0 & 0x80);
ep = 0;
return result;
}
lcd_wcmd(uchar cmd)// 写入指令数据到LCD
{
while(lcd_bz());
rs = 0;
rw = 0;
ep = 0;
_nop_();
_nop_();
P0 = cmd;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 1;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 0;
}
lcd_pos(uchar pos)
{ //设定显示位置
lcd_wcmd(pos | 0x80);
}
lcd_wdat(uchar dat)
{ //写入字符显示数据到LCD
while(lcd_bz());
rs = 1;
rw = 0;
ep = 0;
P0 = dat;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 1;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 0;
}
lcd_init() //LCD初始化设定
{
lcd_wcmd(0
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 27893 2013-05-26 19:13 DS18B20自动控制温度\ds18b20
文件 12877 2013-05-26 19:13 DS18B20自动控制温度\ds18b20.hex
文件 59 2013-05-26 19:13 DS18B20自动控制温度\ds18b20.lnp
文件 32443 2013-05-26 19:13 DS18B20自动控制温度\ds18b20.M51
文件 1072 2013-05-26 19:15 DS18B20自动控制温度\ds18b20.Opt
文件 190 2015-11-25 19:03 DS18B20自动控制温度\ds18b20.plg
文件 2034 2013-05-26 19:15 DS18B20自动控制温度\ds18b20.uv2
文件 1073 2013-05-26 19:15 DS18B20自动控制温度\ds18b20_Opt.Bak
文件 9815 2013-05-26 19:15 DS18B20自动控制温度\main.c
文件 23737 2013-05-26 19:13 DS18B20自动控制温度\main.LST
文件 27730 2013-05-26 19:13 DS18B20自动控制温度\main.OBJ
文件 5115 2002-04-16 14:32 DS18B20自动控制温度\STARTUP.A51
文件 11665 2013-05-26 19:13 DS18B20自动控制温度\STARTUP.LST
文件 749 2013-05-26 19:13 DS18B20自动控制温度\STARTUP.OBJ
目录 0 2016-01-11 21:33 DS18B20自动控制温度
----------- --------- ---------- ----- ----
156452 15
- 上一篇:DTkey扫号器
- 下一篇:BP神经网络fortran仿真程序
相关资源
- 基于labview的温度采集vi
- 51单片机读取DS18b20数据加1602显示+pr
- 单片机无线多路温度采集系统设计
- 51单片机控制DS18b20,在数码管上显示
- 51单片机+DS18B20+NRF24L01+LCD1602=无线温度
- 51单片机驱动K型热电偶数字转换器M
- ds18b20温度传感器工作原理及其应用电
- 多点温度采集系统
- 51单片机Protues,仿真DS18b20温度传感器
- 遥感反演海洋温度反演
- 基于51单片机仓库温度监控系统仿真设
- STM8S003读取DS18B20温度传感器
- ENVI自动反演Landsat-8温度插件
- 用qt设计的显示温度的
- 基于LabVIEW的温度测试系统
- 51单片机的串口采集温度程序
- DS18B20读取序列号并匹配读取温度值
- 一个空调温度控制系统的程序
- DS18B20介绍、程序流程图和程序源代码
- LabView模拟温度监测系统
- 一个模糊PID温度控制算法源代码(亲
- 基于51单片机的温度控制系统最终版
- STM32 DS18b20
- 基于mini2440+linux下的ds18b20驱动,
- PT100测量原理及电路
- ARM基于LPC2124的温度控制系统Proteus仿真
- FPGA\\基于FPGA的温度检测和PWM风冷系统
- 用51单片机驱动DS1302时间模块+DS18B20温
- PIC单片机温度控制
- 430的读取DS18B20并在1602液晶上显示
评论
共有 条评论