单片机温度测试系统设计

更新时间:2023-03-08 05:13:09 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

题 目: 单片机温度测试系统

班 级: 0 6 2 1 4

学 号: 0 4

姓 名: 樱 凝

指导老师: 辛 追

北京大学

二○○九 年 六 月 五 日

MCS-51单片机实现数字温度计

1

中文摘要:

近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还本文从硬件和软件两方面介绍了MCS-51单片机温度控制系统的设计思路,对硬件原理图和程序框图作了简捷的描述。应根据具体硬随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。

目前,典型的温度测试系统是由模拟式温度传感器、A/D转换电路和单片机组成,由于模拟式温度传感器输出为模拟信号,必须经过A/D转换环节获得数字信号后才能与单片机等相接,本次设计的目的在于学习与了解嵌入式系统开发的基本流程,了解单片机与传感器AD590的通信、LED液晶显示屏驱动电路的设计、单片机与PC机的通信。论文主要介绍了一个基于51单片机的温度信号采集显示系统的设计,主要叙述了单片机温度采集控制系统的硬件电路设计和软件的编写、调试过程。本系统主要包括:温度采集与A/D转化、数据处理、数据显示、信号放大电路、报警电路五大部分。系统实现的功能是温度检测、数值显示。温度传感器AD590对环境温度进行检测,并且经A/D转化器ADC0809转化成数字温度信号,通过单总线传递给单片机,单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LED进行显示,发出控制信号达到控制蜂鸣器和发光二级管的目的。即可实现温度信号采集转化,显示与报警功能!该系统设计和布线简单、体积小、重量轻、性价比高、扩展方便。采用适当的技术将模拟的温度量转化为数字量在原理上虽然不困难但成本较高,还会遇到其它方面的问题。因此对单片机温度控制系统的研究有重要目的和意义.本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用。

2

关键词:单片机 温度采样 驱动电路 AT89C51 显示

英文摘要:

In recent years, with the rapid development of science and technology, the application of SCM is at the same time, traditional detection techniques to control the growing update. In real-time detection and automatic control system of single-chip applications, often as a single-chip core component to use only single-chip is not enough knowledge, but also this article from both hardware and software introduced the MCS-51 single-chip Temperature control system design, schematic diagram of the hardware and procedures were simplified block diagram description. Should be based on the specific hardware along with the continuous improvement of people's living standard, single-chip control is undoubtedly one of the objectives pursued, it gives people the convenience can not be negative, in which digital thermometer is a typical example, but people its increasingly high demand for people to work, scientific research, life and more convenient to provide better facilities will need to start from the number of single-chip technology, all toward the digital control, intelligent control of direction.

At present, the temperature of a typical test system is provided by the analog temperature sensor, A / D conversion circuit and single-chip component, as the analog output temperature sensor to analog signals to go through A / D conversion link can receive digital signals with a single phase, etc., the design is aimed at learning and understanding of the basic embedded system development processes, understand the single-chip communication with the AD590 sensor, LED LCD drive circuit design, MCU and PC-communication. Paper introduces a single-chip based on 51 shows

3

that the temperature signal acquisition system is mainly described in single-chip temperature control system for acquisition of hardware circuit design and software development, debugging process. Of the system include: temperature acquisition and A / D conversion, data processing, data display, signal amplification circuit, alarm circuit most five. System is the temperature functions of detection, numerical display. AD590 temperature sensor to detect temperature on the environment, and by the A / D converter ADC0809 into a digital temperature signal, a single bus transfer to the single-chip, single-chip microcomputer as the data processing and control unit, in order to carry out data processing, a single Control the number of temperature sensors, the temperature signal from a single-bus digital temperature sensor on the transmission to the single-chip microcomputer. Single-chip data processing, the issue of control information and control to change the alarm status of the implementation of modules, at the same time, current temperature information is sent to the LED display, the issue of control signals to control LED and buzzers purposes. Temperature signal acquisition can be realized into shows and alarm functions! Design and layout of the system is simple, small size, light weight, cost-effective, easy to expand. Use of appropriate technologies to simulate the temperature of the volume into a digital, although in principle is not difficult but the cost is higher, but also encountered other problems. Therefore, single-chip temperature control system has an important purpose and significance of the design introduced in digital thermometer with a traditional thermometer, compared with a reading of convenience, a wide range of temperature measurement, temperature measurement accuracy, the output of the temperature digital display, the main for more accurate temperature measurement sites, or research laboratory.

