![单片机原理及应用课程设计单片机数字温度计设计_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-5/2/4c23e44f-98ca-4480-8385-da1c147d046f/4c23e44f-98ca-4480-8385-da1c147d046f1.gif)
![单片机原理及应用课程设计单片机数字温度计设计_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-5/2/4c23e44f-98ca-4480-8385-da1c147d046f/4c23e44f-98ca-4480-8385-da1c147d046f2.gif)
![单片机原理及应用课程设计单片机数字温度计设计_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-5/2/4c23e44f-98ca-4480-8385-da1c147d046f/4c23e44f-98ca-4480-8385-da1c147d046f3.gif)
![单片机原理及应用课程设计单片机数字温度计设计_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-5/2/4c23e44f-98ca-4480-8385-da1c147d046f/4c23e44f-98ca-4480-8385-da1c147d046f4.gif)
![单片机原理及应用课程设计单片机数字温度计设计_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-5/2/4c23e44f-98ca-4480-8385-da1c147d046f/4c23e44f-98ca-4480-8385-da1c147d046f5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机原理及应用 课程设计报告书题 目:数字温度计的设计姓名:学号:专业班级:生医091班指导老师: 设计时间:2012年7月目录1 系统功能12 设计方案13 开发工具和芯片介绍 13.1keil软件13.2 proteus软件23.3.protel软件 43.4 at89c52单片机 53.5 ds18b20温度传感器 64 系统硬件仿真电路 75 程序设计75.1主程序 75.2读出温度温度子程序 75.3温度转换命令子程序 85.4计算温度子程序 95.5显示数据刷新子程序 95.6ds18b20中的rom命令 95.7温度数据的计算处理方法 11六软件调试与运行结果12七电路板调试
2、18八源程序清单 18九参考文献 27单片机数字温度计设计一、 系统设计功能数字温度计测温范围在-55-125精度误差在0.5以内,用四位共阳led数码管直接读显示,要求高位为0不显示,低于0时前面显示“-”。二、 设计方案传统的测温元件有热电偶和热电阻,而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。而数字温度计的设计可采用美国dallas半导体公司继ds1820之后推出的一种改进型智能温度传感器ds18b20作为检测元件,测温范围为-55-125,分辨率最大可达0.0625。ds18b20可以直接读出被测温度值(不用
3、校准),而且采用单线与单片机通讯,减少了外部的硬件电路,具有高精度和易使用的特点。按照系统功能的要求,数字温度计由主控制器、测温单元和显示电路3个模块组成。总体系统结构图见图1四位led数码显示器89c52主控制器温度传感器扫描驱动图1 数字温度计系统结构3 开发工具和芯片介绍 3.1 keil软件3.1.1 keil软件简介keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开发系统,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用c来开发,体会更加深刻。keil c51软件提供丰富的库函数和功能强大的集
4、成开发调试工具,全windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。keil c51软件是一个基于32位windows环境的应用程序,支持c语言和汇编语言编程,其6.0以上的版本将编译和仿真软件统一为vision(通常称为v2)。keil提供包括c编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:vision ide集成开发环境c51编译器、a51汇编器、lib51库管理器、bl51连接/定位器、o
5、h51目标文件生成器以及 monitor-51、rtx51实时操作系统。3.1.2 keil软件调试功能应用keil进行软件仿真开发的主要步骤为:编写源程序并保存建立工程并添加源文件设置工程编译/汇编、连接,产生目标文件程序调试。keil使用“工程”(project)的概念,对工程(而不能对单一的源程序)进行编译/汇编、连接等操作。工程的建立、设置、编译/汇编及连接产生目标文件的方法非常易于掌握。首先选择菜单file-new,在源程序编辑器中输入汇编语言或c语言源程序(或选择file-open,直接打开已用其它编辑器编辑好的源程序文档)并保存,注意保存时必须在文件名后加上扩展名.asm(.a5
6、1)或.c;然后选择菜单project-new project,建立新工程并保存(保存时无需加扩展名,也可加上扩展名.uv2);工程保存后会立即弹出一个设备选择对话框,选择cpu后点确定返回主界面。这时工程管理窗口的文件页(files)会出现“target1”,将其前面+号展开,接着选择source group1,右击鼠标弹出快捷菜单,选择“add file to group source group1”,出现一个对话框,要求寻找并加入源文件(在加入一个源文件后,该对话框不会消失,而是等待继续加入其它文件)。加入文件后点close返回主界面,展开“source group1”前面+号,就会看到
7、所加入的文件,双击文件名,即可打开该源程序文件。紧接着对工程进行设置,选择工程管理窗口的target1,再选择project-option for targettarget1(或点右键弹出快捷菜单再选择该选项),打开工程属性设置对话框,共有8个选项卡,主要设置工作包括在target选项卡中设置晶振频率、在debug选项卡中设置实验仿真板等,如要写片,还必须在output选项卡中选中“creat hex fi”;其它选项卡内容一般可取默认值。工程设置后按f7键(或点击编译工具栏上相应图标)进行编译/汇编、连接以及产生目标文件。成功编译/汇编、连接后,选择菜单debug-start/stop de
8、bug session(或按ctrl+f5键)进入程序调试状态,keil提供对程序的模拟调试功能,内建一个功能强大的仿真cpu以模拟执行程序。keil能以单步执行(按f11或选择debug-step)、过程单步执行(按f10或选择debug-step over)、全速执行等多种运行方式进行程序调试。如果发现程序有错,可采用在线汇编功能对程序进行在线修改(debug-inline assambly),不必执行先退出调试环境、修改源程序、对工程重新进行编译/汇编和连接、然后再次进入调试状态的步骤。对于一些必须满足一定条件(如按键被按下等)才能被执行的、难以用单步执行方式进行调试的程序行,可采用断点
9、设置的方法处理(debug-insert/remove breakpoint或debug-breakpoints等)。在模拟调试程序后,还须通过编程器将.hex目标文件烧写入单片机中才能观察目标样机真实的运行状况。3.2 proteus软件3.2.1. proteus简介proteus软件是英国labcenter electronics公司出版的eda工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它eda工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开
10、发应用的科技工作者的青睐。proteus是世界上著名的eda工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到pcb设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、pcb设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、hc11、pic10/12/16/18/24/30/dspic33、avr、arm、8086和msp430等,2010年即将增加cortex和dsp系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持iar、keil和mplab等多种编译器。 该软件的特点是:1. 实现了单片机仿真和spice电路
11、仿真相结合,具有模拟电路仿真、数字电路仿真、各种单片机(51系列、avr、pig等常用的mcu)及其外围电路(如lcd、ram、rom、键盘、led、a/d、d/a)组成的系统仿真。2. 提供了多种虚拟仪器。如示波器、逻辑分析仪、信号发生器等,调试非常方便。3. 提供软件调试功能,同时支持第三方的软件编译和调试环境,如keil等软件。4. 具有强大的原理图绘制功能。proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机cpu的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程
12、的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验从某种意义上讲,是弥补了实验和工程应用阉脱节的矛盾和现象。同时,当硬件调试成功后,利用proteus ares软件,很容易获得其pcb图,为今后的制造提供了方便。3.2.2 四大功能模块1. 智能原理图设计(isis)丰富的器件库:超过27000种元器件,可方便地创建新元件。 智能的器件搜索:通过模糊搜索可以快速定位所需要的器件。 智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间。 支持总线结构:使用总线器件和总线布线使电路设计简明清晰。 可输出高质量图纸:通过个性化设置,可以生成印刷质量的bmp图纸,可以方便地供
13、word、powerpoint等多种文档使用。 2. 完善的电路仿真功能(prospice)prospice混合仿真:基于工业标准spice3f5,实现数字/模拟电路的混合仿真。 超过27000个仿真器件:可以通过内部原型或使用厂家的spice文件自行设计仿真器件,labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件。 多样的激励源:包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav文件)、指数信号、单频fm、数字时钟和码流,还支持文件形式的信号输入。丰富的虚拟仪器:13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字
14、图案发生器、频率计/计数器、逻辑探头、虚拟终端、spi调试器、i2c调试器等。 生动的仿真显示:用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动 高级图形仿真功能(asf):基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等。 3. 独特的单片机协同仿真功能(vsm)支持主流的cpu类型:如arm7、8051/52、avr、pic10/12、pic16、pic18、pic24、dspic33、hc11、basicstamp、8086、msp430等,cp
15、u类型随着版本升级还在继续增加,如即将支持cortex、dsp处理器。 支持通用外设模型:如字符lcd模块、图形lcd模块、led点阵、led七段显示模块、键盘/按键、直流/步进/伺服电机、rs232虚拟终端、电子温度计等等,其compim(com口物理接口模型)还可以使仿真电路通过pc机串口和外部电路实现双向异步串行通信。 实时仿真:支持uart/usart/eusarts仿真、中断仿真、spi/i2c仿真、mssp仿真、psp仿真、rtc仿真、adc仿真、ccp/eccp仿真。 编译及调试:支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、avr、pic的汇编编译器,也可以与第三方
16、集成编译环境(如iar、keil和hitech)结合,进行高级语言的源码级仿真和调试。4. 实用的pcb设计平台原理图到pcb的快速通道: 原理图设计完成后,一键便可进入ares的pcb设计环境,实现从概念到产品的完整设计。先进的自动布局/布线功能:支持器件的自动/人工布局;支持无网格自动布线或人工布线;支持引脚交换/门交换功能使pcb设计更为合理。 完整的pcb设计功能:最多可设计16个铜箔层,2个丝印层,4个机械层(含板边),灵活的布线策略供用户设置,自动设计规则检查,3d 可视化预览。 多种输出格式的支持:可以输出多种格式文件,包括gerber文件的导入或导出,便利与其它pcb设计工具的
17、互转(如protel)和pcb板的设计和加工。 3.2.3 isis智能原理图输入系统isis是proteus系统的中心,它远不仅是一个图表库。它是具有控制原理图画图的外观的超强的设计环境。无论用户的要求是快速实现复杂设计的仿真以及pcb设计,还是设计精美的原理图以供出版,isis都可以很好的完成。isis提供给用户图形外观包括线宽、填充类型、字符等的全部控制,使用户能够生成如杂志上看到一样精美的原理图,远胜过cad软件绘制出的稀薄的线条。画完图可以以图形文件输出,或者拷贝到剪切板以便其他文件使用。这就使得isis成为制作技术文件,学术论文,项目报告的理想工具,也是pcb设计的一个出色的前端。
18、画图的外形由风格模板定义。此外,此方案允许用户定制元件库提供的库部件的外观。3.2.4 proteus简单应用图2-1 proteus界面图1. 绘制原理图:绘制原理图要在原理图编辑窗口中的蓝色方框内完成。原理图编辑窗口的操作是不同于常用的windows应用程序的,正确的操作是:用左键放置元件;右键选择元件;双击右键删除元件;右键拖选多个元件;先右键后左键编辑元件属性;先右键后左键拖动元件;连线用左键,删除用右键;改连接线:先右击连线,再左键拖动;中键放缩原理图。2. 定制自己的元件:有三个个实现途径,一是用proteus vsm sdk开发仿真模型,并制作元件;另一个是在已有的元件基础上进行
19、改造,比如把元件改为bus接口的;还有一个是利用已制作好(别人的)的元件,我们可以到网上下载一些新元件并把它们添加到自己的元件库里面。3. sub-circuits应用:用一个子电路可以把部分电路封装起来,这样可以节省原理图窗口的空间。3.3 protel软件3.3.1 protel简介早期的protel主要作为印制板自动布线工具使用,运行在dos环境,对硬件的要求很低,在无硬盘286机的1m内存下就能运行,但它的功能也较少,只有电路原理图绘制与印制板设计功能,其印制板自动布线的布通率也低,而现今的protel已发展到dxp 2004,是个庞大的eda软件,完全安装有200多m,它工作在win
20、dows95环境下,是个完整的板级全方位电子设计系统,它包含了电路原理图绘制、模拟电路与数字电路混合信号仿真、多层印制电路板设计(包含印制电路板自动布线)、可编程逻辑器件设计、图表生成、电子表格生成、支持宏操作等功能,并具有client/server(客户/服务器)体系结构,同时还兼容一些其它设计软件的文件格式,如orcad,pspice,excel等,其多层印制线路板的自动布线可实现高密度pcb的100%布通率。3.3.2 protel软件快捷键enter选取或启动 esc放弃或取消 f1启动在线帮助窗口 tab启动浮动图件的属性窗口 pgup放大窗口显示比例 pgdn缩小窗口显示比例 en
21、d刷新屏幕 del删除点取的元件(1个) ctrl+del删除选取的元件(2个或2个以上) x+a取消所有被选取图件的选取状态 x将浮动图件左右翻转 y将浮动图件上下翻转 space将浮动图件旋转90度 crtl+ins将选取图件复制到编辑区里 shift+ins将剪贴板里的图件贴到编辑区里 shift+del将选取图件剪切放入剪贴板里 alt+backspace恢复前一次的操作 ctrl+backspace取消前一次的恢复 crtl+g跳转到指定的位置 crtl+f寻找指定的文字 alt+f4关闭protel spacebar绘制导线,直线或总线时,改变走线模式 v+d缩放视图,以显示整张电
22、路图 v+f缩放视图,以显示所有电路部件 home以光标位置为中心,刷新屏幕 esc终止当前正在进行的操作,返回待命状态 backspace放置导线或多边形时,删除最末一个顶点 delete放置导线或多边形时,删除最末一个顶点 ctrl+tab在打开的各个设计文件文档之间切换 alt+tab在打开的各个应用程序之间切换 a弹出editalign子菜单 b弹出view oolbars子菜单 e弹出edit菜单 f弹出file菜单 h弹出help菜单 j弹出editjump菜单 l弹出editset location makers子菜单 m弹出editmove子菜单 o弹出options菜单 p弹
23、出place菜单 r弹出reports菜单 s弹出editselect子菜单 t弹出tools菜单 v弹出view菜单 w弹出window菜单 x弹出editdeselect菜单 z弹出zoom菜单 左箭头光标左移1个电气栅格 shift+左箭头光标左移10个电气栅格 右箭头光标右移1个电气栅格 shift+右箭头光标右移10个电气栅格 上箭头光标上移1个电气栅格 shift+上箭头光标上移10个电气栅格 下箭头光标下移1个电气栅格 shift+下箭头光标下移10个电气栅格 ctrl+1以零件原来的尺寸的大小显示图纸 ctrl+2以零件原来的尺寸的200%显示图纸 ctrl+4以零件原来的尺寸
24、的400%显示图纸 ctrl+5以零件原来的尺寸的50%显示图纸 ctrl+f查找指定字符 ctrl+g查找替换字符 ctrl+b将选定对象以下边缘为基准,底部对齐 ctrl+t将选定对象以上边缘为基准,顶部对齐 ctrl+l将选定对象以左边缘为基准,左对齐 ctrl+r将选定对象以右边缘为基准,右对齐 ctrl+h将选定对象以左右边缘的中心线为基准,水平居中排列 ctrl+v将选定对象以上下边缘的中心线为基准,垂直居中排列 ctrl+shift+h将选定对象在左右边缘之间,水平均布 ctrl+shift+v将选定对象在上下边缘之间,垂直均布 f3查找下一个匹配字符 shift+f4将打开的所
25、有文档窗口平铺显示 shift+f5将打开的所有文档窗口层叠显示 shift+单左鼠选定单个对象 crtl+单左鼠,再释放crtl拖动单个对象 shift+ctrl+左鼠移动单个对象 按ctrl后移动或拖动移动对象时,不受电器格点限制 按alt后移动或拖动移动对象时,保持垂直方向 按shift+alt后移动或拖动移动对象时,保持水平方向3.4 at89c52单片机3.4.1 at89c52简介at89c52只是51系列单片机的一个型号,at89c52是美国atmel公司生产的低电压、高性能cmos 8位单片机,片内含8kb的可反复檫写的程序存储器和12b的随机存取数据存储器(ram),器件采用
26、atmel公司的高密度、非易失性存储技术生产,兼容标准mcs-51指令系统,片内配置通用8位中央处理器(cpu)和flash存储单元,功能强大的at89c52单片机可灵活应用于各种控制领域。at89c52单片机属于at89c51单片机的增强型,与intel公司的80c52在引脚排列、硬件组成、工作特点和指令系统等方面兼容。3.4.2 at89c51与at89c52的区别1、ram 空间:at89c51 有128 字节的内部 ram,称之为 data 存储区。at89c52 的内部 ram 扩展为 256 字节,其中高 128 字节,位于从 80h 开始的地址空间中,称之为 idata 存储区,
27、但idata 区的访问只能是间接寻址方式。2、内部 flash:at89c51 有 4k 字节的内部 flash peram,而at89c52 的内部 flash peram 增加1倍,达到8k。3、中断源:在at89c52 中p1.0和p1.1还可分别作为定时器/计数器2的外部计数输入(p1.0/t2)和(p1.1/t2ex),也就是说,p1.0同时可作为定时器/计数器 t2 的外部计数输入,和输出占空比 50% 的时钟脉冲端口,p1.1同时可作为定时器/计数器 t2 捕获/重新装载触发和方向控制端口。故,at89c52 除了具备 at89c51 的定时器/计数器 t0 和定时器/计数器 t
28、1,还额外增加了一个定时器/计数器 t2。而定时器/计数器 t2 的控制和状态位单独位于t2con、t2mod,定时器/计数器 t2 在 16 位捕获方式或自动重新装载方式下的捕获/重载寄存器组是(tcao2h、rcap2l)。4.内部ram及寻址:(1)51的内部ram是128字节 00h-7fh既可直接寻址又可间接寻址 80h-ffh为sfr区 只能直接寻址 即data区:00h-ffh idata区:00h-7fh(2)52的内部ram是256字节 00h-7fh既可直接寻址又可间接寻址高128字节ram80h-ffh与sfr区在地址上的重垒的,但物理上分开这部分对sfr直接寻址,对ra
29、m间接寻址 即data idata区都是00h-ffh3.5 ds18b20传感器3.5.1 ds18b20简介ds18b20温度传感器是美国dallas半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。3.5.2 ds18b20主要特性(1) 适应电压范围更宽,电压范围:3.05.5v,在寄生电源方式下可由数据线供电 (2) 独特的单线接口方式,ds18b20在与微处理器连接时仅需要一条口线即可实现微处理器与ds18b20的双向通讯 (3) ds18b20支持多点组网功能,多个ds
30、18b20可以并联在唯一的三线上,实现组网多点测温 (4) ds18b20在使用中不需要任何外围元件,全部 传感元件及转换电路集成在形如一只三极管的集成电路内 (5) 温范围55+125,在-10+85时精度为0.5 (6) 可编程 的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温 (7) 在9位分辨率时最多在 93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快 (8) 测量结果直接输出数字温度信号,以一 线总线串行传送给cpu,同时可传送crc校验码,具有极强的抗干扰纠错能力 (9) 负压特性:
31、电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。 3.5.3 ds18b20引脚定义:(1)dq为数字信号输入/输出端; (2) gnd为电源地; (3) vdd为外接供电电源输入端(在寄生电源接线方式时接地)。 四系统硬件仿真电路数字温度计电路仿真电路见图2,控制器使用89c52系列单片机,温度传感器使用ds18b20,用四位共阳led数码管以动态扫描法实现温度显示,从p0口输出段码,列扫描用p2口来实现,列驱动用74hc244,可直接作为led段码灯的电源。仿真电路如图2。图2.数字温度计系统硬件仿真电路五程序设计系统程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度
32、子程序、显示数据刷新子程序等。5.1 主程序主程序的主要功能负责温度的实时显示、独处并处理ds18b20的测量温度值,温度测量每1s进行一次,其程序流程详见图3.5.2 读出温度子程序读出温度子程序的功能是读出ds18b20 ram中的9个字节,在读出时需要经行crc校验,校验有错时不进行温度数据的读写,其程序流程详见图4. 图3.ds18b20温度计主程序流程 图4.读出温度子程序流程5.3 温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时,转换时间约为750ms,在本程序设计中1s显示程序延时法等待转换的完成,温度转换命令子程序流程详见图5。图5.温度转换
33、命令子程序流程5.4 计算温度子程序计算温度设计子程序将ds18b20 ram中读取值进行bcd码得转换运算,并进行温度值正负的判定,其程序流程详见图65.5 显示数据刷新子程序显示数据刷新子程序主要是显示缓冲器中的缓冲数据进行刷新操作,当最高数据显示位为0时将符号显示位移入下一位,程序流程图见图7.图6.计算温度子程序流程 图7.显示数据刷新子程序流程5.6 ds18b20中的rom命令1)read rom 33h这个命令允许总线控制器读到ds18b20的8位系列编码、唯一的序列号和8位crc码。只有在总线上存在但只ds18b20时才能使用这个命令。如果总线上不止一个从机,当所有从机试图同时
34、传送信号时就会发生数据冲突(漏极开路连在一起形成相与的效果)。2)match rom 55h这是匹配rom命令,后跟64位rom序列,让总线控制器在多点总线上定位一只特定的ds18b20。只有和64位rom序列完全匹配的ds18b20才能响应随后的存储器操作。所有和64位序列不匹配的从机都将等待复位脉冲。这条命令在总线上有单个或多个器件时都可以使用。3)skip rom 0cch这条命令允许总线控制器不用提供64位rom编码就可以使用存储器操作命令,在单点总线情况下,可以节省时间。如果总线不止一个从机,在skip rom命令之后跟着发一条读命令,由于多个从机同时发送信号。总线上就就会发生数据冲
35、突(漏极开路下拉效果相当于与)4)search rom0f0h当一个系统初次启动时总线控制器可能并不知道单线总线上有多少器件或它们的64位rom编码。5)alarm search 0ech这条命令的流程和search rom相同。然而只有在最近一次测温后遇到符合报警条件的情况ds18b20才会响应这条命令。报警条件定义为温度高于th或低于tl。主要ds18b20不掉电,报警状态将一直保持,知道再一次测得的温度值达不到报警条件。6)write scratchpad 4eh这个命令向ds18b20的暂存器th和tl中写入数据。可以在任何发出复位命令来中止写入。7)read scratchpad0b
36、eh这个命令暂存器的内容。读取将读取将从第一个字节开始,一直进行下去,知道第9(crc)个字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。8)copy scratchpad 48h这个命令把暂存器的内容拷贝到ds18b20的prom存储器里,即把温度报警触发字节存入非易失性存储器里。如果总线控制器在这条命令跟着发出读时间隙,而ds18b29又忙于把暂存器拷贝到prom 存储器,ds18b20就会输出一个“0”,如果拷贝结束的话,ds18b20则输出“1”。如果使用寄生电源,总线控制器必须在这条命令发出后立即启动强上拉并最少保持10ms.9)convert t44h这
37、条命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后ds18b20保持等待状态。如果总线控制器在这条命令之后跟着发出读时间隙,而ds18b20就会输出一个“0”,如温度转换完成,则输出“1”。如果使用寄生电源,总线控制器必须在发出这条命令发出后立即启动强上拉并最少保持500ms以上时间。10)recall eh0b8h这条命令把报警触发器里的值拷贝回暂存器。这种拷贝操作在ds18b20上电时自动执行,这样器件一上电暂存器里马上就存在有效的数据了。若在这条命令发出之后发出读书据隙,器件会输出温度转换忙的标识:“0”=忙,“1”=完成。11)read power supply 0b4h若
38、把这条命令发给ds18b20后发出读时间隙,器件会返回它的电源模式:“0”=寄生电源,“1”=外部电源。5.7温度数据的处理方法从ds18b20读取出的二进制值必须先转换成十进制bcd码,才能用于字符的显示。因为ds18b20的转换精度为912 位(可选的),为提高精度可采用12位。在采用12位转换精度时,温度寄存器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制乘以0.0625,就是实际的十进制温度值。表1是ds18b20温度以二进制及十六进制表示值的对应关系,从表中可知,一个十进制和二进制之间有很明显的关系,就是把二进制的高字节的低半字节和低字节的高高半字节组成一个字节,这个
39、字节的二进制转化为十进制的bcd码值后,就是温度值的百、十、个位值,而剩下的低字节的低半字节转化成十进制以后,就是温度值的小数部分。小数部分因为是半个字节,所以十六进制范围是0f,转化成十进制小数值就是0.0625的倍数(015倍)。需用四位的数码管来显示小数部分,在实际应用中不必有着么高的精度,设计中一般采用一位数码管来显示小数,可以精确到0.1。表噢 是小数部分十六进制和十进制的近似对应关系。表1 ds18b20温度与表示值对应关系温度()二进制表示十六进制表示+1250000 0111 1101 000007d0h+850000 0101 0101 00000550h+25.062500
40、00 0001 1001 00010191h+10.1250000 0000 1010 001000a2h+0.50000 0000 0000 10000008h00000 0000 0000 00000000h-0.51111 1111 1111 1000fff8h-10.1251111 1111 0101 1110ff5eh-25.06251111 1110 0110 1111fe6fh-551111 1100 1001 0000fc90h表2 小数部分十六进制和十进制的近似对应关系小数部分十六进制值001122334455667788991a1b1c1deeff十进制小数近似值00001
41、121323343 4 5 5 6 6 7 8 8 9六软件调试及运行结果系统的调试以程序为主。可先编一个测试小程序以判断仿真硬件电路是否正常。然后分别进行显示程序、主程序、读出温度子程序、温度转换命令子程序、计算温度子程序、显示温度刷新子程序等的编程及调试,由于ds18b20与单片机采用单线数据传送。因此,对ds18b20进行读写编程时必须严格地保证读写时序,否则将无法读取测量结果。1.在keil软件中调试程序,修改错误。调试结果正确后生成.hex文件。2.在proteus软件中画出电路图并加载.hex文件并运行,结果如下图所示:调节ds18b20温度传感器的“+”“”,led显示的温度值也
42、做出相应的变化。3. 在protel软件中绘制pcb图(1) 打开protel软件,在file中选择new,再选择pcb,建立pcb文件如下:(2) 在browse中选中libraries。选择所需元件,单击place即可安放元件。对于某些型号的元件可能不能找到,此时我们选择管脚相同的元件来代替,如果管脚完全相同的元件也找不到则找更多管脚的元件来代替。总之在protel中选择的元件的管脚数至少和实际使用的元件的管脚数一样。(3) 安放好元件,在工具栏中选择连线按钮为电路布线。(4) 对于接地和接电源的地方,我们需要打孔。在protel工具栏中选择打孔按钮来完成该操作:(5) 需要注释的地方(如
43、接地接电源处打的孔),我们用工具栏中的“t”按钮完成注释:(6) 完成上述步骤后布线图如下:(7) 在菜单栏选择绿色按钮:即可观察三维图像:7 电路板调试上述过程只是仿真过程,对于程序是否可行,则需要在电路板上进行调试。根据老师提供的电路板,对程序做适当修改后即可得正确结果。如下图所示:8 源程序清单 ;*;课程设计程序:数字温度计;显示精度为0.1摄氏度,测温范围-55+125摄氏度;用89c52系列单片机,12mhz晶振;*;*;常数定义;*timel equ 0e0h ;定时器t0的20ms时间常数timeh equ 0b1h ;定时器t0的20ms时间常数temphead equ 36
44、h ;18b20读出字节存放首址(共读9个字节);*;工作内存定义;*bitst data 20h ;用作标志位time1sok bit bitst.1 ;1s定时时间标志,1s到时为1temponeok bit bitst.2 ;上电标志,刚上电为0,读出一次后为1templ data 26h ;读出温度低字节存放-整数低四位+小数位四位temph data 27h ;读出温度高字节存放-四位符号位+整数高四位temphc data 28h ;用于存放处理好的bcd码温度值:百位+十位templc data 29h ;用于存放处理好的bcd码温度值:个位+小数位;*;引脚定义;*tempdin bit p3.7 ;18b20数据接口;*;中断向量区;*org 0000hljmp startorg 00bhljmp toit;*;系统初始化;* org 100hstart: mov sp,#60hclsmem: mov r0,#20h ;堆栈底 mov r1,#60h ;20h7fh清零clsmem1: mov r0,#00h ; inc r0 ; djnz r1,clsmem1 ; mo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit 3 Where did you go(说课稿)-2023-2024学年人教PEP版英语六年级下册
- Unit 6 Review Period 4 (说课稿)-2024-2025学年北师大版(三起)英语三年级上册
- 《1、了解学习好习惯》(说课稿)-2024-2025学年二年级上册综合实践活动鲁科版
- 《10 交通安全小常识》(说课稿)-2023-2024学年四年级上册综合实践活动长春版
- 23《梅兰芳蓄须》说课稿2024-2025学年统编版语文四年级上册
- 14《我要的是葫芦》第一课时 说课稿-2024-2025学年语文二年级上册统编版
- Unit5 The colourful world第三课时(说课稿)-2024-2025学年人教PEP版(2024)英语三年级上册
- 2024-2025学年高中历史 第四单元 工业文明冲击下的改革 第12课 俄国农奴制改革(2)教学说课稿 岳麓版选修1
- 2025合同约定的“滞纳金”是否可以视为违约金
- 2025建安施工合同文本
- 2024年江苏农牧科技职业学院单招职业适应性测试题库参考答案
- 知识图谱与大模型融合实践研究报告
- 卫生专业技术资格考试卫生检验技术(初级(师)211)专业知识试题及答案指导
- 0-9任意四位数手机密码排列组合全部数据列表
- 小数加减乘除计算题大全(300题大全)
- 钢筋工考试卷(满分100分)
- 心内科康复护理个案
- 招聘会会展服务投标方案(技术方案)
- 物业园区污渍清洁工作规程培训
- VW-Formel-Q审核提问表(完整版)
- 物业客服沟通技巧培训课件
评论
0/150
提交评论