微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于ATMEGA16的DS18B20测温程序

基于ATMEGA16的DS18B20测温程序

时间:08-04 来源:互联网 点击:


--------------------------------------------------------
接口函数:
18B20.h:
#define uchar unsigned char
#define uint unsigned int

extern uchar ds18b20_reset();
extern void ds18b20_write_byte(uchar value);
extern uint ds18b20_read_byte(void);
extern uint readTempDS18B20(void);
display.h:
#define uchar unsigned char
#define uint unsigned int
#ifndef display_h
#define display_h
extern void write_com(uchar com);
extern void write_dat(uchar dat);
extern void LCD_init();
extern void display();
extern uchar table[];
#endif
delay.h:

/**************************************************************
**函数功能:延时1us
**输入参数:无
**返回值:无
**在本函数外定义变量:无
**调用的函数:NOP()
**************************************************************/
void Delay_1us(void);

/**************************************************************
**函数功能:us级延时
**输入参数:xus:延时us数
**返回值:无
**在本函数外定义变量:无
**调用的函数:Delay_1us()
**************************************************************/
void Delay_Us(unsigned int xus);

/**************************************************************
**函数功能:延时1ms
**输入参数:无
**返回值:无
**在本函数外定义变量:无
**调用的函数:NOP()
**************************************************************/
void Delay_1ms(void);

/**************************************************************
**函数功能:ms级延时
**输入参数:xms:延时ms数
**返回值:无
**在本函数外定义变量:无
**调用的函数:Delay_1ms()
**************************************************************/
void Delay_ms(unsigned int xms);

/**************************************************************
**函数功能:10us级延时
**输入参数:x10us:延时x10us数
**返回值:无
**在本函数外定义变量:无
**调用的函数:无
**************************************************************/
void Delay10us(int x10us);


void Delay_1us()
{
unsigned char t=2;
t--;
}

void Delay_Us(unsigned int xus)
{
while (xus--)
Delay_1us();
}

void Delay_1ms(void)
{
unsigned int i;
for(i=0;i1142;i++)
;
}

void Delay_ms(unsigned int x)
{
int i,j; //variable:declare int
for(i=0; ix; i++)
for(j=0; j498;j++)
{
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
NOP();
}
}

void Delay10us(int x10us)//crystal=8MHz
{
int i;int j; //variable:declare int
for(i=0; ix10us; i++)
{
for(j=0;j2;j++)
{
NOP();
NOP();
NOP();
}
}
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top