Key words: Single-chip, temperature sampling, drive circuit, showing,

4

录5

AT89C51

成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系

图2-5 ADC0809的内部逻辑结构图

其主要特性如下: (1)8位分辨率;

(2)单-5V的电源,输出模拟电压范围:0~5V; (3)具有锁存控制的8路模拟开关

(4)可锁存三态输出,可与大多数的8位微处理器接口; 其引脚功能如下:

IN0~IN7:8路模拟量输入端; D0~ D7 :8路数字量输出;

ADDC ,ADDB,ADDA:用于选择8路通道模拟地址线: ADDC ADDB ADDA 通道 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6 1 1 1 7

9

成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系

ALE:地址锁存信号。上升沿将ADDC,ADDB,ADDA存入地址锁存器。 START:A/D转换启动信号,正脉冲时,A/D转换开. EOC:转化结束信号,转化开始时OEC=0,结束时OEC=1. OE:输入允许信号,当OE=1时打开三态输出门。 CLOCK:时钟信号 GND:接地 2.3.3单片机的选择

属于哈佛体结构的MCS-51系列单片机,其程序存储器和数据存储器各自独立,编址范围均为64KB。该系列产品功能强,运行速度高,可靠性强,其为低电压;高性能CMOS8位单片机,片内含4位的EEPROM和128位的RAM,兼容MCS-51指令系统,片内通用8位CPU和Flash存储单元,可灵活运用于性价比高的应用场合,所以设计中单片机选取的型号为AT89C51!

(1)主要性能参数: ①与MCS-51产品指令系统兼容

4K字节EEPROM 图2-6 AT89C51引脚图

②1000次擦写周期 ③ 全静态操作:0HZ~24MHZ ④三级加密程序存储器 ⑤ 23*8字节的内部RAM ⑥32个可编程I/O口线 ⑦ 2个16位定时/计数器 ⑧6个中断源 ⑨可编程串行UART通道 ⑩低功耗空闲和掉电模式述:

(2)功能特性描述:

AT89C51提供以下标准功能:4K字节FLASH闪速存储器,128字节的内部RAM。32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,

10

成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系

一个全双工串行通信口,片内振荡器及时钟电路,同时,AT89C51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电模式。空闲方式停止CPU的工作,但允许RAM,定时/记数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但是振荡器停止工作并禁止其它所有部件直到下一个硬件复位!各引脚对应的功能简要介绍如下:

Vss —— 接地。 图 2-6 AT89C51的内部结构图 Vcc —— 电源端,接+5V。

P0.0~0.7 —— P0口是开漏双向口可以写为1使其状态为悬浮用作高阻输入,P0也可以在访问外部程序存储器时作地址的低字节,在访问外部数据存储器时作数据总线,此时通过内部强上拉输出1。P0口每位可以能驱动8个LS型TT

11

成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系

L负载。

P1.0~1.7 —— P1口是带内部上拉的双向I/O口,向P1口写入1时P1口被内部上拉为高电平,

可用作输入口。当作为输入脚时被外部拉低的P1口会因为内部上拉而输出电流。P1口每位可以能驱动4个LS型TTL负载。

P2.0~2.7 —— P2口是带内部上拉的双向I/O口,向P2口写入1时P2口被内部上拉为高电平,可用作输入口。当作为输入脚时,被外部拉低的P2口会因为内部上拉而输出电流。在访问外部程序存储器和外部数据时分别作为地址高位字节和16位地址,此时通过内部强上拉传送。当使用8位寻址方式访问外部数据存储器时,P2口每位可以能驱动4个LS型TTL负载。

P3.0~3.7 —— P3口是带内部上拉的双向I/O口,向P3口写入1时P3口被内部上拉为高电平,可用作输入口。当作为输入脚时被外部拉低的P3口,会因为内部上拉而输出电流。P3口每位可以能驱动4个LS型TTL负载。P3 口还具有以下特殊功能:

