您的当前位置:首页正文

AD590温度采集系统设计

2022-12-21 来源:钮旅网
(基于AD590温度采集系统设计 )

课程设计说明书

一、设计内容及要求 利用温度传感器AD590采集温度信号,并调理放大采集到的电压信号,用ADC0809进行电压转换,实现温度采集,并将采集温度显示出来。 二、设计原始资料 单片机原理及应用教程 范立南 2006年 1月 单片机原理及应用教程 刘瑞新 2003年07月 三、设计完成后提交的文件和图表 1.计算说明书部分 1)方案论证报告打印版或手写版 2)程序流程图 3)具体程序

2.图纸部分: 具体电路原理图打印版 四、进程安排 教学内容 学时 地点 资料查阅与学习讨论 1天 单片机实验室 分散设计 5天 单片机实验室 编写报告 3天 单片机实验室 成果验收 1天 单片机实验室 五、主要参考资料 《电子设计自动化技术基础》马建国、孟宪元编 清华大学出版 2004年4月 《实用电子系统设计基础》 姜威 2008年1月 《单片机系统的PROTEUS设计与仿真》 张靖武 2007年4月

2

指导老师成绩 答辩小组成绩 总成绩

3

摘要

本文介绍了基于AD590与89c51单片机的一种温度采集系统,该电路采用ADC0809作为A/D转换元件,将AD590采集的模拟温度信号转化为数字信号,传输到单片机内部,最后总是用共阴极LED显示出来,温度测量范围0℃~85℃,小数点后显示一位。要求能够正确的显示温度传感器的温度。使用3位LED模块显示,显示测量温度数值。

本系统主要包括大模块:数据采集模块、控制模块、A/D转换模块、显示模块。首先绘制出工作流程图,然后连接好硬件电路,写入汇编程序,并进行调试,最终设计完成了该系统的硬件电路。在软件编程上,采用了汇编语言进行编程,使用了显示模块程序、转换数据存取程序、A/D转换程序。

关键字:AT89C51、DS1302、LCD12864、PROTEUS

4

目 录

第一章 系统方案 ............................................. 6 1 系统的设计任务 ........................................ 6 2 设计方案 ............................................... 6 3 软硬件开发环境 ......................................... 6 第二章 理论分析与计算 ....................................... 7 第三章 电路与程序设计 ....................................... 8 2.硬件设计 ................................................. 9 2.1 单片机主电路设计 .................................... 9 2.2 测量、转换电路设计 .................................. 9 2.3 显示电路设计 ....................................... 11 3.软件设计 ................................................ 13 3.1 主程序设计 .......................................... 13 3.2 模块程序设计 ....................................... 15 4.系统程序 ................................................ 16 第四章 结果分析 ............................................ 21 1.调试内容及问题解决 .................................... 21 2.整体调试 .............................................. 21 第五章 课程设计总结 ........................................ 22 参考文献 .................................................. 23

5

第一章 系统方案

1 系统的设计任务

设计单片机主电路、数据采集接口电路、LED显示电路、时钟信号控制电路,能够实

现对1路电压值进行测量,能够显示当前实际的温度值,温度值精度小数点后1位,可以通过ADC0809模数转换芯片将采集的模拟信号转换为数字信号并在LED显示屏显示出来。

2 设计方案

将数据采集接口T-DETECT端口电压传入ADC0809数模转换元件中的IN-0通道,经转换后通过D0至D7与单片机P0口连接,把转换完的模拟信号以数字信号的信号的形式传给单片机,信号经过单片机处理从LED数码显示管显示。本设计使用的数据流输出为串入并出形式,这样的好处是使用借口较少,方便使用。

P1F3 P0F3 数据输出显示出 AT89C51 P0 P11F3 P12F3 ALE P3 ADC0809 D0~D7 IN0 : IN7 CLOCK VREF+ VREF-

图1.1系统总体方案结构图

3 软硬件开发环境

6

硬件选择:选择AT89C51作为单片机芯片,选用8段共阴极LED数码管实现温度显示,要求,利用ADC0809作为数模转换芯片,利用P0至P4的各个串口来进行不同设备间的连接,计算机进行汇编,WAVE仿真器,单片机多功能实验台。

