M8,ICCAVR下的温度传感器18B20程序 -
[导读]本程序为采用mega8 和18b20的温度采集程序
选用mega8内部8M RC震荡,18b20 数据线接pd6,数据线和vcc间接一4.7k上拉电阻
感谢dfgeoff 嗜血蜗牛提供的资料*/
#include //和单片机类型相对应的头文件,选择Atmega
本程序为采用mega8 和18b20的温度采集程序
选用mega8内部8M RC震荡,18b20 数据线接pd6,数据线和vcc间接一4.7k上拉电阻
感谢dfgeoff 嗜血蜗牛提供的资料*/
#include
#include
#define uchar unsigned char
#define uint unsigned int
void init_1820();
write_1820(uchar x);
uchar read_1820();
void send_byte(uchar x);
void delay(uint x);
void disp_led(uchar buffer,uchar control);
uchar disp_table[16] = {
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar dp;
long count;
void main(void) //主函数
{
disp_led(0,0);
delay(2000);
OSCCAL=0X9d;//系统时钟校准,不同的芯片和不同的频率,
DDRC=0xff;
DDRD=0XFF;
PORTD=0XFF;
WDR(); //看门狗计数清零
WDTCR=0x0F;
PORTC=0xff;
while(1)
{
uchar i,temh,teml;
init_1820(); //复位18b20
write_1820(0xcc); // 发出转换命令
write_1820(0x44);
delay(400);
init_1820();
WDR();
write_1820(0xcc); //发出读命令
write_1820(0xbe);
teml=read_1820(); //读数据
temh=read_1820();
//for(i=0;i<7;i++) //测试用
//{
//send_byte(0x40);
//send_byte(disp_table[0&0x0f]);
/
查看评论 回复
"M8,ICCAVR下的温度传感器18B20程序 -"的相关文章
- 上一篇:STM32系列第20篇--DAC -
- 下一篇:stm32中的延时函数 -