//DS18b20的C语言驱动程序,三位数码管显示,读取当前环境温度,精度达0.1度,温度范围0-99度
//DS18B20 详细引脚功能描述1、GND 地信号;2、DQ数据输入出引脚。开漏单总线接口引脚。当被用在寄生电源下
//也可以向器件提供电源;3、VDD可选择的VDD 引脚。当工作于寄生电源时,此引脚必须接地。
//DS18B20 的使用方法。DS18B20 采用的是1-Wire 总线协议方式
//即在一根数据线实现数据的双向传输
//编译环境 AVR Studio 4.13/AVR GCC
//系统时钟7.3728MHz,设置熔丝位为外部高频石英晶体振荡,启动时间4.1ms
//***********************************************************************
// 包含文件
//***********************************************************************
#include <string.h>
#include <stdio.h>
#define F_CPU 7372800 // 单片机 主频为7.3728MHz,用于延时子程序
#include <util/delay.h>
#include <avr/io.h>
#include <avr/iom16.h>
#include <avr/signal.h> //中断信号头文件
//***********************************************************************
// 定义变量区
// CH451各个功能命令值,根据需要写入
//***********************************************************************
#define CH451_RESET 0x0201 //复位
#define CH451_LEFT MOV 0x0300 //设置移动方式-作移
#define CH451_LEFTCYC 0x0301 //设置移动方式-左循
#define CH451_RIGHT MOV 0x0302 //设置移动方式-右移
#define CH451_RIGHTCYC 0x0303 //设置移动方式-右循
#define CH451_SYSOFF 0x0400 //关显示、键盘、看门狗
#define CH451_SYSON1 0x0401 //开显示
#define CH451_SYSON2 0x0403 //开显示、键盘
#define CH451_SYSON3 0x0407 //开显示、键盘、看门狗功能
#define CH451_DSP 0x0500 //设置默认显示方式
#define CH451_BCD 0x0580 //设置BCD译码方式
#define CH451_TWINKLE 0x0600 //设置闪烁控制
#define CH451_DIG0 0x0800 //数码管位0显示
#define CH451_DIG1 0x0900 //数码管位1显示
#define CH451_DIG2 0x0a00 //数码管位2显示
#define CH451_DIG3 0x0b00 //数码管位3显示
#define CH451_DIG4 0x0c00 //数码管位4显示
#define CH451_DIG5 0x0d00 //数码管位5显示
#define CH451_DIG6 0x0e00 //数码管位6显示
#define CH451_DIG7 0x0f00 //数码管位7显示
#define LED0 0x0000 //数码管位0显示的数据
#define led1 0x0000 //数码管位0显示的数据;0x0010为不亮
#define led2 0x0000 //数码管位0显示的数据
#define led3 0x0010 //数码管位0显示的数据
#define led4 0x0010 //数码管位0显示的数据
#define led5 0x0010 //数码管位0显示的数据
#define led6 0x0010 //数码管位0显示的数据
#define led7 0x0010 //数码管位0显示的数据
#define dclk0 PORTD &= ~(1 << PD6) //串行数据时钟,上升延激活
#define dclk1 PORTD |= (1 << PD6)
#define din0 PORTD &= ~(1 << PD5) //串行数据输出,接CH451的数据输入
#define din1 PORTD |= (1 << PD5)
#define load0 PORTD &= ~(1 << PD4) //串行命令加载,上升延激活
#define load1 PORTD |= (1 << PD4)
#define DQ_IN DDRC &= ~(1 << PC6) //设置输入
#define DQ_OUT DDRC |= (1 << PC6) //设置输出
#define DQ_CLR PORTC &= ~(1 << PC6) //置低电平
#define DQ_SET PORTC |= (1 << PC6) //置高电平
#define DQ_R PINC & (1 << PC6) //读电平
#define delay_us(x) _delay_us(x) //AVR GCC延时函数 x(us)
#define delay_ms(x) _delay_ms(x) //AVR GCC延时函数 x(ms)
#define uchar unsigned char
#define uint unsigned int
uint value;
uint temp,A1,A2,A3; //定义的变量,显示数据处理
uchar flag1;
[1] [2] [3] 下一页
本文关键字:温度传感器 程序 AVR单片机,单片机-工控设备 - AVR单片机