软件开发环境: keil软件进行程序编写。

第二章 理论分析与计算

系统使用集成电路温度传感器AD590作为测温器,AD590是一种精度和线性度较好的双端集成温度传感器,其输出电流与绝对温度有关,对于电源电压从5-10V变化只引起1A最大电流的变化或1摄氏度等效误差。

图33-1 温度传感部分

图33-1给出了用于获得正比于绝对温度的输出电流的基本温度敏感电路,当温度有了10℃的变化时输出电压变化为20mV,即该电路运放6脚电压随温度变化为2Mv/℃。

AD590将温度变化量转换成电压值变化量,经过OP07一级跟随后输入到电压放大电路,放大后的信号输入到A/D转换器将模拟信号转换成数字信号,利用CPU采集并存储采集到的数据。将温度传感器输出的小信号跟随放大45倍左右后,送至8位A/D转换器换成数字量。

设定温度为0摄氏度时变换放大电路送出的模拟量为0V,此时A/D输出的数字量为00H;温度为85.3摄氏度时变换放大电路送出5V电压,此时A/D输出的数字量为FFH,即每0.3摄氏度对应1LSB变化量。当温度超过报警温度报警85.3摄氏度,此时,输出电压约为5.0V左右。通过电压比较器接通硬件报警电路报警。输入A/D的模拟信号有过压保护,不会损坏A/D转换器。在实验平台硬件中,已有安全设计,即加热温度不会超过80℃。

系统出厂时已依据标准调整好了放大器的增益和零位。应注意:由于热惯性的影响及

7

1主要电路

1.1温度测量与控制电路

1.2静态数码管显示电路

第三章 电路与程序设计

本实验需要用到CPU模块(F3区)和温度测量与控制模块(A5区)、并行模数转换模块(D7区)、8279显示模块(F4区)。温度测量与控制电路原理参见图33-2。

图33-2 温度测量与控制电路

温度计显示的滞后因素,若要精确观察某温度点的测量值,在加热到观察温度点后,应停止加热,等待温度计示值稳定后,再观察记录结果。若选区观察点温度较高,还应相应延长等待时间。

需要说明的是,由于温度计和温度采样芯片AD590的采样点不同,理论计算值同显示略有偏差。

本实验需要用到CPU模块(F3区)和静态数码管显示模块(B4区)。静态数码管显示电路原理图参见图9-1。

8

图9-1 静态数码管显示电路

1)系统各跳线器处在初始设置状态。

用导线对应连接静态数码管显示模块的DIN、CLK到CPU模块的P30、P31。 2)启动PC机,打开Keil uVision2软件,加载程序,编译,下载,运行。 3)观察数码显示结果。

2.硬件设计

2.1 单片机主电路设计

在本次课题设计中我们选择了8951芯片,其具有功能强、体积小、成本低、功耗小等特点,它可单独地完成现代工业控制所要求的智能化控制功能,能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。

2.2 测量、转换电路设计

9

使用ADC0809作为数模转换元件,其引脚图如2.1所示

图2.1 ADC0809引脚图

ADC0809是带有8路模拟开关的8位A/D转换芯片,所以它可有8个模拟量的输入端,由芯片的A,B,C三个引脚来选择模拟通道中的一个。A,B,C三端分别与AT89C51的P0.0~P0.2相接。地址锁存信号(ALE)和启动转换信号(START),由P2.6和/WR或非得到。输出允许,由P2.6和/RD或非得到。时钟信号,可有89C51的ALE输出得到,不过当采用12M晶振时,应该先进行二分频,以满足ADC0809的时钟信号必须小于640K的要求。与单片机的连接如图2.2所示

图2.2数据转换系统电路图

10

2.3 显示电路设计

一、 LED数码管构成

LED数码管显示器是由发光二极管显示字段的显示器件,也称为数码管。其外形结构如图所示。它由8个发光二极管构成,通过不同的组合可用来显示0-9、A-F及小数点“.”等字符。

