(完整版)基于51单片机的数字温度计

  • 格式:doc
  • 大小:419.51 KB
  • 文档页数:22

下载文档原格式

  / 22
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

硬件课程设计实验报告课题:数字温度计

班级:

作者:

学号:

指导老师:

课设评价:

课设成绩:

目录

一.需求分析 (1)

二.概要设计 (1)

三.硬件电路设计 (3)

四.系统软件设计 (5)

五.软件仿真 (8)

六.实际连接与调试 (9)

七.本次课设的收获与感受 (11)

附录(程序源代码) (12)

一.需求分析

功能要求:

测量环境温度,采用接触式温度传感器测量,用数码管显示温度值。

设计要求:

(一)功能要求

(1) 由4位数码管显示当前温度。

(2) 具备报警,报警门限通过键盘设置。

(3) 精度为0.5℃。

(二)画出参考的电路原理图

(三)画出主程序及子程序流程图、画出MCS51内部RAM分配图,并进行适当地解释。

(四)写出实现的程序及实现过程。并进行适当地解释说明。

二.概要设计

(一)方案选择

由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。

(二)系统框图

该系统可分为以下七个模块:

(1)控制器:采用单片机STC89C52对采集的温度数据进行处理;

(2)温度采集:采用DS18B20直接向控制器传输12位二进制数据;

(3)温度显示:采用了4个LED共阴极七段数码管显示实际温度值;

(4)门限设置:主要实现模式切换及上下门限温度的调节;

(5)报警装置:采用发光二极管进行报警,低于低门限或高于高门限均使其发光;

(6)复位电路:对整个系统进行复位;

(7)时钟振荡模块:为整个系统提供统一的时钟周期。

(三)重要器件及其相关参数

(1)单片机STC89C52

P0.0~P0.7:通用I/O引脚或数据低8位地址总线复用地

址;

P1.0~P1.7:通用I/O引脚;

P2.0~P2.7:通用I/O引脚或高8位地址总线复用地址;

P3.0~P3.7:通用I/O引脚或第二功能引脚(RxD、TxD、

INT0、INT1、T0、T1、WR、RD);

XTAL1、XTAL2:外接晶振输入端;

RST/Vpd:复位信号输入引脚/备用电源输入引脚;

Vcc:接+5V电源;

Vss:地端。

(2)DS18B20

(a)通过单线总线端口访问 DS1820 的协议如下:

•初始化

• ROM 操作命令

•存储器操作命令

•执行/数据

DS1820 需要严格的协议以确保数据的完整性。协议包括几种单线信号类型:复位脉冲、存在脉冲、写0、写1、读0 和读1。所有这些信号,除存在脉冲外,都是由总线控制器发出的。和 DS1820 间的任何通讯都需要以初始化序列开始,初始化序列见图11。一个复位脉冲跟着

一个存在脉冲表明DS1820 已经准备好发送和接收数据(适当的ROM 命令和存储器操作命令)

(b)当总线上只有一个器件时,DS18B20读温度的流程为:

复位发0CCH SKIP ROM命令发44H开始转换命令延时复位发0CCHSKIP ROM命令发0BEH读存储器命令连续读出两个字节数据(即温度)结束。

➢Convert T [44h]

这条命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后DS1820 保持等待状态。如果总线控制器在这条命令之后跟着发出读时间隙,而DS1820 又忙于做时间转换的话,DS1820 将在总线上输出“0”,若温度转换完成,则输出“1”。如果使用寄生电源,总线控制器必须在发出这条命令后立即起动强上拉,并保持500ms。

➢Read Scratchpad [BEh]

这个命令读取暂存器的内容。读取将从字节0 开始,一直进行下去,直到第9(字节8,CRC)字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。(c)DS18b20 用12 位存贮温值度最高位为符号位,下图为18b20 的温度存储方式,负温度S=1 正温度S=0

LSB:

D7 D6 D5 D4 D3 D2 D1 D0

D7 D6 D5 D4 D3 D2 D1 D0

三.硬件电路设计

本次实验采用了老师提供的单片机系统,所以整体的硬件电路设计需要在已知的硬件条件下进行设计。

(一)下图为已有的单片机系统部分电路图

分析:(1)由上图可知,时钟振荡电路,复位电路均以在原系统中正确连接。

(2)数字温度计所需的显示电路电路中,原系统将段码输出连在P2接口中,但由图

可知,该图中的六个数码管中的小数点均无法点亮,原因在于图中并未对其进行连接,也无引脚供外界连接。而六个数码管的位选端口连在P1接口上。本次课程设计中,我们选择使用P1.0~P1.3上所连接的四个数码管。

(3)通过软件测试验证,原系统中的数码管为共阴极,且原系统中位选信号是通过

一个反向器之后才输入数码管。

(4)原系统中P0端口未使用,所以可以用排线引出,连接我们所需要补充的电路,

包括DS18B20总线输入电路、门限设置电路以及报警电路。

(二) 温度采集电路、门限设置电路及报警电路(其余电路省略)