基于单片机的四位数字温度计设计.docx

上传人:b****8 文档编号:10281606 上传时间:2023-02-09 格式:DOCX 页数:24 大小:312.96KB
下载 相关 举报
基于单片机的四位数字温度计设计.docx_第1页
第1页 / 共24页
基于单片机的四位数字温度计设计.docx_第2页
第2页 / 共24页
基于单片机的四位数字温度计设计.docx_第3页
第3页 / 共24页
基于单片机的四位数字温度计设计.docx_第4页
第4页 / 共24页
基于单片机的四位数字温度计设计.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

基于单片机的四位数字温度计设计.docx

《基于单片机的四位数字温度计设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的四位数字温度计设计.docx(24页珍藏版)》请在冰豆网上搜索。

基于单片机的四位数字温度计设计.docx

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

微机原理课程设计

姓名:

学号:

院别:

机械与电子工程学院

班级:

电气0801

专业:

电气工程及其自动化

设计课题:

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

指导教师:

时间:

2011.6.13——2011.6.24

 

目录

摘要.........................................................1

一、课程设计的目的...........................................1

二、系统设计总体方案.........................................1

1.设计思路...............................................1

2.AT89C51单片计算机的组成原理...........................2

2.1组成框图及内部总体结构..............................2

2.2单片机各口及其负载能力、接口要求....................3

三、硬件电路设计………………………………………………………..5

3.1温度检测和变送器.....................................5

3.2ADC0808..............................................7

四、电路部分……………………………………………………………….8

4.1显示器接口电路.......................................8

4.2温度采集系统.........................................8

4.3电路总图.............................................9

五、软件设计和功能说明…………………………………………………10

5.1系统主程序...........................................10

5.2LED数码显示子程序....................................11

六、PROTEUS仿真.............................................12

6.1工作界面.............................................12

6.2仿真结果图..........................................13

七、总结……………………………………………………………………14

八、参考文献………………………………………………………………15

附录…………………………………………………………………………15

 

摘要

现代测温应用中,温度计向数字化方向发展。

传统的机遇物理方法的温度计功能单一,而数字温度计以其便携,检测精度高,功能多等优点应用的越来越广泛。

随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。

本课程设计研究四位数字温度计的设计与实现,并采用Protues软件和Keil软件来对其进行仿真,通过电阻值的变化使相应电压发生改变,输出电压经A/D转换后,其值由AT89C51处理,最后将其显示在4个七段数码显示器上。

随着技术的发展,一些环境比较恶劣的场合中也能觅得数字温度计的踪迹。

在本文中,主要从功能组合,硬件组合,软件算法等几个方面探讨温度计的设计。

数字温度计在现代测温应用方面具有诸多优势,值得进一步学习和研究。

关键词:

单片机AT89C51、ADC0808芯片、模数转换、数码显示

一、课程设计的目的

1、通过单片机应用产品的设计与调试过程,巩固本课程所学理论知识,初步了解单片机应用系统设计的方法。

2、通过查阅手册和相关文献资料,培养学生独立分析和解决问题的能力。

3、进一步熟悉单片机和常用接口电路,加深对专业知识和理论知识学习的认识和了解。

4、进一步熟悉电子仪器的正确使用。

5、加深对数模转换原理和应用,并了解ADC0808完成模数转换的原理,掌握ADC0808与AT89C51接口硬件电路的设计方法及编程方法。

二、系统设计总体方案

1.设计思路

根据任务书要求,初步思路如下:

温度计电路设计总体设计方框图如下图所示,本设计是测温电路,使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。

温度是非电量模拟信号,数字显示温度就必须将这一非电量信号转换成电量(电压或电流),然后将模拟电信号经A/D转换器转换成数字信号,最后经译码显示器显示温度值。

控制器采用单片机AT89C51,采集到的温度模拟信号0~5V用一个滑动变阻器分压实现,模拟信号数字化是通过ADC0808实现的,其主要功能和要求的实现是通过可编程芯片AT89C51单片机达到的,用4位LED数码管显示温度。

 

2.AT89C51单片计算机的组成原理

2.1组成框图及内部总体结构

外时钟源外部事件计数

 

 

中断控制并行口串行通信

图2-1AT89C51单片机功能结构框图

 