数码管有共阴极和共阳极两种结构规格,电阻为外接。共阴极数码管的发光二极管阴极共地,当某发光二极管的阳极为高电平时,二极管点亮;共阳极数码管的发光二极管是阳极,并接高电平,对于需点亮的发光二极管将其阴极接低电平即可。

二、 显示方式

图2.3(a) 共阴极 图2.3(b) 共阳极

图2.3(C)字段显示

11

(1) 静态显示方式

直接利用并行口输出。LED显示工作于静态显示方式时,各位的共阴极连接在一起接地;每位的段选线分别于一个8位的锁存输出相连。一般称之为静态显示,是由于显示器中的各位相互独立。而且各位的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。本实验采用串入并出的静态显示方式。

利用通信号串行输出。在实际应用中,多位LED显示时,为了简化电路,在系统不需要通信功能时,经常采用串行通信口工作方式0,外接移位寄存器74LS164来实现静态显示。 (2) 动态显示方式

对多位LED显示器的动态显示,通常都时采用动态扫描的方法进行显示,即逐个循环点亮各位显示器。这样虽然在任一时刻只有一位显示器被点亮,但是由于间隔时间较短,且人眼具有视觉残留效应,看起来与全部显示器持续点亮一样。

为了实现LED显示器的动态扫描,除了要给显示器提供的输入之外,还要对显示器加位选择控制,这就是通常所说的段控和位控。因此多位LED显示器接口电路需要有两个输出口,其中一个用于输出8位控信号;另一个用于输出段控信号,其连接图如下。

2.4 LED显示电路

表2.1七段LED段选码表

12

显示字符

0 1 2 3 4 5 6 7 8 9 A B

共阴极段 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 77H 7CH

显示字符

C D E F P U Γ y 8. “灭” / /

共阴极段 39H 5EH 79H 71H 73H 3EH 31H 6EH FFH 00H / /

3.软件设计 3.1 主程序设计

(一) 工作流程

首先在模拟信号转换开始初期延时一段时间(150微秒),延时完成后数据肯定已经转换完毕。转向数据存储程序,最后再到显示程序,本设计使用的是串入并出形式的显示方法。要求正确的显示温度值。完成一次温度采集显示程序后,要延时1秒,使的数据显示稳定,如果延时时间过短,温度值会在跳跃的临界点闪烁。然后转向温度采集并循环显示程序。工作流程图如下:

13

开始 延时转换时间 N Y 转换数据的处理转换结果的 转换完成 选择第0通道 继续等待 延时 数据显示

图3.1主程序流程

(二) 存储空间定义安排

40H用于存放A/D转换结果,40H、41H、42H分别存储显示用的三位数据如下表:

表3.1存储空间定义表

40H 40H 41H 42H

用于存放A/D转换结果 温度值十位数部分

温度值个位数部分(小数点的处理)

温度值小数位部分

14

3.2 模块程序设计

(一)A/D转换测量程序

A/D转换的常用方法有:①计数式A/D转换,②逐次逼近型A/D转换,③双积分式A/D转换,④ V/F变换型A/D转换。在这些转换方式中,记数式A/D转换线路比较简单,但转换速度较慢,所以现在很少应用。双积分式A/D转换精度高,多用于数据采集及精度要求比较高的场合,如5G14433(31/2位),AD7555(41/2位或51/2位)等,但速度更慢。逐次逼近型A/D转换既照顾了转换速度,有具有一定的精度,这里选用的是逐次逼近型的A/D转换芯片ADC0809。采用延时控制的方式实现,不浪费时间,效率较高。其流程图如下:

图3.2 A/D转换测量程序

(二) 显示程序

LED显示工作于静态显示方式时,各位的共阴极连接在一起接地;每位的段选线分别于

15

一个8位的锁存输出相连。一般称之为静态显示,是由于显示器中的各位相互独立。而且各位的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。本实验采用串入并出的静态显示方式。

利用通信号串行输出。在实际应用中,多位LED显示时,为了简化电路,在系统不需要通信功能时,采用串行通信口工作方式0,外接移位寄存器74LS164来实现静态显示。

