基于单片机的多路数字温度测量系统.docx

上传人:b****2 文档编号:24456795 上传时间:2023-05-27 格式:DOCX 页数:35 大小:223.22KB
下载 相关 举报
基于单片机的多路数字温度测量系统.docx_第1页
第1页 / 共35页
基于单片机的多路数字温度测量系统.docx_第2页
第2页 / 共35页
基于单片机的多路数字温度测量系统.docx_第3页
第3页 / 共35页
基于单片机的多路数字温度测量系统.docx_第4页
第4页 / 共35页
基于单片机的多路数字温度测量系统.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

基于单片机的多路数字温度测量系统.docx

《基于单片机的多路数字温度测量系统.docx》由会员分享,可在线阅读,更多相关《基于单片机的多路数字温度测量系统.docx(35页珍藏版)》请在冰豆网上搜索。

基于单片机的多路数字温度测量系统.docx

基于单片机的多路数字温度测量系统

单片机课程设计报告

 

题目名称:

基于单片机的多路数字温度测量系统设计

系:

电气工程系

专业:

建筑电气与智能化

班级:

电智111班

学号:

学生姓名:

指导教师:

职称:

成绩:

 

目录

摘要I

一系统总体设计1

二系统的硬件设计2

2.1控制器2

2.2传感检测电路设计2

2.3LED显示电路设计7

2.4键盘电路设计10

2.5晶振电路设计10

2.6复位电路设计11

2.7报警电路12

三系统软件设计13

3.1主程序流程图13

3.2子程序流程图14

四结论18

附录20

附录A20

附录B29

 

摘要

随着科技的不断进步,在工业生产中温度是常用的被控参数,而采用单片机来对这些被控参数进行控制已成为当今的主流。

本文介绍了多路数字温度测量系统的设计,该设计采用单片机来实现对温度的测量显示。

利用单片机、温度传感器、A/D转换器组成多路温度测量系统测量环境温度,并将温度传感器显示在数码管上。

它的主要组成部分有:

AT89C51单片机、温度传感器、键盘与显示电路、温度控制电路。

它可以实时的显示和设定温度,实现对温度的自动显示与控制。

设计要求:

1.可以检测八路环境温度信号,可以扩充;对八路模拟信号输入进行循环采集,每路连续采集3次,取平均值;

2.测量范围为-55—+125,精度为+—0.5;

3.用4位LED数码管经行轮流显示;

4..键盘控制,可以随时查看指定通道的温度值;

5.可以设定每一路的上限值和下限值,若采集的平均值超过设定范围,则对应通道的指示灯闪烁10次后一直亮,指示灯闪烁时喇叭发声,以示警告;

6.A/D转换器可以选用ADC0809、TLC1543、AD7705等,温度传感器可以选用LM35、AD590、DS18B20等

采用的技术方案:

模拟温度传感器+A/D转换器+单片机(温度传感器选用LM35),显示部分采用专用LED显示驱动芯片HD7279实现的驱动。

 

关键词:

AT89S51单片机、A/D转换器、专用LED显示驱动芯片,独立键盘、报警装置。

一系统总体设计

图1.1系统总体设计方案

通过集成温度传感器LM35将温度转换成与电量有关的模拟电压量,经放大电路后获得模拟信号。

获得的模拟信号由A/D转换得到相应的数字信号,根据设计要求,要求能同时输入8路模拟信号,故在本设计中采用了8路的模数转换器AD0809;由单片机AT89C51提供控制信号控制AD0809,并对采集到的数据进行处理,通过软件编程实现8路温度自动轮流显示;为得到8路温度的数值进行显示,本设计中采用了四个数码管,通过驱动器HD7972译码,间接驱动4个共阳极数码管,并通过动态显示来显示4个数码管。

并添加键盘电路,通过键盘来选择显示选择通道。

并设置8路报警电路,当通道温度不符合要求时,通过3-8译码器使相应的通道电路报警。

系统总体框图设计如上图所示。

 

二系统的硬件设计

2.1控制器

图2.1单片机引脚及引脚功能