图2-1为AT89C51单片机功能结构框图

AT89C51芯片内部集成了CPU、RAM、ROM、定时/计数器和I/O口等各功能部件,并由内部总线把这些不见连接在一起。

AT89C51单片机内部包含以下一些功能部件:

(1)一个8位CPU;

(2)一个片内振荡器和时钟电路;

(3)4KBROM(80C51有4KB掩膜ROM,87C51有4KBEPROM,80C31片内有无ROM);

(4)128B内RAM;

(5)可寻址64KB的外ROM和外RAM控制电路;

(6)两个16位定时/计数器;

(7)21个特许功能寄存器;

(8)4个8位并行I/O口,共32条可编程I/O端线;

(9)一个可编程全双工串行口;

(10)5个中断源,可设置成2个优先级。

2.2单片机各口及其负载能力、接口要求

80C51共有4个8位并行I/O端口,共32个引脚

(1)P0口——8位双向I/O口。

在不并行扩展外存储器(包括并行扩展I/O口)时,P0口可用作双向I/O口。

在并行扩展外存储器(包括并行扩展I/O口)时,P0口可用于分时传送低8位地址(地址总线)和8位数据信号(数据总线)。

位结构如图2-4所示。

P0口能驱动8个LSTTL门。

图2-2P0口位结构

(2)P1口——8位准双向I/O口(“准双向”是指该口内部有固定的上拉电阻)。

位结构如图2-5所示。

P1口能驱动为4个LSTTL门。

图2-3P1口位结构

(3)P2口——8位准双向I/O口。

在不并行扩展外存储器(包括并行扩展I/O口)时,P2口可用作双向I/O口。

在并行扩展外存储器(包括并行扩展I/O口)时,P2口可用于传送高8位地址(属地址总线)。

P2口能驱动4个LSTTL门。

P2口的位结构如图2-6所示,引脚上拉电阻同P1口。

在结构上,P2口比P1口多一个输出控制部分。

图2-4P2口位结构

(4)P3口——8位准双向I/O口。

可作一般I/O口用,同时P3口每一引脚还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。

P3口驱动能力为4个LSTTL门。

图2-5P3口位结构

上述4个I/O口,各有各的用途。

在不并行扩展外存储器(包括并行扩展I/O口)时,4个I/O口都可作为双向I/O口用。

在并行扩展外存储器(包括并行扩展I/O口)时,P0口专用于分时传送低8位地址信号和8位数据信号,P2口专用于传送高8位地址信号。

P3口根据需要常用于第二功能,真正可提供给用户使用的I/O口是P1口和一部分未用作第二功能的P3口端线。

三、硬件电路设计

3.1温度检测和变送器

(1)热敏电阻温度转换原理

热敏电阻是近年来发展起来的一种新型半导体感温元件,由于它具有灵敏度高、体积小、重量轻、热惯性小、寿命长以及价格便宜等优点,因此应用非常广泛。

热敏电阻与普通热电阻不同,它具有负的电阻温度特性,当温度升高时,电阻值下降,其特性曲线如图3-1所示。

图3-1热敏电阻特性曲线

热敏电阻的阻值-温度特性曲线是一条指数曲线,非线性度较大,因此,在使用时要进行线性化处理。

线性化处理虽然能改善热敏电阻的特性曲线,但比较复杂。

为此,在要求不高的一般应用中,常常作出在一定的温度范围内温度与阻值成线性关系的假定,以简化计算。

使用热敏电阻是为了感知温度,给热敏电阻通以恒定电流,电阻两端就可测到一个电压,然后通过下面公式求得温度:

—被测温度;

—与热敏特性有关的温度参数;

—热敏电阻有关的系数;

—热敏电阻两端的电压。

根据这一公式,如能测得热敏电阻两端的电压,再知道参数

和参数

,则可计算出热敏电阻的环境温度,也就是被测得温度。

这样,就把电阻随温度的变化关系转化为电压随温度的变化关系了。

数字式电阻温度计设计工作的主要内容,就是把热敏电阻两端电压值经A/D转换变成数字量,然后通过软件方法计算出温度值,再进行显示等处理。

所以采取ADC0809芯片来读取电压值。

3.2ADC0808

ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。

