单片机原理及应用课程设计 下载本文

单片机原理及应用课程设计 第 8 页

源下,也可以向器件提供电源。 3 VDD 可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。 DS18B20的性能特点如下:1)独特的单线接口仅需要一个端口引脚进行通信;2)多个DS18B20可以并联在惟一的三线上,实现多点组网功能;3)无须外部器件;4)可通过数据线供电,电压范围为3.0~5.5V;5)零待机功耗;6)温度以9或12位数字;7)用户可定义报警设置;8)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;9)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;

64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。

DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如图3所示。头2个字节包含测得的温度信息,第3失的,每次上电复位时被刷新。容用于确定温度值的数字转换分辨率转换为相应精度的温度低5位一直为1,TM是工作式还是在测试模式,DS18B20出动,R1和R0决定温度转换的

保留

..温度 LSB 温度 MSB TH用户字节1 TL用户字节2 配置寄存器 保留 和第4字节TH和TL的拷贝,是易第5个字节,为配置寄存器,它的内分辨率。DS18B20工作时寄存器中的数值。该字节各位的定义如图3所示。模式位,用于设置DS18B20在工作模厂时该位被设置为0,用户要去改精度位数,来设置分辨率。

保留 CRC TMR1R0.11111.

图3 DS18B20字节定义

DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预

单片机原理及应用课程设计 第 9 页

置在-55℃所对应的一个基数值。

减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。

表2 一部分温度对应值表

温度/℃ +125 +85 +25.0625 +10.125 +0.5 0 -0.5 -10.125 -25.0625 -55 二进制表示 0000 0111 1101 0000 0000 0101 0101 0000 0000 0001 1001 0000 0000 0000 1010 0001 0000 0000 0000 0010 0000 0000 0000 1000 1111 1111 1111 0000 1111 1111 0101 1110 1111 1110 0110 1111 1111 1100 1001 0000 十六进制表示 07D0H 0550H 0191H 00A2H 0008H 0000H FFF8H FF5EH FE6FH FC90H 另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。

..VCCDS18B20DS18B20DS18B20单片机VCC4.7KGNDGNDGND..

图4 DS18B20与单片机的接口电路

单片机原理及应用课程设计 第 10 页

第三章 程序设计

3.1 程序设计思路

程序包括主程序若干子程序,系统每一个相应的功能都对应有一个子程序,在编写

程序时每一功能都分开编写,通过主程序的调用使它们串联起来,实现其功能。在编写程序前先画出其流程图,然后根据流程图写出其源程序,在编写程序的过程中要有足够的细心和耐心。

3.2 程序设计工具简介

3.2.1 KEIL C51的功能和操作简介

KEIL C51简介

Keil uVision2是德国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统C语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强, 使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。KEILC51是一款非常优秀的编译器,受到广大单片机设计者的广泛使用。其主要特点如下:

1. 支持汇编语言、C语言等多种单片机设计语言; 2. 可视化的文件管理,界面友好;

3. 支持丰富的产品线,除了51及其兼容内核的单片机外,还增加了对ARM内核

产品的支持;

4. 具有完善的编译连接工具;

5. 具有丰富的仿真调试功能,可以仿真串口、并口、A/D、D/A、定时器/计数器以

及中断等资源,同时也可以和外部仿真器联合进行在线调试; 6. 内嵌RTX-51实时多任务操作系统;

7. 支持在一个工作空间中进行多项目的程序设计;

单片机原理及应用课程设计 第 11 页

8. 支持多级代码优化。

KEIL C51的入门操作

第一步:双击Keil uVision2的桌面快捷方式,启动Keil集成开发开发软件。 第二步:新建文本编辑窗。点击工具栏上的新建文件快捷按键,即可在项目窗口的右侧打开一个新的文本编辑窗。

第三步:输入源程序。在新的文本编辑窗中输入源程序,可以输入C语言程序,也可以输入汇编语言程序。

第四步:保存源程序。保存文件时必须加上文件的扩展名,如果你使用汇编语言编程,那么保存时文件的扩展名为“.asm”,如果是C语言程序,文件的扩展名使用“*.C ”。

第五步:新建立Keil工程。点击 \工程\→ \新建工程\命令,将出现保存对话框。 第六步:选择CPU型号。为工程选择CPU型号,本次设计新建工程选择了ATMEL公司的AT89C52单片机。

第七步:加入源程序到工程中。在选择好CPU型号后,点击\确定\按钮返回主界面,此时可见到工程管理窗中出现“Target 1”,点击“Target 1”前面的“+”号展开下一层的“Source Group 1”文件夹,此时的新工程是空的,“Source Group 1”文件夹中什么文件都没有,必须把刚才输入的源程序加入到工程当中。右击工程管理窗中的“Source Group 1”,出现下拉菜单,点击“增加文件到组'Source Group 1'”命令,将出现添加文件对话框。

第八步:工程目标'Target 1'属性设置。如下图14所示,在工程项目管理窗中的\1\文件夹上右击,出现下拉菜单,点击“目标'Target 1'属性”命令,就进入目标属性设置界面。

第九步:源程序的编译与目标文件的获得

3.2.2 PROTUES的功能和操作简介

Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试