RxD(p3.0) —— 串行输入口 TxD(P3.1) —— 串行输出口 INT0(P3.2) —— 外部中断0 INT1(P3.3) —— 外部中断 T0(P3.4) —— 定时器0 外部输入 T1(P3.5) —— 定时器1 外部输入 WR(P3.6) —— 外部数据存储器写信号 RD(P3.7) —— 外部数据存储器读信号

RST —— 复位。当晶振在运行中只要复位管脚出现2个机器周期高电平,即可复位内部。有扩散电阻连接到Vss,仅需要外接一个电容到Vcc即可实现上电复位。

ALE —— 地址锁存使能。在访问外部存储器时,输出脉冲锁存地址的低字节,在正常情况下,ALE 输出信号恒定为1/6 振荡频率并可用作外部时钟或定时。 PSEN —— 程序存储使能。当执行外部程序存储器代码时,PSEN每个机器周期被激活两次。在访问外部数据存储器时,PSEN无效。访问内部程序存储器时,

图2-2 AT89C51封装引脚配置图 12

成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系

PSEN无效。

EA/Vpp —— 外部寻址使能/编程电压。在访问整个外部程

序存储器时EA必须外部置低,如果EA为高时将执行内部程序,除非程序计数器包含大于片内

FLASH的地址。该引脚在对FLASH编程时,接5V/12V编程电压(Vpp),如果保密位1已编程,EA在复位时由内部锁存。

XTAL1 —— 反相振荡放大器输入和内部时钟发生电路输入。 XTAL2 —— 反相振荡放大器输出。

图2—7 Flash编程和校验的波形(高电平编程方式)

13

成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系

4.1.程序流程图

主程序的功能是:初始化系统,调用显示,将测量值与给定值比较,如过大于60℃时,发出警报.其流程图为

开 始

初 始 化

读 温 度T

开 放 外 中 断

数据报警处理

转换送显示

返 回

图4-1 主程序的流程图

T0中断程序 保 护 现 场 19 成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系

置T0值,关蜂鸣器,清刷新 N 比较 数据 Y 蜂 鸣 器 打 开

Y 恢 复 现 场 T0断程序

图4-2 T1中断程序流程图

4.2.数据调用方法选择

4.2.1.由于该温度测试系统中被测值与A/D转换结果为线性关系,在温度值在处理输出的时候可以使用线性标度来完成。线性标度变换公式为:

Y=(Ymax-Ymin)×(X-Nmin)/(Nmax-Nmin)+Ymin

其中,Y表示参数测量值,Ymax表示参数测量的最大值,Ymin表示参数量

20

成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系

程的最小值,Nmax表示Ymin对应的A/D转换后的输出值,Nmin表示Ymin对应的A/D转换后的输出值,X表示测量Y对应的准换值。

在一般的程序设计中,为简化程序,一般把被测参数的起点min所对应的A/D转换设定为0,即Nmin=0.这样就为:

Y=(Ymax-Ymin)*X/Nmax+Ymin 4.2.2.查表法

利用数组和EPROM,快速完成温度值调用处理!

在实际过程中,单片机对于公式进行高精度的计算式完全没有必要的,在许多嵌入式控制系统应用过程中,人们更愿意采用表格而不是数学公式,特别是对于传感器的信号转化,因为表格查找执行起来速度更快,所用代码较少。故在本设计中采用的是查表法。表如下

4.2.1温度模拟信号与存储的地址对应表

温度(℃) 电压(V) ADC输入值

-50 1 33H -49 1.02 34H -48 1.04 35H -47 1.06 36H -46 1.08 37H -45 1.10 38H -44 1.12 39H -43 1.14 3AH -42 1.16 3BH -41 1.18 3CH -40 1.20 3DH -39 1.22 3EH -38 1.24 3FH -37 1.26 40H

21

成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系