其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

ADC0808是ADC0809的简化版本,功能基本相同。

一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。

内部结构

  ADC0808是CMOS单片型逐次逼近式A/D转换器,它有8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器。

引脚功能(外部特性)

ADC0808芯片有28条引脚,采用双列直插式封装,

如右图所示。

各引脚功能如下:

  1~5和26~28(IN0~IN7):

8路模拟量输入端。

  6(START):

A/D转换启动脉冲输入端,

输入一个正脉冲(至少100ns宽)使其启动(脉冲上升

沿使0809复位,下降沿启动A/D转换)。

7(EOC):

A/D转换结束信号,输出,当A/D

转换结束时,此端输出一个高电平(转换期间一直为低电平)。

8、14、15和17~21:

8位数字量输出端。

  9(OE):

数据输出允许信号,输入,高电平有效。

当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

  10(CLK):

时钟脉冲输入端。

要求时钟频率不高于640KHZ。

  11(Vcc):

主电源输入端。

12(VREF(+))和16(VREF(-)):

参考电压输入端

  13(GND):

地。

22(ALE):

地址锁存允许信号,输入,高电平有效。

23~25(ADDA、ADDB、ADDC):

3位地址输入线,用于选通8路模拟输入中的一路

四、电路部分

4.1显示器接口电路

 

4.2温度采集系统

4.3电路总图

五、软件设计和功能说明

5.1系统主程序

在主程序中,系统上电自动复位以后首先设置堆栈,然后启动ADC0808,开始转换测温电路输入的电信号,待数据转换结束后读入到累加器A,然后进行十进制数据转换调整,输出给显示电路。

主程序流程图如图3.1所示。

 

主程序流程图

 

 

人为读取程序流程图

 

5.2LED数码显示子程序

十进制转换调整后的数据送到寄存器R5、R4中,然后通过P1口把数据输出给D4、D3、D2、D1四个数码显示器中,从而最终把测得的温度显示出来。

显示子程序流程图如图3.3所示。

 

显示子程序流程图

六、PROTEUS仿真

6.1工作界面

ProteusISIS的工作界面是一种标准的Windows界面,如图4.2所示。

包括:

标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。

 

图4.2ProteusISIS的工作界面

6.2仿真结果图

七、总结

忙碌的的日子总是觉得短暂,充实紧张的两周单片机课程设计转眼就要结束了,我喜欢这种节奏的学习生活。

在这短暂而又充实的两周课程设计的时间里,让我获益良多,受益匪浅,翁老师耐心细致的指导讲解答疑,个人积极紧张的筹备思考操作,使这两周的日子变得忙碌而又充实美好。

课程设计的第一天,面对着翁老师布置下来的设计课题,有些茫然而不知所措,不知该如何着手开始。

心想,怎么这个单片机的课程设计会如此的难,如此的不好下手,更不知道该怎么办才好。

但发现其他同学和我的感觉竟然一样,同样的茫然同样的无助,顿时心里释怀不少。

于是对自己说,别人也不会,不急,慢慢来,总会找到解决的办法的。

离开教室回到宿舍,直接去图书馆借来了相关的资料拿回来阅读参考。

接下来的几天,渐渐的开始有了一些头绪,明白了该从何处着手,心中有了课程设计的初步框图。

接下来的时间里,查阅了不少的相关资料,随着理解的加深,设计程序及流程渐渐的变得细致,确定了设计要求及操作实施步骤,随着设计中问题的逐个解决,操作开始变得简单有趣,我开始乐于做好课程设计中的各部分环节要求,乐于和同组的同学相互探讨争论,解决我们这个温度检测设计,单片机课程设计中的难点,并取得共同的进步。

按照这种方式与解决办法,解决了不少设计中的问题。

通过这两周的微机原理课程设计,使我对单片机知识内容有了进一步的扩展和深入的理解,书本上的知识,只有通过自己动手去操作去运用才会变得实际有用,这才是真正的学习,感谢翁老师给了我们这么一个学习的好机会。

我更懂得了个人努力的重要性,这让我感觉充实自信,这种满足感与成就感真是无与伦比。

明白了什么叫做团队,群体的力量,一起探讨,一起争论,一起协作着解决问题。

 

 

八、参考文献

