单片机课程设计 数字温度计课程设计

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

单片机原理及系统课程设计

专业:电气工程及其自动化

班级:电气1101

姓名:

学号:

指导教师:

兰州交通大学自动化与电气工程学院

2014 年 1 月 17 日

1设计题目

基于单片机的数字温度计设计。

2设计方案

2.1设计目的

单片机是单片微型计算机的简称,其具有体积小、可靠性高、功能强、灵活方便等优点,故可以广泛应用于各种领域。其中数字温度计就是一个典型的例子。

本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确等特点,其输出温度采用数字显示,主要用于对测温要求较高的场所,该设计主要使用的元件有单片机AT89C52,测温传感器使用DS18B20和LCD1602液晶显示器。

2.2性能指标

(1) 基本范围-50℃-110℃;

(2) 精度为0.5℃;

(3) 液晶LCD显示;

(4) 可以设定温度的上下限以及报警功能。

3数字温度计系统的硬件设计

3.1数字温度计硬件框图

数字温度计系统硬件框图如图1所示。

图1 系统的硬件框图

3.2AT89C52单片机

AT89C52单片机引脚配置图,如图2所示。

图2 AT89C52引脚配置图

3.3外围电路

AT89C52的时序就是CPU在执行指令时所需控制信号的时间顺序。选择了内部时钟方式,即利用芯片内部的振荡器,然后在引脚XTAL1和XTAL两端跨接晶体或陶瓷谐振器,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟电路。外接晶振时,C1和C2值通常选择为30PF左右。C1和C2对频率有微调作用。晶体的频率范围可在1.2~12MHZ之间选择。

AT89C52的复位电路是按键电平复位电路,相当于按复位键后复位端通过电阻与Vcc电源接通。复位是单片机的初始化操作。单片机在启动运行时,都需要先复位,其作用是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。

显示电路采用LCD1602液晶显示器显示。

故障状态指示电路采用发光二级管以及蜂鸣器对运行方式进行指示,可清楚看到系统的故障状态。

测温传感器DS18B20可以直接读出被测温度值,采用三线制和单片机相连,少了外部的硬件电路,具有低成本和易使用的特点。

3.4 总设计图

数字温度计系统的硬件总设计图如图3所示。

图3 总设计图

4 数字温度计系统的软件设计及系统整体流程

整个系统的功能是由硬件电路配合软件来实现的,从软件的功能不同,可以分为两类:主程序和子程序。

主程序是整个软件的核心,专门用来协调各个执行模块和操作者的联系。

子程序是用来完成各种实质性的工作的,如读温度子程序、转换温度子程序、计算温度子程序等。

各执行模块规划好以后,就可以规划监控软件了。首先要根据系统的总体功

能选择一种最合适的主程序结构,然后根据实时性的条件,合理安排监控软件和执行软件之间的调度关系。

4.1总体流程图

数字温度计系统总体流程图如图4所示。

图4主流序流程图

4.2 子程序流程图

数字温度计系统子程序主要包含:读温度子程序、转换温度子程序、计算温

度子程序。

(1)读温度子程序流程图

读温度子程序流程图如图5所示。

图5 读温度子程序流程图

(2)转换温度子程序流程图

转换温度子程序流程图如图6所示。

图6 转换温度子程序流程图(3)计算温度子程序流程图

计算温度子程序流程图如图7所示。

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

5 仿真结果

(1) 正常温度显示

温度计正常温度显示如图8所示。

p 27p 26p 25p 24p 23p 22p 21p 20p 30D 7

14

D 613D 512D 411D 310D 29D 18D 0

7E 6

R W 5R S 4V S S 1V D D 2V E E

3

LCD1

LM016L

D1

LED-GREEN

p 27p 26p 25p 24p 23p 22p 21p 20p 30D 7

14

D 613D 512D 411D 310D 29D 18D 0

7E 6

R W 5R S 4V S S 1V D D 2V E E

3

LCD1

LM016L

D1

LED-GREEN

参考文献

1.王思明. 单片机原理及应用系统设计[M]. 北京:科学出版社, 201

2.

2.李广弟. 单片机基础[M]. 北京:北京航空航天大学出版社, 1994.

3.艾德才. pentium/80486实用汇编语言程序设计[M]. 北京:清华大学出版社, 1997.

附录源程序

//使用1602LCD显示DS18B20转换的温度值

#include

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit RS = P3^0; //数据/命令选择端(H/L)

sbit LCDEN = P3^2; //使能端

sbit deng=P1^6; //超过温度限制指示灯

sbit beep=P1^7; //超过温度限制报警器

uchar high=30; //最高温度

uchar low=10; //最低温度

unsigned char r;

void delayUs() //短延时

{

_nop_();

}

void delayMs(uint a) //长延时

{

uint i, j;

for(i = a; i > 0; i--)

for(j = 100; j > 0; j--);

}

//第一行开始地址为0x80, 第二行开始地址为0xc0;

//写命令:RS=0, RW=0;

void writeComm(uchar comm)

{

RS = 0;

P2 = comm;

LCDEN = 1;

delayUs();

相关文档
最新文档