-36 1.28 41H -35 1.30 42H -34 1.32 43H -33 1.34 44H -32 1.36 45H -31 1.38 46H -30 1.40 47H -29 1.42 48H -28 1.44 49H -27 1.46 4AH -26 1.48 4BH -25 1.50 4CH -24 1.52 4DH -23 1.54 4EH -22 1.56 4FH -21 1.58 50H -20 1.60 51H -19 1.62 52H -18 1.64 53H -17 1.66 54H -16 1.68 55H -15 1.70 56H -14 1.72 57H -13 1.74 58H -12 1.76 59H -11 1.78 5AH -10 1.80 5BH -9 1.82 5CH -8 1.84 5DH

22

成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系

-7 1.86 5EH -6 1.88 5FH -5 1.90 60H -4 1.92 61H -3 1.94 62H -2 1.96 63H -1 1.98 64H 0 2.00 65H 1 2.02 66H 2 2.04 67H 3 2.06 68H 4 2.08 69H 5 2.10 6AH 6 2.12 6BH 7 2.14 6CH 8 2.16 6DH 9 2.18 6EH 10 2.20 6FH 11 2.22 70H 12 2.24 71H 13 2.26 72H 14 2.28 73H 15 2.30 74H 16 2.32 75H 17 2.34 76H 18 2.36 77H 19 2.38 78H 20 2.40 79H 21 2.42 7AH

23

成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系

T0的初值=216-Fosc/12*t =216-12×106/12×0.01 =55536D=D8F0H

将计算出的初值转化为十六进制送寄存器中。 4.3.2 查表指令

查表指令涉及到程序的查找因此要用专用的指令:MOVC A,A+DPTR和MOV A,A+PC MOVC A,A+DPTR指令,DPTR作为基址寄存器时,其值为16位而且可根据需要设计,故可用于在64KROM范围内查表。编写查表程序时,首先把表的首址送入DPTR中,再将要查找的数据序号(或下表值)送入A中,然后就可以使用该指令进行查表操作,并将结果送累加器A中。

MOVC A,A+PC指令,PC作为基址寄存器时,其值由指令的位置确定,它只能设在查表指令操作码下的256个字节范围内。编写查表程序时,首先把查表数据的序号送入A中,再把从查表指令到表的首地址间的偏移量与A值相加,然后使用该指令进行查表操作,并把结果送累加器A中。

4.3.3 程序:

T0CNT EQU 30H ;T0基本单元 BW EQU 24H ;60℃的存储单元 DISP_FLG EQU 41H ;刷新显示标志 2AH, 2BH 2CH ;温度设定暂存器 程序入口

ORG 0000H

LJMP MAIN ;跳转到主程序 T0中断入口

ORG 000BH LJMP ITOP 主程序

29

成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系

ORG 0025H

MIAN: MOV SP,#60H ;设置堆栈指针 TEMP #0AFH ;设定最高温度 MOV R1, #40H ;温度采集存储单元

MOV TMOD , #01H ;设置T0为16位定时方式

MOV 34H, #40H MOV TH0, #0D8H MOV TL0, #0F0H

MOV T0CN1, A MOV IE, #82H CLR A SETB TR0 LOOP: LCALL DELAY LCALL DISPLAY LOOP1: MOVX @R0 ,A SJMP LOOP

T0中断处理程序:

IT0P: PUSH PSW PUSH ACC

MOV TH0, #0D8H MOV TL0 , #0F0H

CLR SPK MOV SISP_FLAG. , #00H INC T0CNT MOV #100, IT0END MOV DISP_FLAG MOV 2AH, 30H 30

;置T0初值 ;T0中断次数请0 ;T0中断允许 ;显示单元情0 ;启动T0

;延时以保证转换结束 ;送显示 ;启动IN0转换 ;主程序结束 ;保护现场 ;重装初值 ;关闭蜂鸣器

;清除温度刷新标志 ;定时中断次数加1 ;中断时间未到,返回 ;设置时间新标志 ;送T到设定温度

;设定数据单元指针 成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系

子程序入口

MOV 2BH, 31H MOV 2CH, 32H MOV A 2CH CLR C

JC A, #24H ;与设定值比较小于转IT0END SETB P3.4 IT0END: POP ACC POP PSW

RETI 数据处理子程序:

DISPLAP :MOV R1 , #50H MOV R2 , #34H MOV A, @R0 MOV B #2

MUL AB MOV R2, A

