课 程 设 计 任 务 书
题 目 基于AD590的温度采集系统的设计 系 (部) 信息科学与电气工程学院 专 业 电气 班 级 电升121 学生姓名 左占国 学 号 120817130 指导教师 饶中洋
11 月 25 日至 12 月 2 日 共 1 周
1
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计
摘要
温度是工业生产和自动控制中最常见的工艺参数之一。过去温度检测系统设计中,大
多采用模拟技术进行设计,这样就不可避免地遇到诸如传感器外围电路复杂及抗干扰能力差等问题;而其中任何一环节处理不当,就会造成整个系统性能的下降。随着半导体技术的高速发展,特别是大规模集成电路设计技术的发展, 数字化、微型化、集成化成为了传感器发展的主要方向。
以单片机为核心的控制系统.利用汇编语言程序设计实现整个系统的控制过程。在软件方面,结合ADC0809并行8位A/D转换器的工作时序,给出80C51单片机与ADC0908并行A/D转换器件的接口电路图,提出基于器件工作时序进行汇编程序设计的基本技巧。本系统包括温度传感器,数据传输模块,温度显示模块和温度调节驱动电路,其中温度传感器为数字温度传感器AD590,包括了单总线数据输出电路部分。文中对每个部分功能、实现过程作了详细介绍。
关键词:单片机、汇编语言、ADC0809、温度传感器AD590
2
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计
Abstract
Temperature is the most common one of process parameters in automatic control and industrial production. In the traditional temperature measurement system design, often using simulation technology to design, and this will inevitably encounter error compensation, such as lead,complex outside circuit,poor anti-jamming and other issues, and part of a deal with them Improperly, could cause the entire system of the decline. With modern science and technology of semiconductor development, especially large-scale integrated circuit design technologies, digital, miniaturization, integration sensors are becoming an important direction of development.
In the control systems with the core of SCM,assembly language programming is used to achieve the control of the whole system.Combining with the operation sequence of ADC0809,the interface circuit diagrams of 80C51 SCM and ADC0809 parallel A/D conveger ale given.The basic skills of assembly language programming based on the operation se—quenee of the chip ale put forward.This system include temperature sensor and data transmission, the moduledisplays module and thermoregulation driven circuit from the sensors intofigures of the temperature sensors AD590, including a list of the data outputcircuit. The text of every part of the functions and procedure at present.
Key words:single-chip;assembly language;parallel A/D conversion; ADC0809;Temperature sensor AD590
3
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计
目录
摘要................................................................................................................................................. 2 Abstract ........................................................................................................................................... 3 第一章 系统功能原理及硬件介绍............................................................................................... 5
1.1 80C51单片机介绍 ........................................................................................... 5 1.2 ADC0809介绍--............................................................................................... 7
l.2.1 ADC0809的主要特点 ............................................................................ 7 1.2.2 ADC0809芯片的工作原理 ................................................................... 7 1.3 AD590的介绍 .................................................................................................. 8
第二章 理论分析....................................................................................................................... 10
2.1 各模块接线及原理说明............................................................................. 10
2.1.1 AD590采集温度信号模块 .................................................................. 10 2.1.2 ADC0809 A/D(模数)转换模块......................................................... 10 2.1.3动态数码管显示模块........................................................................... 10 2.1.4 蜂鸣器超量程报警模块.................................................................... 10 2.2最小分度、量程及报警温度的算法............................................................ 10
2.2.1最小分度、量程的算法....................................................................... 10
第三章 各模块电路设计..........................................................................................................11
3.1温度测量采集及加热电路模块.................................................................... 11 3.2 并行A/D(模数)转换模块 .......................................................................... 12 3.3 动态数码管显示模块................................................................................... 13 3.4 蜂鸣器超量程报警模块............................................................................. 13 3.5 可按键设置报警模块................................................................................. 13
第四章 电路与程序设计............................................................................................................. 15
4.1 程序流程图.................................................................................................... 15 4.2 程序清单....................................................................................................... 16
总结............................................................................................................................................... 20 参考文献....................................................................................................... 错误!未定义书签。
4
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计
第一章 系统功能原理及硬件介绍
该数字温度计利用AD590集成温度传感器及其接口电路完成温度的测量并转换成模拟电压信号,经由模数转换器ADC0908转换成单片机能够处理的数字信号,然后送到单片机80C51中进行处理变换,最后将温度值显示在LED显示器上。系统以80C51单片机为控制核心,加上AD590测温电路、ADC0809模数转换电路、温度数据显示电路以及外围电源等组成。系统组成框图如图1所示。
超量程报警 80C51 温度显示 ADC0809模数转化 电源及复位电路等 AD590测温电路
图1 系统组成框图
1.1 80C51单片机介绍
80C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,可提供以下标准功能:4K 字节闪存,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,80C51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
5
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计
图2 80C51引脚图
引脚功能说明
Vcc:电源电压 GND:地
P0口:P0口是一组8位漏极开路型双向I/O口,即地址/数据总线复位口。作为输出口用时,每位能吸收电流的方式驱动8个逻辑门电路,对端口写“1”可 作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,此时P0激活内部的上拉电阻。
P1口:P1是一个带有内部上拉电阻的8位双向I/O口。P1的输出缓冲级可驱动(输入或输出)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可做输入口。因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(输入或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器获16位地址的外部数据存储器(例如执行 MOVX @DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行 MOVX @RI指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。
P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(输入或输出)4个TTL逻辑门电路。对P3口写入“1”时,他们被内部上拉电阻拉高并可作为输入口。此时,被外部拉低的P3口将用上拉电阻输出电流。
RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对输出时钟信号或用于定时。要注意的是:当访问外部数据存储器时将跳过一个ALE脉冲。闪存编程期时,该引脚还用于输入编程脉冲。
PSEN:程序存储允许输出是外部程序存储器的读选通信号,当80C51由外部程序存储器取指令(或数据)时,每个机器周期两个PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。
6
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计
EA/VPP:外部访问允许。要使CPU仅访问外部程序存储器(地址为0000H---FFFFH),EA端必须保持低电平(接地)。需注意的是; 如果加密位LB1被编程,复位时内部会锁存EA端状态。如 EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。
XTAL1:振荡器反相放大器及内部时钟发生器的输入端。 XTAL2 :振荡器反相放大器的输出端。
1.2 ADC0809介绍 l.2.1 ADC0809的主要特点
ADC0809模数转换器,ADC0809是8通道8位CMOS逐次逼近式A/D转换芯片,片内有模拟量通道选择开关及相应的通道锁存、译码电路,A/D转换后的数据由三态锁存器输出,由于片内没有时钟需外接时钟信号。
芯片的引脚如图21-1,各引脚功能如下: IN0~IN7:八路模拟信号输入端。
ADD-A、ADD-B、ADD-C:三位地址码输入端。 CLOCK:外部时钟输入端。CLOCK输入频率范围在10~1280KHz,典型值为640KHz,此时A/D转换时间为100us。51单片机ALE直接或分频后可与CLOCK相连。
D0~D7:数字量输出端。
OE:A/D转换结果输出允许控制端。
当OE为高电平时,允许A/D转换结果从D0~D7
端输出。 图21-1 ADC0809引脚
ALE:地址锁存允许信号输入端。
八路模拟通道地址由A、B、C输入,在ALE信号有效时将该八路地址锁存。 START:启动A/D转换信号输入端。
当START端输入一个正脉冲时,将进行A/D转换。 EOC:A/D转换结束信号输出端。
当 A/D转换结束后,EOC输出高电平。 Vref(+)、Vref(-):正负基准电压输入端。
基准正电压的典型值为+5V。
1.2.2 ADC0809芯片的工作原理
ADC0809带有片内系统时钟,该时钟与I/OCLOCK是独立工作的,无需特殊的速度或相位匹配。当CS为高时,数据输D端处于高阻状态,此时I/O CLOCK不起作用。这种CS控
7
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计
制作用允许在同时使用多片ADC0809时,共用I/OcLOCK,以减少多路(片)A/D使用时的I/O控制端口。一组通常的控制时序操作图如下:
图4 TLC549的工作时序
1.3 AD590的介绍
AD590是AD公司利用PN结构正向电流与温度的关系制成的电流输出型两端温度传感器.(热敏器件)
AD590是美国模拟器件公司生产的单片集成两端感温电流源。它的主要特性如下: 1、流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数,即:mA/K式中: —流过器件(AD590)的电流,单位为mA; T—热力学温度,单位为K。 2、AD590的测温范围为-55℃~+150℃。
3、AD590的电源电压范围为4V~30V。电源电压可在4V~6V范围变化,电流 变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。
4、输出电阻为710MW。
5、精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线性误差为±0.3℃。
AD590温度感测器是一种已经IC化的温度感测器,它会将温度转换为电流,在8051的各种课本中常看到它,相当常用到。 其规格如下:
温度每增加1℃,它会增加1μA输出电流。 可量测范围-55℃至150℃。 供应电压范围+4V至30V。
8
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计 AD590的输出电流值说明如下:
其输出电流是以绝对温度零度(-273℃)为基准,每增加1℃,它会增加1μA输出电流,因此在室温25℃时,其输出电流Io=(273+25)=298μA。
Vo的值为Io乘上10K,以室温25℃而言,输出值为2.98V(10K×298μA)。 量测Vo时,不可分出任何电流,否则量测值会不准。
AD590的输出电流I=(273+T)μA(T为摄氏温度),因此量测的电压V为(273+T)μA ×10K= (2.73+T/100)V。为了将电压量测出来又需使输出电流I不分流出来,我们使用电压追随器其输出电压V2等于输入电压V。
由于一般电源供应较多零件之后,电源是带杂讯的,因此我们使用齐纳二极体作为稳压零件,再利用可变电阻分压,其输出电压V1需调整至2.73V。
接下来我们使用差动放大器其输出Vo为 (100K/10K)×(V2-V1)=T/10V。如果现在为摄氏28度,输出电压为2.8V。
图5 AD590的封装及其基本应用电路
图6 AD590内部电路原理图
9
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计
第二章 理论分析
ADC08099温度采集系统采用了AD590采集温度信号,ADC0809转换温度模拟信号,80C51(伟福仿真器仿真)控制ADC0809转换,静态数码管显示,超量程报警。
2.1 各模块接线及原理说明 2.1.1 AD590采集温度信号模块
将T-DETECT接到ADC0809的IN-0端口,然后用T-CON控制电路加热与否。不需要进行其他的控制。
2.1.2 ADC0809 A/D(模数)转换模块
ADC0809的三个I/O口分别为EOC、CLK和CS端口,其中CLK为时钟、CS为片选、EOC为转换结束状态信号。
2.1.3静态数码管显示模块
静态数码管显示电路由四只74LS164、四只共阴极LED数码管组成。输入只有两个信号,它们是串行数据线DIN和移位信号CLK。单片机的P3 口输出显示段码,经由一片74LS164 驱动输出给LED 管,由P3.0 口输出位码,经由74L164 输出给LED 管。
2.1.4 蜂鸣器超量程报警模块
由AT89C51的I/O口直接输出信号到蜂鸣器的控制信号输入端口C,当输入信号为高点平时,蜂鸣器报警。
2.2最小分度、量程及报警温度的算法 2.2.1最小分度、量程的算法
ADC0809工作温度为0℃~80℃,温度与电压成正比。当设定量程与80℃接近时测量所得温度与实际温度才能相符。
ADC0809的A/D输出为00H到FFH,可进行256等分,3能被256整除,以此算法设定最小分度为0.33℃,量程为0℃~80.0℃,比较符合要求。
10
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计
2.2.2报警温度的算法
设定最小温度分度为0.33℃,量程为 0℃~80.0℃,所以,控制I/O口的按键并将其对应的数字量存在单片机中。将A/D转换的数字量与设定温度比较,超过预设温度就启动报警装置。
第三章 各模块电路设计
温度采集系统由温度采集模块、AD转换模块和温度值显示模块三大部分组成。其中温度采集模块主要用AD590采集温度,并输出一个模拟电压信号,ADC0809接收到模拟信号后,进行A/D转换把模拟信号转换位数字信号,并行输出(一个时钟下降沿输出一次),单片机接到数据后存入累加器A,经过一定的转化,经过74LS164输入到七位数码管中,并静态显示出来,当温度超过设定的报警温度,蜂鸣器报警装置自动报警。
3.1温度测量采集及加热电路模块
T-DETECT接到ADC0809模拟信号输入端IN-0,T-CON接高电平时开始加热。
图7 温度测量采集及加热电路原理图
11
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计
图8 参考电压电路
3.2 并行A/D(模数)转换模块
图9 并行模数转换电路
12
3.3 动态数码管显示模块
3.4 蜂鸣器超量程报警模块
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计
图11 蜂鸣器超量程报警原理电
图9-1 静态数码管显示电路
13
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计
3.5 可按键报警模块
通过I/O口控制按键输入,暂存在寄存器B,并由P2口通过显示灯显示出来。与暂存在寄存器A中数对比,若A高于B就报警,否则正常显示。
14
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计
第四章 电路与程序设计
4.1 程序流程图
开始 温度采集 启动转换 进行标度转换 将十位、个位、小数位分开 执行报警子程序 Y 是否达到 处理小数位 报警下限温度 各位暂存在单片机 N Y 查段码,送静态显示管 是否达到 报警上限温度 观察示数 N 结束 15
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计
4.2 程序清单
ORG 0000H SJMP MAIN
MAIN:MOV DPTR,#7FF8H ;DPTR指向0通道 MOVX @DPTR,A ;启动A/D转换 JNB P3.2,$ ;等待
MOVX A,@DPTR ;读数 MOV 40H,A ;存数
LCALL WARN ;可按键报警 LOP0:LCALL TRAN ;模数-数据转换 LCALL DISP ;数据的静态显示 LCALL DELAY1s
SJMP MAIN
;;;;;;;;;;;;;可按键设置;;;;;;;;;;;;;;;
WARN:MOV A,40H MOV R0,#50H
LOP1:MOV P2,#0FFH ;P2口初始化,8灯全灭
MOV P1,#0FFH ;P1口初始化,设P1口为输入方式 LOP2:MOV B,P1 ;读P1数据 MOV P2,B ;送P2数据 MOV B,P2
MOV @R0,B
CJNE A,50H,LOP3
LOP3:JNC LOP4 ;Cy=0,转LOP4 AJMP LOP0 ;Cy=1,转LOP0 LOP4:MOV SP,#60H ;给堆栈指针赋初值 ACALL MUSIC
AJMP LOP0
;;;;;;;;;;蜂鸣器输出声子程序;;;;;;;;;;; MUSIC:MOV 4AH,#34H
LOP6:MOV R5,#60H ;控制音长 MIC:CPL P2.1
ACALL DELAY5ms ;控制音调 DJNZ R5,MIC DJNZ 4AH,LOP6 RET
;;;;;;;;;;;;;;;;数据转换;;;;;;;;;;;;;;;
TRAN:MOV R0,#40H
MOV R3,#30H ;用来存放小数位 MOV A,@R0 ;把R0中的数给A MOV B,#03H
DIV AB ;标度变换3格一度
16
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计
MOV R3,B ;存小数
MOV B,#0AH
DIV AB ;将标度变换结果的十位与个位分开 MOV @R0,A ;将十位数送显示缓冲单元 INC R0 ;指向缓冲单元下一地址 MOV @R0,B ;将个位数送显示缓冲单元 MOV A,R3 ;标度转换结果小数部分处理 MOV B,#03H
MUL AB ;实现三格一度 INC R0 ;指向下一个缓冲单元 MOV @R0,A ;将小数送显示缓冲单元 LOP8:RET ;返回
;;;;;;;;;;静态显示子程序-串入并出;;;;;;;
DISP:MOV DPTR,#TAB ;段码表首地址 MOV R0,#40H ;R0指向缓存区首地址 MOV A,@R0 ;将整数位数给A MOVC A,@A+DPTR ;查十位段码
MOV 40H,A ;将段码结果送入40H INC R0 ;R0指向缓存区下一地址 MOV A,@R0 ;将个位数给A MOVC A,@A+DPTR ;查个位段码 MOV 41H,A ;将段码结果送入41H INC R0 ;R0指向缓存区下一地址 MOV A,@R0 ;将小数给A MOVC A,@A+DPTR ;查小数段码 MOV 42H,A ;将段码结果送入42H
;;;;;;;;;;;最后一位清零;;;;;;;;;;;; MOV 43H,#00H MOV A,43H MOV R7,#08H
CCC:JB ACC.7,AAA CLR P3.0 JMP BBB
AAA:SETB P3.0
BBB:SETB P3.1 ;CLK下降沿触发 CLR P3.1
RL A DJNZ R7,CCC
;;;;;;;;小数位数显示;;;;;;; MOV A,42H MOV R7,#08H CC:JB ACC.7,AA CLR P3.0
17
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计
JMP BB
AA:SETB P3.0
BB:SETB P3.1 ;CLK下降沿触发 CLR P3.1 RL A
DJNZ R7,CC ;所有位检测后顺序执行 ;;;;;;;;;;;;个位数显示;;;;;;;;;;;
ORL 41H,#80H ;个位数后置小数点 MOV A,41H MOV R7,#08H DD:JB ACC.7,EE CLR P3.0
JMP FF
EE:SETB P3.0
FF:SETB P3.1 ;CLK下降沿触发 CLR P3.1
RL A
DJNZ R7,DD ;所有位检测后顺序执行 ;;;;十位数数显示;;;;; MOV A,40H MOV R7,#08H
GG:JB ACC.7,HH CLR P3.0 JMP II
HH:SETB P3.0
II:SETB P3.1 ;CLK下降沿触发 CLR P3.1
RL A
DJNZ R7,GG ;所有位检测后顺序执行 TAB: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH LOP9:RET
;;;;;;;;;;为使数据显示稳定延时1秒;;;;;;;; DELAY1s:MOV R4,#10 DH0:MOV R5,#100 DH1:MOV R7,#249 DH2:NOP NOP
DJNZ R7,DH2 DJNZ R5,DH1 DJNZ R4,DH0
L0P10:RET
;;;;;;;;;;;;;;延时子程序;;;;;;;;;;;;;;;;; DELAY5ms:MOV R7,#03H
18
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计
DELAY0:MOV R6,#40H DELAY1:DJNZ R6,DELAY1 DJNZ R7,DELAY0 LOP11:RET END
19
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计
总结
为期一周的课程设计终于结束了,这次课程设计给了我太多的感触,同时也培养了我对陌生问题的分析和解决的能力,在这里非常感谢潘老师,是他强调课程设计不是做实验,而是培养分析问题和解决问题的能力。
在本次设计的过程中,我学会了处理一些问题。在此之前的课程设计大都都是“打酱油”的,但是这次不同以往。刚拿到课题时我以为很简单就能完成,真正到分析时有觉得很难。我觉得单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,看似简单但做起来就不是那么回事了。纸上谈兵谁都会,只有我们去试着做了,才能发现我们的不足。
从这次的课程设计中,我真真正正的意识到团队合作的重要性。古语有云“人心齐,泰山移。”很多时候单凭一人之力是难以有所作为。所以,学会与他人合作,发挥团队精神在具体生活中的运用,可以使我们收到事半功倍的效果。这就是我在这次课程设计中的最大收获。很感谢学校和老师给我们安排了这次课程设计,让我真正感受到的是合作的重要,许多时候都是同学间的讨论,老师的指导中的一句半句启发了我,就出现的让人欣喜的结果;基础知识同样很重要,在以后的学习中要加强对基础知识的学习。
20
山东交通学院单片机课程设计报告——基于AD590的温度采集系统的设计
21
因篇幅问题不能全部显示,请点此查看更多更全内容