下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、nclude <reg52. h>#includeintrins. h> ttdefine uchar unsigned char ttdefine uint unsigned intsbit dq = p2 2; define interface sbit dula = p2 6;sbit wela 二 p2 7; uint temp;值 variable of temperature 不带小数点 unsigned char/数据口数码管段选/数码管位选/温度code tablet = 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x
2、07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71;带小数点unsignedoxbf, 0x86, oxdb, oxcf, 0xe6, oxed, oxfd, 0x87, oxff, oxef;charcodeteibl el 误差:518-2*256二 6(原帖写 5us 是错的)误差:25-20=5误差:45-40=5误差:205-200=5误差:405-400=5void init dsl8b20(void) initialization command i)q 二 1;delay ;dq 二 0;delay(250);dq= 1;del
3、ay(100);ds18b20发出存在脉冲。/ds18b20 初 始 化 send reset and/dq复位,不要也可行。/稍做延时/单片机拉低总线/精确延时,维持至少480us/释放总线,即拉高了总线 /此处延时有足够,确保能让/*术青确延时 函数* */ void delay(unsigned char i) while (i);/此延时函数针对的是12mhz的晶振 delay (0):延时 518us delay (1):延时 7us delay (10):延时 25us delay (20):延时 45us delay (100):延时 205us del ay (200):延时
4、405us/uchar read_one_byte ()/读取一个字节的数据 read a byte date读数据时,数 据以字节的最低有效位先从总线移出uchar i=0;uchar dat = 0; for(i=8;i>0;i) /将总线拉低,要在lus/单片机要在此下/至少维持了 lus,表示读/让从总线上读到的位数据,/释放总线,此后ds18b20/延时7us,此处参照推dq = 0;之后释放总线降沿后的15us内读数据才会有效。 _nop_ ();时序开始dat >>= 1;依次从高位移动到低位。dq = 1;会控制总线,把数据传输到总线上 delay (1);i
5、f(i)q)荐的读时序图,尽量把控制器采样时间放到读时序后的15us内的最后部分/控制器进行采样dat 1=0x80;/若总线为1,即dq为1,那就把dat的最高位置1;若为0,则不进行处理,保持为0delay (10) ;/此延时不能少,确保读时序的长度60usoreturn (dat);voi d write_0ne_byte (uchar dtrt) ""uchar i = 0;for (i=8;i>0;i-)dq = 0;/拉低总线_nop_() ;/至少维持了lus,表示写时序(包括写0吋序或写1时序)开始dq二dat&oxol;/从字节的最低位开始
6、传输/指令dat的最低位赋予给总线,必须在拉低总线后的15us内,因/必须让写时/写完后,为15us后ds18b20会对总线采样。 delay (10);序持续至少60usdq 二 1;必须释放总线,dat »= 1; dclay(l);uint get_tmp()/获取温度get thetemperaturefloat tt;uchar a, b;tni t_dsl8b20 ();write_0ne_byte(oxcc); write one byte(0x44); init_dsl8b20();write one byte(oxcc); writc_one_bytc(oxbe);
7、 a 二 rcad_0nc_bytc();lsb/初始化/忽略rom指令/温度转换指令/初始化/忽略rom指令/读暂存器指令/读取到的第一个字节为温度b = read one by te (); msb/读取到的第一个字节为温度temp 二 b;据赋于temptemp «= 8;temp低八位移到高八位 temp 二 temp|a;tt 二 temp*0. 0625;ds18b20可以精确到0. 0625度读回数据的最低位代表的是0. 0625度 temp = 11*10+0. 5;做的冃的将小数点后第一位也转换为可显示数字 进行一个四舍五入操作。/先把高八位有效数/把以上8位数据从
8、/两字节合成一个整型变量/得到真实十进制温度值/因为/所以/放大十倍/这样/同时return temp; void display (uint temp)显示程序uchar al,a2,a3;al 二 temp/100;/百位a2 二 temp%100/10;/十位a3 = temp%10;/个位dula = 0;po = tableal ;/显示百位dula二1;/打开段选,对应74573的锁存位,高电平不锁存dula 二 0;we1a = 0;po = 0x7e;wela = 1;/打开位选we1 a = 0;delay(0);dula 二 0;po二tablela2;显示十位,使用的是有小数点的数组(因为temp值扩大了 10倍,虽然是十位,实际为个位) dula = 1;dula = 0;we1a 二 0; po = 0x7d; wela = 1;we1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026文化现象面试题及答案
- 2026乡村事件面试题及答案
- 学生思想状况调查报告一2026(3篇)
- 2025-2026学年河北省邯郸市肥乡区四年级数学下学期期中综合测试模拟试题(含解析)
- 2025-2026学年河北省沧州市海兴县数学三年级第二学期期中质量跟踪监视模拟试题含答案
- 2025-2026学年河北省保定市顺平县数学四年级下学期期中检测试题含答案解析
- 2025-2026学年江门市蓬江区三年级数学下学期期末综合测试试题(含解析)
- 芜湖市无为市城区学校选调教师笔试真题2025
- 北京市体育局所属事业单位招聘笔试真题2025
- 跨境智算中心电算协同中跨国算力绿电联合调度国际惯例汇编-基于国际惯例汇编算力绿电调度跨国交易习惯法整 理与适用规范分析
- 新疆油气田钻井固体废物综合利用污染控制要求(DB 65-T 3997-2017)
- 北京通州农商产业发展集团有限公司招聘17人笔试备考题库及答案详解
- 2026年共青团入团考试试题附标准答案
- 2026郑州市新初一三科分班摸底卷摸底卷
- 硫化物固态电解质生产线项目风险评估报告
- 2026年渭南市大荔县数学三下期末统考模拟试题含答案
- (2024版)中国成人暴发性心肌炎诊断和治疗指南课件
- (2026年)痔疮的诊断和治疗健康宣教课件
- 老年人慢性病管理与护理
- (2026年)血气分析临床解读课件
- 分布式光伏开发建设导则
评论
0/150
提交评论