开始程序 读取判断单元 40H 41H 42H 显示电压十显示电压个显示电压小位数部分 位数部分数部分 LED显示

图3.3显示子程序

4.系统程序

org 000h

jmp main org 0030h

16

main:

mov r0,#40h

mov dptr,#0bff8h ;指向0809首地址 movx @dptr,a ;启动A/D转换 tt1:

movx a,@dptr ;读数 movx @r0,a ;存数 movx @dptr,a ;启动A/D转换

lcall delay128us ;等待转换完毕(至少128us) movx a,@dptr mov @r0,a

lcall tran ;模数-数据转换 lcall disp ;数据的静态显示 lcall delay1s sjmp main

;;;;;;;;;;;;;;;;数据转换;;;;;;;;;;;;;;;

tran: ;数据转换 mov r0,#40h mov r3,#00h

mov a,@r0 ;把r0中的数给a mov b,#03h ;标度变换 3格一度 div ab mov r3,b

mov b,#0ah ;将标度变换结果的整数部分进行BCD码转换 div ab

mov @r0,a ;将十位数送显示缓冲单元

inc r0 ;指向缓冲单元下一地址 mov @r0,b ;将个位数送显示缓冲单元

mov a,r3 ;标度转换结果小数部分处理 mov b,#03h ;实现三格一度

17

mul ab inc r0

mov @r0,a ;送显示缓冲单元 lop: ret

;;;;;;;;;;静态显示子程序-串入并出;;;;;;; disp:

mov dptr,#tab

mov r0,#40h ;r0指向缓存区首地址 mov a,@r0 ;将整数位数给a

movc a,@a+dptr ;利用表格计算十位七段LED数码管的段码 mov 40h,a ;将段码结果送入40h

inc r0 ;r0指向缓存区下一地址 mov a,@r0 ;将个位数给a

movc a,@a+dptr ;利用表格计算个位七段LED数码管的段码 mov 41h,a ;将段码结果送入41h

inc r0 ;r0指向缓存区下一地址 mov a,@r0 ;将小数给a

movc a,@a+dptr ;利用表格计算小数位七段LED数码管的段码 mov 42h,a ;将段码结果送入42h ;;;;;;;;;;;最后一位清零;;;;;;;;;;;; mov 43h,#00h mov a,43h mov r7,#8

ccc: jb acc.7,aaa ; clr p3.0 ; jmp bbb aaa: setb p3.0 bbb: setb p3.1 clr p3.1

18

rl a djnz r7,ccc

;;;;;;;;小数位数显示;;;;;;; mov a,42h mov r7,#8 cc:

jb acc.7,aa ; clr p3.0 ; jmp bb aa: setb p3.0 bb: setb p3.1 clr p3.1 rl a

djnz r7,cc ;所有位检测后顺序执行 ;;;;;;;;;;;;个位数显示;;;;;;;;;;; orl 41h,#80h ;个位数后置小数点 mov a,41h mov r7,#8 dd: jb acc.7,ee clr p3.0 jmp ff ee: setb p3.0 ff: setb p3.1 clr p3.1 rl a djnz r7,dd ;;;;十位数数显示;;;;; mov a,40h mov r7,#8 gg: jb acc.7,hh clr p3.0

19

jmp ii hh: setb p3.0 ii: setb p3.1 clr p3.1 rl a djnz r7,gg

tab: db 3fh,06h,5bh,4fh,66h db 6dh,7dh,07h,7fh,6fh lop1: ret

;;;;;;;;;;ADC0809转换所需时间;;;;;;;;;; delay128us: mov r5,#30 delay1:

mov r7,#5 delay2: nop nop

djnz r7,delay2 djnz r5,delay1 ret

;;;;;;;;;;为使数据显示稳定延时1秒;;;;;;;; delay1s:

mov r4,#10 delay00:

mov r5,#100 delay11:

mov r7,#249

20

delay22: nop nop

djnz r7,delay22 djnz r5,delay11 djnz r4,delay00 ret

第四章 结果分析

1.调试内容及问题解决

