"); //-->
这是我在LPC2210上用DS18B20的测温源程序
一直在测量我家的室外温度 一切正常~
#include "config.h"
uint8 count;
fp32 tmax,tmin;
/************延时程序****************/
void DelayuS(uint32 dly) //延时约9uS
{
uint32 i;
for(;dly>0;dly--)
i++;// for(i=0;i<1;i++);
}
/*********DS1820初始化****************/
int Init_DS1820(void)
{
uint8 i;
IO0DIR=IO0DIR|0x02000000; //设置P0.25为输出
IO0CLR=1<<25; //P0.25清零
DelayuS(60); //延时480~960uS
IO0DIR=IO0DIR&0xFDFFFFFF; //设置P0.25为输入
DelayuS(2); //延时16uS
i=(IO0PIN&0x02000000)>>25;
DelayuS(15); //延时60~240uS
return(i);
}
/********向DS1820写数据************/
void Wr_DS1820(uint8 dat)
{
uint8 i;
for(i=8;i>0;i--)
{
IO0DIR=IO0DIR|0x02000000; //设置P0.25为输出
IO0CLR=1<<25; //P0.25清零
IO0PIN=((dat&0x01)<<25)|0xFDFFFFFF; //向P0.25写入位数据
DelayuS(2); // 延时15~60uS
IO0SET=1<<25; //P0.25置位
dat>>=1;
}
}
/********从DS1820中读取数据***************/
int Rd_DS1820(void)
{
uint8 i;
uint8 dat;
for(i=8;i>0;i--)
{
IO0DIR=IO0DIR|0x02000000; //设置P0.25为输出
IO0CLR=1<<25; //P0.25清零
dat=dat>>1;
IO0DIR=IO0DIR&0xFDFFFFFF; //设置P0.25为输入
if(1==(IO0PIN>>25)&0x00000001)
dat|=0x80;
i=i; //延时
}
return(dat);
}
/************温度测量任务*****************/
void TmptMeas(void *pdata)
{
INT8U dat1,dat2;
INT16S t;
FP32 temp;
char str[8];
pdata=pdata;
tmax=12;
tmin=12;
for(;;)
{
if((Init_DS1820())==0)
{
Wr_DS1820(0xCC);
Wr_DS1820(0x44);
OSTimeDlyHMSM(0,0,1,0);
Init_DS1820();
Wr_DS1820(0xCC);
Wr_DS1820(0xBE);
dat1=Rd_DS1820();
dat2=Rd_DS1820();
t=dat2;
t<<=8;
t=t|dat1;
temp=t*0.0625; //计算温度 并显示
sprintf(str,"%f",temp);
LCD_WS(2,12,(INT8U*)str);
if((temp>-40)&&(temp<120))
{
if(temp>tmax) //记录最高温度
tmax=temp;
if(temp<tmin) //记录最低温度
tmin=temp;
sprintf(str,"%f",tmax);
LCD_WS(0,13,(INT8U*)str);
sprintf(str,"%f",tmin);
LCD_WS(15,13,(INT8U*)str);
}
else
{
count++;
sprintf(str,"%d",count);
LCD_WS(20,12,(INT8U*)str);
}
}
OSTimeDlyHMSM(0,0,1,0);
}
}
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
2003年全国大学生电子设计竞赛一等奖——液体点滴速度监控装置
NCL30000单段式功率因数校正LED驱动器原理及TRIAC调光LED驱动器设计方案(上)
1N系列稳压二极管参数
18v监测电路
瑞萨电子推出用于AI数据中心、工业及电源系统的全新GaN FET
基于SMD封装的高压CoolMOS
用带平均电流限幅功能的半桥式电路拓朴结构提高砖电源模块的功率密度(下)
APM连接问题,错误提示:armlink... Load region SRAM (size 242322) exceeds specified limit.
采用ADP1043A的数字电源设计实例
关于16位MCU
专业的电磁兼容和电磁应用技术网站
1-wire单总线的基本原理
10H2至2MH2的频率计电路
SBC-2410X中文开发手册
AI利好之外 东南亚着眼于全球芯片竞赛的领导地位
据报道,Meta招募了苹果的 AI 模型负责人
与中国不可分割的联系:为什么战略脱离不是一种选择
[求助]制作在VMware中的VxWorks 映象文件
20 kbit光缆接收电路
基于onsemi NCP51752隔离式SiC MOSFET闸极驱动器评估板
基于STEVAL-ROBKIT1的机器人应用方案
基于STM32N6和VD66GY的机器视觉方案
ARM仿真器,150元大优惠
2.4GHz无线收发芯片nRF24E1的原理及应用
用带平均电流限幅功能的半桥式电路拓朴结构提高砖电源模块的功率密度(上)
中国先进制造业的并购热潮受到技术趋势的推动
光脉冲接收电路
据报道,华为 Mate 80 将搭载麒麟 9030 芯片,性能提升 20%,传闻将延续 7nm 工艺
镍镉电池监测电路
三星第二季度利润据报道降至六年来最低;下半年复苏面临关税挑战