毕业设计论文_基于单片机的数字温度计设计

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

下载文档原格式

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

1.设计任务与要求

本课题的研究方法是利用单片机和数字温度传感器DS18B20设计一台数字温度计。单片机作为主控制器,数字温度传感器DS18B20作为测温元件,传感器DS18B20可以读取被测量温度值,进行转换,从而用4位共阳极LED数码管来显示转换后的温度值,可以设定温度的上下限报警功能,实现报警提示。

2.系统的总体设计方案

本设计将利用DS18B20智能温度传感器和单片机小系统,设计一个数字温度采集系统。并设计一个人机接口电路:键盘采用独立按键(功能自定义),显示器采用共阴极4位LED显示。系统的总体设计方案框图如图2.1所示

图2.1 系统的总体设计方案框图

3.硬件设计

本设计采用的是AT89C52单片机为核心的数字温度计,包含了利用温度传感器DS18B20的测温电路、外接键盘、显示电路、报警电路、复位电路和晶振电路。以DS18B20为主要测

温元件进行实时监控温度值。以4位数码管为显示器件,利用单片机的P0口和电阻排来驱动4位数码管的显示;利用单片机的P1.7来驱动温度传感器DS18B20测温;报警电路利用三极管放大作用驱动报警器报警;按键是利用单片机的P1口和上拉电阻来驱动工作

3.1复位电路设计

复位电路有上电自动复位和按键手动复位两种方式。上电自动复位是通过外部复位电路的电容充电来实现的,只要电源VCC的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经电阻与VCC电源接通而实现的,而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的。本系统的复位电路采用上电复位方式。复位电路图如图3.1所示:

3.2 晶振电路设计

图3.1 复位电路图

对于每个系统工程的晶振电路,都是用于单片机工作所需要的时钟信号,单片机只有在时钟信号的控制下,其各部件之间才能协调一致工作,时钟信号控制着计算机的工作节奏。彈贸摄尔霁毙攬砖卤庑。

在单片机的TXAL1、TXAL12、之间跨接晶体振荡器和微调电容,可以和单片机内部的振荡器构成一个稳定的自激振荡器,这就是单片机的晶振电路。这种方式称之为内部的时钟源方式。电容C1和C2的主要作用是帮助振荡器起振,且振荡器大小对振荡频率有微调作用,在80C51系列中电容的大小30皮法。另外,振荡器的频率只要由石英晶振的频率来决定本次设计选用12MHz。本系统的晶振电路如图3.2所示:謀荞抟箧飆鐸怼类蒋薔。

DS18B20主要由4部分组成:64位ROM 、温度传感器、非挥发的温度报警触发器TH 和TL 、配置寄存器。DS18B20外形及管脚排列如图3.8和表

3-3所示[5]。DS18B20管脚排列如表3-1所示。

3.4 数的

图3.3 DS18B20的测温电路

3.5 按键模块设计

利用单片机的IO口实现按键的中断输入。另外需要一个与门实现与中断端口的连接。按键电路如图3.4所示,期中按键K1为进入/退出设置键;K2为增加键;K3为减少键。当按下K1 键一次时,进入温度报警上线调节,此时显示软件设置的温度报警上线,按K2或K3分别对报警温度进行加一或减一。当再次按下K1 键时,进入温度报警下线调节,此时显示软件设置的温度报警下线,按K2或K3分别对报警温度进行加一或减一。当第三次按下K1 键时,

3.6 报警电路设计

图3.5 报警电路图

3.7显示电路设计

采用四位共阴极LED数码管来显示温度的大小,可以直接读取。四位数码管的显示电路如图3.6所示,从左到右依次是百位,十位,个位,十分位。

图3.6 显示电路图

4. 系统软件设计

系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序和按键扫描处理子程序等。

4.1 主程序流程图

主程序的主要功能是负责温度的实时显示、读出并处理DS18B20 的测量的当前温度值,温度测量每1s 进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图4.1 所示。

图4.1 主程序流程图

4.2 读出温度子程序

读出温度子程序的主要功能是读出RAM 中的9 字节,在读出时需进行CRC 校验,校验有错时不进行温度数据的改写。其程序流程图如图4.2示:

图4.2 读出温度子程序流程图

4.3 温度转换命令子程序

温度转换命令子程序主要是发温度转换开始命令,当采用12 位分辨率时转换时间约为750ms,在本程序设计中采用1s 显示程序延时法等待转换的完成。温度转换命令子程序流程图如图4.3 所示:

图4.3 温度转换命令子程序流程图

4.4 计算温度子程序

计算温度子程序将RAM 中读取值进行BCD 码的转换运算,并进行温度值正负的判定,其程序流程图如图4.4 所示。

图4.4 计算温度子程序流程图

4.5 显示数据刷新子程序

显示数据刷新子程序主要是对分离后的温度显示数据进行刷新操作,当标志位位为1时将符号显示位移入第一位。程序流程图如图4.5所示。

图4.5 显示数据刷新子程序流程图

4.6 报警子程序

设置报警标志位位beep,当温度大于设置的高限报警值或低于设置的低限报警值是,beep=1报警;当温度值在正常范围内时,beep=0.报警流程图如图4.6所示:

图4.6 报警子程序流程图

4.7 按键扫描处理子程序

按键采用扫描查询方式,设置标志位,当标志位为1 时,显示设置温度,否则显示当前温度。当按下K1 键一次时,进入温度报警上线调节,此时显示软件设置的温度报警上线,按K2或K3分别对报警温度进行加一或减一。当再次按下K1 键时,进入温度报警下线调节,此时显示软件设置的温度报警下线,按K2或K3分别对报警温度进行加一或减一。当第三次按下K1 键时,退出温度报警线设置。显示当前温度。如下图4.7所示。

图4.7 按键扫描处理子程序流程图

5. Protues仿真

5.1 Protues测温仿真