资源简介
2 用1602LCD与DS18B20设计的温度报警器
代码片段和文件信息
//-----------------------------------------------------------------
// 名称: DS18B20温度传感器程序
//-----------------------------------------------------------------
#define F_CPU 1000000UL
#include
#include
#define INT8U unsigned char
#define INT16U unsigned int
#define INT8 signed char
//DS18B20引脚定义
#define DQ PB7
//设置数据方向
#define DQ_DDR_0() DDRB &= ~_BV(DQ)
#define DQ_DDR_1() DDRB |= _BV(DQ)
//温度管引脚操作定义
#define DQ_1() PORTB |= _BV(DQ)
#define DQ_0() PORTB &= ~_BV(DQ)
#define RD_DQ_VAL() (PINB & _BV(DQ)) //注意保留这一行的括号
//温度小数对照表(四位的温度值0000~1111对应16个小数位)
const INT8U df_Table[]={0112334456678899};
char RomCodePrompt[] = {“ -- ROM CODE -- “};
char RomCodeString[] = {“0000000000000000“};
//报警温度提示信息及报警温度上下限值
char Alarm_Temp[] = {“-- ALARM TEMP --“};
char Alarm_HI_LO_STR[] = {“Hi: Lo: “};
//当前读取的温度整数部分
INT8U CurrentT = 0 ;
//从DS18B20读取的温度值
INT8U Temp_Value[] = {0x000x00};
//待显示的各温度数位
INT8U Display_Digit[] = {0000};
//传感器状态标志
INT8U DS18B20_ERROR = 0;
//当前温度显示缓冲
char Current_Temp_Display_Buffer[] = {“ TEMP: “};
INT8 Alarm_Temp_HL[2];
//-----------------------------------------------------------------
//高低温报警标志
volatile INT8U HI_Alarm=0LO_Alarm=0;
//-----------------------------------------------------------------
//-----------------------------------------------------------------
// 初始化DS18B20
//-----------------------------------------------------------------
INT8U Init_DS18B20()
{
INT8U status;
DQ_DDR_1();
DQ_0(); _delay_us(500);
DQ_DDR_0();_delay_us(50);
status=RD_DQ_VAL();_delay_us(500);
DQ_1();
return status;
}
//-----------------------------------------------------------------
// 读一字节
//-----------------------------------------------------------------
INT8U ReadOneByte()
{
INT8U idat=0;
for(i=0;i<8;i++)
{
DQ_DDR_1();
DQ_0();
DQ_DDR_0();
if(RD_DQ_VAL()) dat|=_BV(i);
_delay_us(80);
}
return dat;
}
//-----------------------------------------------------------------
// 写一字节
//-----------------------------------------------------------------
void WriteOneByte(INT8U dat)
{
INT8U i;
for(i=0x01;i!=0x00;i<<=1)
{
DQ_DDR_1();
DQ_0();
if(dat&i) DQ_1();
else DQ_0();
_delay_us(80);
DQ_1();
}
}
//-----------------------------------------------------------------
// 读取温度值
//-----------------------------------------------------------------
void Read_Temperature()
{
if(Init_DS18B20()!=0x00)
DS18B20_ERROR=1;
{
WriteOneByte(0XCC);
WriteOneByte(0X44);
Init_DS18B20();
WriteOneByte(0XCC);
WriteOneByte(0XBE);
Temp_Value[0]=ReadOneByte();
Temp_Value[1]=ReadOneByte();
Alarm_Temp_HL[0]=ReadOneByte();
Alarm_Temp_HL[1]=ReadOneByte();
DS18B20_ERROR=0;
}
}
void Temperature_Convert()
{
INT8U ng=0;
INT8 Curr_int_temp=0;
INT8U Curr_df_temp=0;
if((Temp_Value[1]&0xF8)==0XF8)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-11-30 13:36 12 用1602LCD与DS18B20设计的温度报警器\
目录 0 2012-11-30 13:36 12 用1602LCD与DS18B20设计的温度报警器\.dep\
文件 64 2012-11-22 16:57 12 用1602LCD与DS18B20设计的温度报警器\.dep\main.o.d
文件 4937 2012-11-22 16:50 12 用1602LCD与DS18B20设计的温度报警器\DS18B20.c
文件 158 2012-09-29 08:50 12 用1602LCD与DS18B20设计的温度报警器\DS18B20_LCD1602.pnproj
文件 68 2012-09-29 08:50 12 用1602LCD与DS18B20设计的温度报警器\DS18B20_LCD1602.pnps
文件 1922 2012-11-22 16:22 12 用1602LCD与DS18B20设计的温度报警器\DS18B20温度传感器测试.PWI
文件 49683 2012-11-23 08:20 12 用1602LCD与DS18B20设计的温度报警器\Last Loaded 用1602LCD与DS18B20设计的温度报警器.DBK
文件 2693 2012-10-23 15:48 12 用1602LCD与DS18B20设计的温度报警器\LCD1602.c
文件 3164 2012-11-22 16:57 12 用1602LCD与DS18B20设计的温度报警器\main.c
文件 13 2012-11-22 16:57 12 用1602LCD与DS18B20设计的温度报警器\main.eep
文件 14977 2012-11-22 16:57 12 用1602LCD与DS18B20设计的温度报警器\main.elf
文件 9418 2012-11-22 16:57 12 用1602LCD与DS18B20设计的温度报警器\main.hex
文件 68713 2012-11-22 16:57 12 用1602LCD与DS18B20设计的温度报警器\main.lss
文件 54515 2012-11-22 16:57 12 用1602LCD与DS18B20设计的温度报警器\main.lst
文件 28006 2012-11-22 16:57 12 用1602LCD与DS18B20设计的温度报警器\main.map
文件 19420 2012-11-22 16:57 12 用1602LCD与DS18B20设计的温度报警器\main.o
文件 147 2012-09-28 14:05 12 用1602LCD与DS18B20设计的温度报警器\main.pnproj
文件 57 2012-09-28 14:05 12 用1602LCD与DS18B20设计的温度报警器\main.pnps
文件 2789 2012-11-22 16:57 12 用1602LCD与DS18B20设计的温度报警器\main.sym
文件 17507 2012-09-28 11:59 12 用1602LCD与DS18B20设计的温度报警器\Makefile
文件 49683 2012-11-29 08:05 12 用1602LCD与DS18B20设计的温度报警器\用1602LCD与DS18B20设计的温度报警器.DSN
文件 1483 2012-11-29 08:05 12 用1602LCD与DS18B20设计的温度报警器\用1602LCD与DS18B20设计的温度报警器.PWI
相关资源
- ds18b20温度传感是什么传感器
- DS18B20_Serial_println.ino
- ds18b20测温例程tm4c123x
- STM32F103C8T6读取DS18B20串口显示程序.r
- DS18B20温度+DHT11湿度+LCD1602
- TM4C系列ds18b20温度传感器例程
- 读写ds18b20内部eeprom
- 基于FPGA的DS18B20单总线控制+数码管显
- STM32F103C8T6读取DS18B20串口显示程序
- STM32F103读取ds18b20温度传感器
- DS18B20-液晶1602显示温度和控制(代码
- 基于FPGA的LCD1602实时显示DS18b20温度
- 通过DS18B20检测环境温度,并在LCD128
- FPGA实现的DS18B20温度传感器
- stm32f407对ds18b20温度传感器数据的采集
- 基于zigbee的温度传感器DS18B20
- DS18B20 AT89C51 单片机 protus keil 温度传感
- FPGA综合系统设计二基于FPGA的温度采集
- 基于STC89C52和DS18B20的温控系统
- stm32f103 ds18b20
- 基于FPGA的DS18B20测温代码
- STM32驱动DS18B20库函数驱动
- ds18b20-mini2440驱动,测试程序,qt显示
- STM32 18B20完整程序
- STM32F103驱动ILI9341DS18B20RTCADCIRED
- 基于STM32C8t6实现的温度控制系统
- DS18B20无线多点温度采集系统的设计
- 基于STM32C8T6的按键温度双模式控制风
- 乐鑫Esp8266驱动 ds18b20、dht11 温湿度传
- 基于战舰STM32的1602液晶驱动程序+ds1
评论
共有 条评论