【蓝桥杯单片机组】DS18B20
来源:互联网 发布:linux怎么找漏洞 编辑:程序博客网 时间:2024/04/28 17:32
DS18B20与单片机采用单总线连接方式,比赛中使用到的文件为提供的“onewire.c”
编程步骤:
(1)初始化
(2)发送ROM操作命令,包括:Read ROM(读ROM) [33H]、Match ROM(匹配ROM) [55H]、Skip ROM(跳过ROM] [CCH]、Search ROM(搜索ROM) [F0H]、Alarm search(告警搜索) [ECH]
(3)发送储存器操作命令,包括:Write Scratchpad(写暂存存储器) [4EH]、Read Scratchpad(读暂存存储器) [BEH]、Copy Scratchpad(复制暂存存储器) [48H]、Convert Temperature(温度变换) [44H]、Recall EPROM(重新调出) [B8H]、Read Power supply(读电源) [B4H]
(4)存储器或适当延时
P.S:使用IAP15时应对onewire.c中的void Delay_OneWire(unsigned int t)做一下改变:
//单总线延时函数void Delay_OneWire(unsigned int t){unsigned char i;while(t--){for(i=0;i<12;i++);}}
将之前的延时时间乘以12,因为使用的IAP15的机器周期为振荡周期,若不修改则无法读数。
附:测量温度的代码
uchar low,high;int gettemper(){int t;Init_DS18B20();//1、初始化时序Write_DS18B20(OW_SKIP_ROM);//2、ROM操作命令 Write_DS18B20(DS18B20_CONVERT);//3、存储器操作命令Delay_OneWire(200);//end Init_DS18B20();//1、初始化时序Write_DS18B20(OW_SKIP_ROM);//2、ROM操作命令 Write_DS18B20(DS18B20_READ);//3、存储器操作命令EA = 0;low = Read_DS18B20();high = Read_DS18B20(); EA = 1;t = high<<8;t = t|low;return t;//return 0xf13c; //test}
该函数返回的是在DS18B20温度暂存器中的精确数据吗,若要选择返回整数值或浮点值,则需要数据处理。
延时的2数值(200)不可以改变。
附:数据处理函数
float get_f_temp(){int t;float temp;t = gettemper();if((t&0xf000)>>12 == 0x000f) //负数temp = ((~t)+1)*0.0625*(-1.0);elsetemp = t*0.0625;return temp;}注意:当读出的温度是负数时,gettemper()返回的最高位为1,此时需要将返回的数值取反再加一,最后乘以12位的精确度0.0625.
0 0
- 【蓝桥杯单片机组】DS18B20
- 【蓝桥杯单片机组】外部中断
- 【蓝桥杯单片机组】超声波模块
- 【蓝桥杯单片机组】AT2C02 EEPROM
- 【蓝桥杯单片机组】(1)前期准备
- 【蓝桥杯单片机组】(3)键盘
- 【蓝桥杯单片机组】(6)uart
- 【蓝桥杯单片机组】第七届决赛模拟
- 蓝桥杯大赛单片机组学习笔记,基于stc15f2k61s2转接板
- 【蓝桥杯单片机组】(2)锁存器、数码管、蜂鸣器、继电器
- 【蓝桥杯单片机组】(4)Timer0/1 定时器
- 【蓝桥杯单片机组】(5)Timer0/1 计数器做频率计
- 【蓝桥杯单片机组】实时时钟RTC(DS1302)
- 【蓝桥杯单片机组】PCF8591 关于蓝桥杯坑爹I2C的吐槽
- 【蓝桥杯单片机组】大概是最后一篇了,the lastday 蓝桥
- CT107D蓝桥杯DS18B20使用
- ds18b20
- DS18B20
- mysql存储过程
- 5. 策略模式
- BZOJ4716 假摔
- 百度贴吧客户端(Android)网络通信行为分析
- iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
- 【蓝桥杯单片机组】DS18B20
- Codeforces Round #399 D. Jon and Orbs(概率dp,好题)
- mysql建表外键约束的问题
- Gson 转换long到科学计数法的解决方法
- 同步、异步、阻塞和非阻塞
- Eclipse 的安装与汉化
- 关于FSO没有权限使用的问题。
- 判断Android app退后台、进前台
- iOS 面试题(15):简单介绍 ARC 以及 ARC 实现的原理 -- by唐巧