




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、温度传感器电路报告单位:电子大赛实验室 姓名:黄军方 王士恒 孙瑞海日期:2007-8-10目录1.系统设计x1.1设计要求x1.2总体设计方案x1.2.1设计思路x1.2.2方案论证与比较x1.2.3系统组成x2.单元电路设计x3.软件设计x4.系统测试x4.1测试使用的仪器X4.2指标测试和测试结果X5.结束语x参考文献x附录1 元器件明细表x附录2 程序清单x附录3 印制板图x附录4 系统使用说明x1.2.2方案论证与比较1.温度传感器电路的设计方案论证与选择方案一:方案二:采用单总线的连接方式,用数字温度计集成电路DS18S20来实现测温电路的设计。DS18S20具有硬件连接简单,温度
2、测量范围大,精度高的优点。而且可以实现多个测温点的级连,应用范围较广,易于系统的扩展。方案三:综上所述,2.单元电路设计2.1温度传感器电路的设计DS18S20是美国Dallas公司生产的单总线数字温度传感器。它可以把温度信号直接转换成串行数字信号供单片机处理,采用单线接口,仅需一根口线与MCU相连,无需外围元件;测温范围为-55125 ,精度为0.5(-1085范围内);9位温度读数;温度转换时间最长为750 ms;而且用户可自设定温度报警上下限,其值是非易失性的;报警搜索命令可识别哪片DS18S20超温度界限。DS18S20的内部结构如图2-1所示。图2-1 DS18S20内部结构图图2-
3、2 DS1820接口原理图DS18S20主要包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速暂存器(内含便笺式RAM)、用于存储用户设定的温度上下限值TH和TL的触发器、存储与控制逻辑、8位循环冗余校验码(CRC)发生器8部分。DS18S20既可以采用寄生供电,也可以采用外部5 V电源供电,本电路的设计采用的是外部5 V电源供电。其电路的接口原理图如图2-2所示。表2-1 DS18S20温度数字对应关系表DS18S20的测温原理是:内部计数器对一个受温度影响的振荡器计数。温度表示值应为9位,高位为符号位,但因符号位扩展成高8位,故以16位补码形式读出,温度与数字量的关系如
4、表2-1所列。3.软件设计3.1温度传感器电路的软件设计在电路的工作中89C51首先发复位DS18S20的负脉冲,接着收DS18S20的回应脉冲,这时89C51再发ROM命令(33H),最后发此存储和控制命令。主机操作ROM的命令有5种,如表83所列。64位激光ROM的结构如下:开始8位是产品类型编号(DS18S20为10H);接着是每个器件的惟一序号,共有48位;最后8位是前56位的CRC校验码,这也是多个DS18S20可以采用一线的原因。DS18S20存储控制命令共有6种,如表84所列。DS18S20的存储器由便笺式RAM和非易失性电擦写EERAM组成,后者用于存储TH和TL值。数据先写入
5、RAM,经校验后再传给EERAM。便笺式RAM占9字节,包括温度信息(第1、2字节)、TH、TL值(第3、4字节)、计数寄存器(第7、8字节)、CRC(第9字节)等,第5、6字节不用。根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。其程序的流程图如图3-1所示。程序详见
6、附录2。图3-1 程序流程框图附录2 程序清单;*;这是关于DS18B20的读写程序,数据脚P2.0,晶振12MHZ;温度传感器18B20汇编程序,采用器件默认的12位转化,最大转化时间750微秒;可以将检测到的温度直接显示到启点开发板板的两个数码管上;显示温度00到99度,很准确哦无需校正!;*ORG 0000H ;单片机内存分配申明!TEMPER_L EQU 29H;用于保存读出温度的低8位TEMPER_H EQU 28H;用于保存读出温度的高8位FLAG1 EQU 38H;是否检测到DS18B20标志位a_bit equ 20h ;数码管个位数存放内存位置b_bit equ 21h ;数
7、码管十位数存放内存位置D18B20 BIT P2.0MAIN: LCALL GET_TEMPER;调用读温度子程序;进行温度显示,这里我们考虑用网站提供的两位数码管来显示温度;显示范围00到99度,显示精度为1度;因为12位转化时每一位的精度为0.0625度,我们不要求显示小数所以可以抛弃29H的低4位;将28H中的低4位移入29H中的高4位,这样获得一个新字节,这个字节就是实际测量获得的温度;这个转化温度的方法可是我想出来的哦非常简洁无需乘于0.0625系数 MOV A,29H MOV C,40H;将28H中的最低位移入C RRC A MOV C,41H RRC A MOV C,42H RR
8、C A MOV C,43H RRC A MOV 29H,A LCALL DISPLAY;调用数码管显示子程序 CPL P1.0 AJMP MAIN; 这是DS18B20复位初始化子程序INIT_1820:SETB D18B20 NOP CLR D18B20;主机发出延时537微秒的复位低脉冲 MOV R1,#3TSR1: MOV R0,#107 DJNZ R0,$ DJNZ R1,TSR1 SETB D18B20;然后拉高数据线 NOP NOP NOP MOV R0,#25HTSR2: JNB D18B20,TSR3;等待DS18B20回应 DJNZ R0,TSR2 LJMP TSR4 ; 延
9、时TSR3: SETB FLAG1 ; 置标志位,表示DS1820存在 CLR P0.0;检查到DS18B20就点亮P1.7LED LJMP TSR5TSR4: CLR FLAG1 ; 清标志位,表示DS1820不存在 CLR P0.1 LJMP TSR7TSR5: MOV R0,#117TSR6: DJNZ R0,TSR6 ; 时序要求延时一段时间TSR7: SETB D18B20 RET;* 读出转换后的温度值*GET_TEMPER:SETB D18B20 LCALL INIT_1820;先复位DS18B20 JB FLAG1,TSS2 CLR P0.2 RET ; 判断DS1820是否存
10、在?若DS18B20不存在则返回TSS2: CLR P0.3;DS18B20已经被检测到! MOV A,#0CCH ; 跳过ROM匹配 LCALL WRITE_1820 MOV A,#44H ; 发出温度转换命令 LCALL WRITE_1820;这里通过调用显示子程序实现延时一段时间,等待AD转换结束,12位的话750微秒 LCALL DISPLAY LCALL INIT_1820;准备读温度前先复位 MOV A,#0CCH ; 跳过ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ; 发出读温度命令 LCALL WRITE_1820 LCALL READ_18200;
11、将读出的温度数据保存到35H/36H CLR P0.4 RET;写DS18B20的子程序(有具体的时序要求) WRITE_1820: MOV R2,#8;一共8位数据 CLR CWR1: CLR D18B20 MOV R3,#6 DJNZ R3,$ RRC A MOV D18B20,C MOV R3,#23 DJNZ R3,$ SETB D18B20 NOP DJNZ R2,WR1 SETB D18B20 RET; 读DS18B20的程序,从DS18B20中读出两个字节的温度数据 READ_18200:MOV R4,#2 ; 将温度高位和低位从DS18B20中读出MOV R1,#29H ; 低
12、位存入29H(TEMPER_L),高位存入28H(TEMPER_H)RE00:MOV R2,#8;数据一共有8位RE01:CLR CSETB D18B20NOPNOPCLR D18B20NOPNOPNOPSETB D18B20MOV R3,#9RE10: DJNZ R3,RE10MOV C,D18B20MOV R3,#23RE20: DJNZ R3,RE20RRC ADJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00RET;显示子程序display: mov a,29H;将29H中的十六进制数转换成10进制 mov b,#10 ;10进制/10=10进制div abm
13、ov b_bit,a ;十位在amov a_bit,b ;个位在bmov dptr,#numtab ;指定查表启始地址mov r0,#4 dpl1: mov r1,#250 ;显示1000次dplop: mov R0,#a_bit ;取个位数 MOV R7,#2VIEW1: MOV A,R0 MOVC A,A+DPTR ;查个位数的7段代码 MOV SBUF,A JNB TI,$ CLR TI INC R0 DJNZ R7,VIEW1;mov p0,a ;送出个位的7段代码;clr p2.7 ;开个位显示;acall d1ms ;显示1ms;setb p2.7;mov a,b_bit ;取十位数;MOVC A,A+DPTR ;查十位数的7段代码;mov p0,a ;送出十位的7段代码;clr p2.6 ;开十位显示;acall d1ms ;显示1ms;setb p2.6;djnz r1,dplop ;100次没完循环;djnz r0,dpl1 ;4个100次没完循环ret;1MS延时(按12MHZ算)D1MS: MOV R7,#80 DJNZ R7,$ RET;实验板上的7段数码管09
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业管道的运行与维护培训
- 工作中的信息安全管理与保护策略
- 工业节能电机系统的优化与改造
- 工业风建筑装饰设计案例分享
- 工作效率提升的智能穿戴设备探讨
- 工作与生活平衡的时间管理策略
- 工作流程优化与管理效能提升培训课程类题目
- 工程师培训课程中的统计过程控制
- 工程物理学的发展方向探讨
- 工程项目中的物资采购与财务审计
- (正式版)HGT 4339-2024 机械设备用涂料
- 2024年山东省济南市槐荫区中考一模地理试题
- 多联体筒仓滑模施工技术分享
- 三年级语文下册 西城区期末综合模拟测试卷(人教北京版)
- 钢铁企业检修工程预算定额 说明 解释 规则
- 护理文书书写规和质量管理考核标准(体温单)
- 夫妻 股权转让协议
- 盐雾试验测试报告
- 创意美术《5-8岁线描联想《拇指家族的表情大PK》》课件
- 《烧(创)伤的急救复苏与麻醉管理》智慧树知到课后章节答案2023年下中国人民解放军总医院第四医学中心
- 总承包工程技术标述标汇报
评论
0/150
提交评论