使用该单片机时,Vcc接电源电压;Vss接地端;P0.0-P0.7、P1.0-P1.7、P2.0-P2.7为八位的双向I/O通道;RET/VPD该引脚上2个机器周期的高电平可以实现复位操作,在掉电情况下将只给片内RAM供电;ALE/PROG该引脚主要作用是提供一个适当的定时信号;PSEN低电平时,指令寄存器的内容读到数据总线上;EA/Vpp为片选使能引脚;XTAL1、XTAL2为内部振荡器外接晶振的输入端[3]。

2.2传感检测电路设计

LM35

2.2.1传感器

图2.2集成温度传感器LM35

LM35是电压输出型集成温度传感器。

LM35可以直接校正摄氏温度;线性温度系数+10.0V/℃;温度范围为-55℃到+150℃;最适宜遥控;低成本化;工作电压范围为4V-30V;非线性度低于+-0.25℃;输出阻抗低于0.1欧姆。

2.2.2整形电路

图2.3整形电路

工作原理:

由稳压管获得LM358的+处电压,作为基准值进行作为差分放大比较值,作为三极管道通调件进行整形。

 

2.2.3放大电路

图2.4放大电路

工作原理:

由放大器的虚短和虚断原则将经测温电路获得的电压放大一定倍数。

2.2.4A\D转换电路

图2.5数模转换电路

(1)主要元件介绍

●AD0809

图2.6AD0809数模转换器

1:

AD0809转换原理

AD0809采用逐次比较的方法完成A/D转换,由单一的+5V电源供电。

片内具有锁存功能的8路选一的模拟开关,由C,B,A的编码来决定所选通道。

AD0809完成一次转换约100us左右,它具有三态锁存缓冲器,可直接连到AT89C51单片机的数据总线上。

通过适当的外接电路可对0-5V的模拟信号进行转换。

2:

引脚功能

表2.1AD0809引脚功能表

26,27,28,1,2,3,4,5

IN0-IN7

8路模拟信号输入端

17,14,15,8,18,19,20,21

D0-D7

转换完毕的8位数字量输出端

25,24,23,22

A,B,C,ALE

控制8路模拟输入通道切换

9,6,10

OE,START,CLK

OE为输出允许端,START为启动信号输入端,CLK为时钟信号输入端

12,16

VREF(+),VREF(-)

基准电压输入端

●74LS138

图2.774LS138译码器

1:

器件功能:

74HC138就是用CMOS门电路组成的3线-8线译码器,74HC138有3个附加的控制端是S1,S2’,S3’。

当S1=1,S2’+S2’=0时,个、Gs输出高电平,译码器处于工作状态,否则被禁止,所有输出端被封锁在高电平。

2:

引脚功能:

表2.274LS138译码器

7,9,11,12,13,14,15

Y0-Y7

数据输出,低电平有效

1,2,3,

A,B,C

地址线,选择数据输出口

6

G1

控制线,高电平有效

4,5

G2A’,G2B’

控制线,低电平有效

●74LS373

图2.874LS373锁存器

1:

功能介绍

74LS373是一种带三态门的8D锁存器,当加到数据输入锁存器的信号为高电平时,外部数据选通到内部锁存器,负跳变时,数据锁存到锁存器中。

2:

引脚功能

表2.374LS373锁存器引脚及功能

3,4,7,8,13,14,17,18

D0-D7

8位数据输入线

2,5,6,9,12,15,16,19

Q0-Q7

8位数据输出线

11

G

数据输入锁存选通信号

1

OE’

数据输出允许信号

(2)工作原理

温度传感测量电路获得的与温度有关的模拟电压信号经AD0809转换器转换成数字信号,经单片机AT89C51控制在数码管显示温度。

通过AD0809的A,B,C,ALE,可以选择通道。

2.2.5测温电路

 

图2.9测温电路

工作原理:

LM35可以将温度转换成与电压有关的模拟量,经放大电路放大后送到模数转换电路[1]。

2.3LED显示电路设计

器件选择

图2.10LED数码管