[1]张迎新.《单片微型计算机原理、应用及接口技术》.国防工业出版社

[2]张毅刚.《单片机原理与应用设计》.电子工业出版社

[3]周航慈.《单片机程序设计基础》.北京航空航天大学出社.

[4] 陈明荧.《8051单片机课程设计实训教材》.清华大学出版社 

[5] 胡汉才.《单片机原理及其接口技术》 .清华大学出版社 

[6]何立民.《单片机高级教程》.北京航空航天大学出版社

[7]肖来胜.《单片机技术实用教程》.华中科技大学出版社

 

附录

程序清单

LED_0EQU30H

LED_1EQU31H

LED_2EQU32H

ADCEQU35H

TCNTAEQU36H

TCNTBEQU37H

H_TEMPEQU38H;温度上限

L_TEMPEQU39H;温度下限

FLAGBIT00H

H_ALMBITP3.0

L_ALMBITP3.1

SOUNDBITP3.7

CLOCKBITP2.4

STBITP2.5

EOCBITP2.6

OEBITP2.7

ORG00H

SJMPSTART

ORG0BH

LJMPINT_T0

ORG1BH

LJMPINT_T1

START:

MOVLED_0,#00H

MOVLED_1,#00H

MOVLED_2,#00H

MOVDPTR,#TABLE

MOVH_TEMP,#200

MOVL_TEMP,#00

MOVTMOD,#12H

MOVTH0,#245

MOVTL0,#0

MOVTH1,#252

MOVTL1,#0

MOVIE,#8aH

CLRC

SETBTR0;为ADC0808提供时钟

WAIT:

SETBH_ALM

SETBL_ALM

CLRST

SETBST

CLRST;启动转换

JNBEOC,$

SETBOE

MOVADC,P1;读取AD转换结果

CLROE

MOVA,ADC

SUBBA,#00;判断是否低于下限

JCLALM

MOVA,H_TEMP

MOVR0,ADC

SUBBA,R0;判断是否高于上限

JCHALM

CLRTR1

LJMPPROC

LALM:

;低温报警

CLRL_ALM

SETBTR1

CLRFLAG

LJMPPROC

HALM:

;高温报警

CLRH_ALM

SETBTR1

SETBFLAG

LJMPPROC

PROC:

MOVA,ADC;数值转换

MOVB,#100

DIVAB

MOVLED_2,A

MOVA,B

MOVB,#10

DIVAB

MOVLED_1,A

MOVLED_0,B

LCALLDISP

SJMPWAIT

INT_T0:

CPLCLOCK;提供ADC0808时钟

RETI

INT_T1:

MOVTH1,#252

MOVTL1,#0

CPLSOUND

INCTCNTA

MOVA,TCNTA

JBFLAG,I1;判断是高温警报还是低温警报

CJNEA,#30,RETUNE;低温警报声

SJMPI2

I1:

CJNEA,#20,RETUNE;高温警报声

I2:

MOVTCNTA,#0

INCTCNTB

MOVA,TCNTB

CJNEA,#25,RETUNE

MOVTCNTA,#0

MOVTCNTB,#0

LCALLDELAY2

RETUNE:

RETI

DISP:

MOVA,LED_0;数码显示子程序

MOVCA,@A+DPTR

CLRP2.3

MOVP0,A

LCALLDELAY

SETBP2.3

MOVA,LED_1

MOVCA,@A+DPTR

CLRP2.2

MOVP0,A

LCALLDELAY

SETBP2.2

MOVA,LED_2

MOVCA,@A+DPTR

CLRP2.1

MOVP0,A

LCALLDELAY

SETBP2.1

CLRP2.0

MOVP0,#3FH

LCALLDELAY

SETBP2.0

RET

DELAY:

MOVR6,#10

D1:

MOVR7,#250

DJNZR7,$

DJNZR6,D1

RET

DELAY2:

MOVR5,#20

D2:

MOVR6,#20

D3:

MOVR7,#250

DJNZR7,$

DJNZR6,D3

DJNZR5,D2

RET

TABLE:

DB3FH,06H,5BH,4FH,66H

DB6DH,7DH,07H,7FH,6FH

END

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

当前位置:首页 > 求职职场 > 简历

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

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