资源简介
基于mega128的ds18b20+串口程序 实测通过,通过串口1上传至上位机

代码片段和文件信息
//温度加串口程序//
//初始化定义
#include
#include
#define F_CPU 8000000
#define fosc 8000000 //晶振 8MHZ
#define baud 9600 //波特率
#define DQ_IN DDRE &= ~(1 << PE4) //设置输入,DS18B20接单片机PE4口
#define DQ_OUT DDRE |= (1 << PE4) //设置输出
#define DQ_CLR PORTE &= ~(1 << PE4) //置低电平
#define DQ_SET PORTE |= (1 << PE4) //置高电平
#define DQ_R PINE & (1 << PE4) //读电平
unsigned int temp_valuetemp_htemp_l;
unsigned int tempA1A2A3;A4;
// 延时程序 10倍
void delay_us(unsigned int i)
{
unsigned int j;
for(;i!=0;i--)
{_delay_us(10);
}
}
//*************************************************************************
// DS18B20初始化
//*************************************************************************
unsigned char DS18B20_Reset(void) //初始化和复位
{
unsigned char i;
DQ_OUT;
DQ_CLR;
delay_us(50); //延时500uS(480-960)
DQ_SET;
DQ_IN;
delay_us(8); //延时80uS
i = DQ_R;
delay_us(50); //延时500uS(保持>480uS)
if (i)
{
return 0x00;
}
else
{
return 0x01;
}
}
//*************************************************************************
// DS18B20读一个字节函数
//*************************************************************************
unsigned char ds1820_read_byte(void)
{
unsigned char i;
unsigned char value = 0;
for (i = 8; i != 0; i--)
{
value >>= 1;
DQ_OUT;
DQ_CLR;
delay_us(1); //*延时4uS
DQ_SET;
DQ_IN;
delay_us(1); //*延时10uS
if (DQ_R)
{
value|=0x80;
}
delay_us(6); //*延时60uS
}
return(value);
}
//*************************************************************************
// 向18B20写一个字节函数
//*************************************************************************
/*DS18B20字节写入函数*/
void ds1820_write_byte(unsigned char value)
{
unsigned char i;
for (i = 8; i != 0; i--)
{
DQ_OUT;
DQ_CLR;
delay_us(1); //延时4uS
if (value & 0x01)
{
DQ_SET;
}
delay_us(8); //延时80uS
DQ_SET; //位结束
value >>= 1;
}
}
//*************************************************************************
// 发送温度转换命令
//*************************************************************************
/*启动ds1820转换*/
void ds1820_start(void) {
DS18B20_Reset();
ds1820_write_byte(0xCC); //勿略地址
ds1820_write_byte(0x44); //启动转换
}
//*************************************************************************
// DS8B20读取温度信息
//*************************************************************************
unsigned int ds1820_read_temp(void)
{
unsigned int i;
unsigned char buf[9];
DS18B20_Reset();
ds1820_write_byte(0xCC); //勿略地址
ds1820_write_byte(0xBE); //读取温度
for (i = 0; i < 9; i++)
{
buf[i] = ds182
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5392 2013-04-18 15:44 uart3.c
相关资源
- 单片机与温度传感器DS18B20的程序设计
- 毕业论文之温度传感器DS18B20(源码
- stm32 ds18b20 温度传感器 测试通过
- 51单片机读取温度数据存储到SD卡中并
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- DS18B20分布式多点测温的Proteus仿真
- 单片机 DS18B20 温度控制系统
- 课程设计蔬菜大棚自动控制系统,包
- ds18b20温度传感是什么传感器
- 基于ATmega128和CH374的USB接口设计
- DS18B20_Serial_println.ino
- ds18b20测温例程tm4c123x
- STM32F103C8T6读取DS18B20串口显示程序.r
- DS18B20温度+DHT11湿度+LCD1602
- TM4C系列ds18b20温度传感器例程
- 读写ds18b20内部eeprom
- 基于FPGA的DS18B20单总线控制+数码管显
- STM32F103C8T6读取DS18B20串口显示程序
- STM32F103读取ds18b20温度传感器
- DS18B20-液晶1602显示温度和控制(代码
- Atmega1280芯片资料
- 基于FPGA的LCD1602实时显示DS18b20温度
- 通过DS18B20检测环境温度,并在LCD128
- FPGA实现的DS18B20温度传感器
- stm32f407对ds18b20温度传感器数据的采集
- 基于zigbee的温度传感器DS18B20
- DS18B20 AT89C51 单片机 protus keil 温度传感
- FPGA综合系统设计二基于FPGA的温度采集
- 基于STC89C52和DS18B20的温控系统
- stm32f103 ds18b20
评论
共有 条评论