LED显示电路

图2.11LED数码管显示电路

主要元件介绍:

图2.12HD7279数码管驱动器

1:

功能介绍

HD7279A能同时驱动8个共阴极LED数码管,HD7279控制LED数码管采用的是动态扫描的循环显示方式。

2:

引脚功能

表2.4HD7279驱动器

1,2

Vdd

正电源

3,5

NC

必须悬空

6

CS’

片选信号,低电平有效

7

CLK

同步时钟输入端

8

DATA

串行数据读出写入端

9

KEY

按键信号输出端

10-16

SG-SA

LED的g-a端驱动输出

17

DP

小数点驱动输出

18-25

DIG0-DIG7

LED为驱动输出

26

CLK0

振荡输出端

27

RC

RC振荡器连接端

28

RESET

复位端,低电平有效

4

Vss

3:

工作原理

HD7972内部含有译码器,可直接接受BCD码或十六进制码,同时有两种译码方式,实现LED数码管位寻址和段寻址,可以方便的控制每位LED数码管是否发光。

2.4键盘电路设计

器件选择

●AT89C51:

单片机,控制和微机键盘的数据传送。

采用独立式键盘设计键盘电路

 

图2.13键盘控制电路

工作原理

独立式键盘的特点是一键一线,各键相互独立,每个按键各接一条I/O口线,通过检测I/O输入线的电平状态,可以判断哪个按键被按下。

当上拉电阻保证按键释放时,输入检测线上有稳定的高电平,当某一按键按下时,对应的检测线就变成了低电平,与其他按键相连的检测线仍为高电平,只需读入I/O输入线的状态,判断哪条输入线为低电平,判断哪个键被按下。

该电路通过按键开关K0、K1、K2来实现单片机时钟设计要求。

2.5晶振电路设计

器件选择

●OSC:

晶振,12MHZ的立式晶振。

●C1、C2:

晶振电路的起振电容,容值为30pF。

●XTAL1、XTAL2:

单片机的晶振引脚,和晶振电路的两个对应引脚相连。

晶振电路

图2.14晶振电路

工作原理

在AT89C51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。

而在芯片内部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。

时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。

12MHZ晶振的时钟周期是1/12us,它的一个机器周期是1us.有了晶振就有了时钟周期,就可以执行程序代码,保证了单片机吧正常工作

2.6复位电路设计

器件选择

●C3、C4:

满足复位电路设计需求,容值为22uF。

●R1、R2:

阻值为1k。

●RESET:

单片机AT89C51的复位输入信号引脚。

复位电路

2.15复位电路

工作原理

通电时,电容两端相当于是短路,于是引脚上为高电平,然后电源通过电阻对电容充电,端电压慢慢下降,降到一定程度,即为低电平,单片机正常工作。

2.7报警电路

当某一通道的温度不符合设定的温度时,AT89C51控制74LS138译码器进行译码,使相应通道的报警路数进行报警。

图2.16报警电路

三系统软件设计

3.1主程序流程图

图3.1主程序流程图

工作流程:

调用初始化程序,对单片机进行初始化设置;调用A\D转换子程序,对由传感测量电路采集的模拟信号进行模数转换变成数字信号。

调用显示子程序,经AT89C51控制数字信号在LED数码管上显示。

调用调温子程序,对温度额定进行设定。

调用报警子程序,对工作通道进行检测,当工作通道温度不符合要求时,进行报警。

若无故障,返回主程序,循环工作。

3.2子程序流程图

3.2.1数模转换子程序

图3.2数模转换子程序

工作流程:

设定数字信号在AT89C51中的存取空间,启动AD0809模数转换器,进行数模转换,延迟一段时间,使模数转换完成。

采样3次后求数字信号平均值,存入设定的存储单元。

8个通道采集完成后,重复上述过程。

3.2.2显示子程序

图3.3显示子程序

工作流程:

当显示某一指定通道温度时,首先把通道标识符写入HD7972,选择译码方式,进行显示。

再把温度值写入HD7972,通过处理后,选择译码方式,进行显示。

 