程序可分为数据采集系统、数据转换系统、显示系统,这三部分先独立测试,然后整体调试。

显示系统的调试:要显示的数据存放在40H、41H、42H单元中,先在40H、41H、42H分单元中存放0~10的数,运行显示程序,察看显示的结果是否与存放值一样。在测试的过程中发现小数点没有显示,通过指令ORL 30H,#80H,把小数点显示出来。

整体测试:把个部分用线连接,P2接数码管,P3接位选。仿真器、仿真头连好,进入WAVE软件,设置仿真器。编译程序,看是否存在错误。

2.整体调试

1.把Vref电压调到+5V;

2.将多位开关S7A拨向最左端,调节RW10电位器,使T-DECTECT孔为零。将多位开关S7A拨加最右(温度控制)端,Survey灯亮。

3.用导线连接温度测量与控制模块的T-Detect到并行模数转换模块的IN-0;并行模数转换模块的CS_0809到地;并行模数转换模块的Vref接压力测量模块的Vref电源;P10接温度模块的T-CON;CUP模块的P12F3与P0F3,P11F3与P1F3相连,CPU模块的/WR,/RD

21

与D1区的/WR,/RD相连,F4区的CS8279接P27,RESET接地。

4.启动PC机,打开Keil uVision2软件,加载程序,编译,下载,运行。运行后,正常显示温度控制模块的温度加热时将T-CON与P2.3连接温度将会以0.3度为单位逐渐增加,当停止加热时温度会以0.3为单位逐渐下降。

第五章 课程设计总结

在我国,随着国家信息化发展战略的贯彻实施,信息化建设已经进入了全方位、多层次推进应用的新阶段。现在,掌握计算机技术已成为二十一世纪人才应具备的基本素质之一。单片机作为我们的主要专业课之一,虽然在大三开学初我对这门课并没有什么兴趣,觉得那些程序枯燥乏味,但在这次课程设计后我发现自己在一点一滴的努力中对单片机的兴趣也在逐渐增加。

这次课程设计对我们来说有着很重要的意义,不仅综合理论知识来运用到创新和设计,还让我们知道了团队的合作。两个星期前我们还为这次课程设计发愁,我们需要了解 在做本次课程设计的过程中,我感触最深的当属查阅大量设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。在这两星期的时间里,我们经历从迷茫到清晰的全过程,我认识到做课程设计,必须做到,首先要分析好自己的设计目的及要求,在设计程序前不能妄想一蹴而就要有一个清晰的思路和一个完整的流程图,学会单步调试来找错,很多我们在课本上没学到的知识,比如说LCD的应用 、以及AD590芯片的用法,我们通过上网和图书馆查资料并在老师细心的指导下,完成了这次设计,感谢老师的辛勤指导。经过这些天的实践和体验下来,我们学到了不仅是知识更多的学会的是团队协作。

通过这次课程设计,我也发现了自身存在的很多不足之处,虽然理论知识感觉掌握了,但在运用实践过程中仍有意想不到的困惑,进过一番努力才得以解决。我想这将对我以后的学习产生积极的影响。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要性,学会了坚持、耐心和努力,这将为自己今后的学习和工作作出了最好的榜样。再次感谢老师的热心指导,没有老师的指导我们不可能完成。

由于知识浅薄,经验不足及阅历颇浅,因此,在该系统的设计方面还有很多不足,比 如功能不够完善,精度有待提高等问题,会在学习的使用过程中,根据学习的具体要求不断的修改,完善,争取使该系统慢慢趋向完美,并希望老师批评指点在因难中进步,还要感谢指导教师给我的提供了宝贵的意见。

22

参考文献

[1] 徐爱钧.智能化测量控制仪表原理与设计(第二版).北京:北京航空航天大学出版社,2004

[2] 吴金戌.8051单片机实践与应用.北京:清华大学出版社,2002 [3] 张国勋.缩短ICL7135A/D采样程序时间的一种方法,1993 [4] 高峰.单片微型计算机与接口技术.北京:科学出版社,2003

23

因篇幅问题不能全部显示,请点此查看更多更全内容