MOV DPTR ,#TABLELT MOVC A,@A+DPTR

MOV 3AH, A ANL A , #0FH MOV DPTR #TABLELED MOV A, @A+DPTR MOV @R1, A INC R1

MOV A 3AH ANL A , #0F0H MOV DPTR #TABLELED MOV A, @A+DPTR ;开蜂鸣器,发声20ms ;恢复现场 ;定时器中断返回 ;显示单元指针 ;取数据单元指针 ;取采样值 ;查表指针控制 ;将温度表首地址赋给DPTR ;暂存数据值 ;取低四位 ;将七段码表首地址赋给DPTR ;查表取相应的七段码 ;存入显示单元 ;暂存数据值 ;取高四位 ;将七段码表首地址赋给DPTR ;查表取相应的七段码

31

成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系

MOV @R1, A ;存入显示单元 INC R1 INC R2

MOV DPTR ,#TABLELET ;赋DPTR值 MOV A ,R2

MOVC A,@A+DPTR ;查表取数 MOV 3BH, A ANL A , #0FH

MOV DPTR, @A+DPTR ; MOV @R1, A MOV A 3B ANL A , #0F0H

MOV @R1, A MOV A, R0 ADD A #4 MOV R0, A

MOV A, @R0 MOV B #2

MOV PSP #00H RET 延时程序

DELAY : MOV R4 #64H MDL : NOP NOP

MOV A, @A+DPTR MUL AB MOV R2,A

32

;暂存数据值 ;取低四位 取相应的七段码 ;存入显示单元 ;恢复数据 ;取高四位 ;查表取相应的七段码;存入显示单元 ;采样取值 ;差表指针控制

成 都 电 子 机 械 高 等 专 科 学 校 电 气 与 电 子 工 程 系

NOP NOP

DJNZ R4 MDL RET

TABLELED: DB 3FH 06H 5BH 4FH 66H 6DH DB 7DH 07H 7FH 6FH 40H

TABLELT: DB 0A, 50, 0A, 49, 0A, 48, 0A, 47, 0A, 46 DB 0A, 45, 0A, 44, 0A, 43, 0A, 42, 0A, 41 DB 0A, 40, 0A, 39, 0A, 38, 0A, 37, 0A, 36 DB 0A, 35, 0A, 34, 0A, 33, 0A, 32, 0A, 31 DB 0A, 30, 0A, 29, 0A, 28, 0A, 27, 0A, 26 DB 0A, 25, 0A, 24, 0A, 23, 0A, 22, 0A, 21 DB 0A, 20, 0A, 19, 0A, 18, 0A, 17, 0A, 16 DB 0A, 15, 0A, 14, 0A, 13, 0A, 12, 0A, 11 DB 0A, 10, 0A, 09, 0A, 08, 0A, 07, 0A, 06 DB 0A, 05, 0A, 04, 0A, 03, 0A, 02, 0A, 01 DB 0C, 01, 0C, 02, 0C, 03, 0C, 04, 0C, 05 DB 0C, 06, 0C, 07, 0C, 08, 0C, 09, 0C, 10 DB 0C, 11, 0C, 12, 0C, 13, 0C, 14, 0C, 15 DB 0C, 16, 0C, 17, 0C, 18, 0C, 19, 0C, 20 DB 0C, 21, 0C, 22, 0C, 23, 0C, 24, 0C, 25 DB 0C, 26, 0C, 27, 0C, 28, 0C, 29, 0C, 30 DB 0C, 31, 0C, 32, 0C, 33, 0C, 34, 0C, 35 DB 0C, 36, 0C, 37, 0C, 38, 0C, 39, 0C, 40 DB 0C, 41, 0C, 42, 0C, 43, 0C, 44, 0C, 45 DB 0C, 46, 0C, 47, 0C, 48, 0C, 49, 0C, 50 DB 0C, 51, 0C, 52, 0C, 53, 0C, 54, 0C, 55 DB 0C, 56, 0C, 57, 0C, 58, 0C, 59, 0C, 60 DB 0C, 61, 0C, 62, 0C, 63, 0C, 64, 0C, 65

33

本文来源:https://www.bwwdw.com/article/z0a.html

Top