3.2.3键盘控制子程序

图3.4键盘控制程序流程图

 

工作流程:

按下某一按键后,会使键盘与单片机AT89C51相连的I\O端口的电平发生改变,从而跳到相应的通道显示子程序,从而达到通过键盘来控制通道显示的目的.

 

3.2.4:

报警子程序

图3.5报警子程序流程图

工作流程:

把某一通道的温度与设定的最高温度进行比较,若高于设定温度,AT89C51控制74LS138启动该通道的报警电路。

再和设定的最低温度进行比较,若低于设定温度,AT89C51控制74LS138启动该通道的报警电路。

四结论

以AT89C51为核心制作的多路数字温度测量系统可以检测8路环境温度信号,并对其进行循环采集。

测量范围为-55℃到+125℃,精度为+-0.5℃.可以随时查看指定通道的温度值。

并且可以设定每一路的上限制和下限值。

当该通道温度超过设定温度时,则制定通道进行报警。

随着集成电路和计算机技术的迅速发展,使电子仪器的整体水平发生巨大变化,传统的仪器逐步的被智能仪器所取代。

智能仪器的核心部件是单片机,因其极高的性价比得到广泛的应用与发展,从而加快了智能仪器的发展。

而传感器作为测控系统中对象信息的入口,越来越受到人们的关注。

传感器好比人体“五官”的工程模拟物,它是一种能将特定的被测量信息(物理量、化学量、生物量等)按一定规律转换成某种可用信号输出的器件或装置本次课设中的半桥电子秤就是在以上仪器的基础上设计而成的。

因此,只有充分了解有关智能仪器、单片机、传感器以及各部分之间的关系才能达到要求。

其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:

汇编语言、模拟和数字电路知识等。

虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。

通过这次课设我认识到,学好单片机这门课程不仅需要扎实的理论基础,同时还要有很强的动手实践能力。

课程设计正是为锻炼动手能力提供机会和平台。

 

参考文献

[1]周慈航著·单片机程序设计基础[M]·北京:

北京航空航天大学出版社,2003

[2]方佩敏编著·智能化集成温度传感器原理与应用[M]·北京:

电子工业出版社,2002

[3]张毅刚主编·单片机原理及应用[M]·北京:

高等教育出版社,2008

[4]李道玲,李玲,朱艳编著·传感器电路分析与设计[M]·武汉:

武汉大学出版社,2003

[5]刘笃人,韩保军编著·传感器及应用技术[M]·西安:

西安电子科技大学出版社,2003

[6]陈小忠等编著·单片机接口技术实用子程序[M]·北京:

人民邮电出版社,2005

[7]李群芳编著·单片机原理、接口及应用—嵌入式系统计数基础[M]·北京:

清华大学出版社

[8]高峰主编·单片微型计算机与接口技术[M].北京:

科学出版社,2003.

[9]何希才主编·传感器技术及其应用[M].北京:

北京航空航天大学出版社,2005

[10]韩志军主编·单片机系统设计与应用实例[M].北京:

机械工业出版社,2010

 

附录

附录A

系统程序

****************************************************************

系统初始化

****************************************************************

ORG0000H

AJMPSTART

ORG0003H

AJMPSAMPLE

ORG0013H

AJMPEOC

START:

MOVTMOD,#01H

MOVTH0,#3CH

MOVTL0,#0B0H

MOV70H,#00H;8路数字信号存储首址

MOV38H,#90H;设定最高温度初值

MOV39H,#20H;设定最低温度初值

SETBIT0

SETRIT1

SETBEX0

SETBET0

SETBEA

SETBTR0

HERE:

AJMPHERE

****************************************************************

定时器0中断服务程序

****************************************************************

T0IT:

PUSHPSW

MOVPSW,#10H

MOVTH0,#TIMEH

MOVTL0,#TIMEL

INCR7

CJNER7,#32H,T0ITI

MOVR7,#00H

SETBTIMEISOK

TOIT1:

POPPSW

RETI

;****************************************************************

;主程序

