标题:
51单片机温度测控程序设计
[打印本页]
作者:
proteuscc51
时间:
2019-6-26 02:41
标题:
51单片机温度测控程序设计
单片机设计分享
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
8K4$`A)1ISG7~9}M4VMGJTF.png
(51.54 KB, 下载次数: 14)
下载附件
2019-6-26 02:41 上传
单片机源程序如下:
/********************************************************************
* 程序名; 基于DS18B20的测温系统
* 功 能: 实时测量温度,超过上下限报警,报警温度可手动调整。K1是用来
* 进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限
* 调节模式。在正常模式下,按一下K2进入查看上限温度模式,显示1s左右自动
* 退出;按一下K3进入查看下限温度模式,显示1s左右自动退出;按一下K4消除
* 按键音,再按一下启动按键音。在调节上下限温度模式下,K2是实现加1功能,
* K1是实现减1功能,K3是用来设定上下限温度正负的。
* 编程时间:
*********************************************************************/
#include<AT89X52.h> //将AT89X52.h头文件包含到主程序
#include<intrins.h> //将intrins.h头文件包含到主程序(调用其中的_nop_()空操作函数延时)
#define uint unsigned int //变量类型宏定义,用uint表示无符号整形(16位)
#define uchar unsigned char //变量类型宏定义,用uchar表示无符号字符型(8位)
uchar max=0x00,min=0x00; //max是上限报警温度,min是下限报警温度
bit s=0; //s是调整上下限温度时温度闪烁的标志位,s=0不显示200ms,s=1显示1s左右
bit s1=0; //s1标志位用于上下限查看时的显示
void display1(uint z); //声明display1()函数(display.h头文件中的函数,ds18b20.h要用应先声明)
#include"ds18b20.h" //将ds18b20.h头文件包含到主程序
#include"keyscan.h" //将keyscan.h头文件包含到主程序
#include"display.h" //将display.h头文件包含到主程序
/***********************主函数************************/
void main()
{
beer=1; //关闭蜂鸣器
led=1; //关闭LED灯
timer1_init(0); //初始化定时器1(未启动定时器1)
get_temperature(1); //首次启动DS18B20获取温度(DS18B20上点后自动将EEPROM中的上下限温度复制到TH和TL寄存器)
while(1) //主循环
{
keyscan(); //按键扫面函数
get_temperature(0); //获取温度函数
keyscan(); //按键扫面函数
display(temp,temp_d*0.625);//显示函数
alarm(); //报警函数
keyscan(); //按键扫面函数
}
}
复制代码
所有资料51hei提供下载:
基于51单片机及DS18B20温度传感器的数字温度计设计.zip
(802.46 KB, 下载次数: 40)
2019-6-26 02:40 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
2450768115
时间:
2020-1-8 14:54
楼主,请问有汇编版本的吗
作者:
天外仙
时间:
2021-4-1 22:17
怎么测不出来温度 ?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1