;****************************************************************

START:

LCALLCLEARMEMIO;进行初始化操作

MAIN:

LCALLTEST;调用模数转换子程序

LCALLDISP;跳转到显示子程序

JZP2.0,XIAN1;通过键盘跳转到相应的通道温度子程序

JZP2.1,XIAN2

JZP2.2,XIAN3

JZP2.3,XIAN4

JZP2.4,XIAN5

JZP2.5,XIAN6

JZP2.6,XIAN7

JZP2.7,XIAN8

XIAN1:

MOVR0,70H

LCALLDISP4

XIAN2:

MOVR0,71H

LCALLDISP4

XIAN3:

MOVR0,72H

LCALLDISP4

XIAN4:

MOVR0,73H

LCALLDISP4

XIAN5:

MOVR0,74H

LCALLDISP4

XIAN6:

MOVR0,75H

LCALLDISP4

XIAN7:

MOVR0,76H

LCALLDISP4

XIAN8:

MOVR0,77H

LCALLDISP4

JZP1.3,TEMH

JZP3.0,TEML

TEMH:

MOVA,38H

ADDA

MOV38H,A

TEML

MOVA,39H

ADDA

MOV39H,A

LCALLALARM

AJMPMAIN

 

****************************************************************

子程序区

****************************************************************

数据采样子程序

;****************************************************************

SAMPLE:

SETB00H

MOVDPTR,#0F00H

MOVR6,#08H

MOVR7,#05H

MOVR0,#40H

TRANS:

MOVX@DPTR,A

WAIT:

JB00H,WAIT

SETB00H

INCDPTR

INCR0

INCR0

INCR0

INCR0

INCR0

DINZR6,#TRAN_S

MOVDPTR,#0F00H

INCR0

DJNZR7,TRAN_S

……

……

RETI

****************************************************************

数模转换子程序

****************************************************************

TEST:

MOVR1,#28H;置8路转换温度数据区存取首地址

MOVDPTR,#7FF8H;端口地址送DPTR,P2.7=0,且指向通道IN0

MOVR7,#08H;置通道个数

MOVR3,#03H;置采样次数

LOOP:

MOVX@DPTR,A;启动A/D转换

MOVR6,#0AH;软件延时,等待转换结束

DELAY:

NOP

NOP

NOP

DJNZR6,DELAY

MOVXA,@DPTR;读取转换结果

ADDCA,@R1;对采样结果求和

MOV@R1,A;存储转换结果

DJNZR3,LOOP;是否采样3次

MOVB,#03H

MOVA,@R1

DIVA,B;求平均值

MOVX@R1,A;存储结果

INCDPTR;指向下一通道

INCR1;修改数据区域指针

DJNZR7,LOOP1;8个通道是否全采样结束否?

未结束则继续

RET;转换过程结束

LCALLDELAY1;延时8S

LCALLTEST;继续采样

;****************************************************************

;A/D转换完成中断程序程序清单:

EOC中断处理程序

;****************************************************************

EOC:

MOVXA,@DPTR

MOV@R0,A

CLR00H

RETI

;****************************************************************

;****************************************************************

;键盘控制子程序

;****************************************************************

DISP4:

MOV29H,#15H;

LCALLSEND

LCALLREST

SETBP1.0

MOVA,#60H

MOVR1,A

MOVB,#84H

LCALLSEND

LCALLDELY3

MOV29H,R1

LCALLSEND

SETBP1.0

MOVB,#0AH

MOVA,R0

DIVA.,B

MOVR1,A

MOV29H,#83H

LCALLSEND

LCALLDELY3

MOV29H,R1

LCALLSEND

SETBP1.0

MOVA,B

MOVB,#0AH

DIVA,B

MOVR1,A

MOV29H,#81H

LCALLSEND

LCALLDELY3

MOV29H,R1

LCALLSEND

SETBP1.0

MOV29H,#80H

LCALLSEND

LCALLDELY3

MOV29H,B

LCALLSEND

SETBP1.0

RET

LCALLDELY

;***************************************************************

;显

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1