机电课程设计温度巡回检测仪1Word文档下载推荐.docx

上传人:b****2 文档编号:3649637 上传时间:2023-05-02 格式:DOCX 页数:39 大小:488.53KB
下载 相关 举报
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第1页
第1页 / 共39页
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第2页
第2页 / 共39页
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第3页
第3页 / 共39页
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第4页
第4页 / 共39页
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第5页
第5页 / 共39页
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第6页
第6页 / 共39页
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第7页
第7页 / 共39页
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第8页
第8页 / 共39页
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第9页
第9页 / 共39页
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第10页
第10页 / 共39页
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第11页
第11页 / 共39页
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第12页
第12页 / 共39页
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第13页
第13页 / 共39页
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第14页
第14页 / 共39页
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第15页
第15页 / 共39页
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第16页
第16页 / 共39页
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第17页
第17页 / 共39页
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第18页
第18页 / 共39页
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第19页
第19页 / 共39页
机电课程设计温度巡回检测仪1Word文档下载推荐.docx_第20页
第20页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

机电课程设计温度巡回检测仪1Word文档下载推荐.docx

《机电课程设计温度巡回检测仪1Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《机电课程设计温度巡回检测仪1Word文档下载推荐.docx(39页珍藏版)》请在冰点文库上搜索。

机电课程设计温度巡回检测仪1Word文档下载推荐.docx

总体来说需要四大模块:

测量模块、显示模块、键盘模块、时钟模块

整体硬件结构如下:

总电路图见下图:

三.硬件功能与设计

3.1CPU

根据要求选用MCS-8031单片机,由于没有内置ROM,内部RAM存储量也较小,所以添加一块片外ROMEPROM2732(12位,4K),以及一块片外RAM6264(13位,8K),通过74LS373锁存器和单片机连接

接线图如下:

3.2检测模块

(1)温度传感器

本设计中采用的温度传感器是LM35,它具有很高的工作精度和较宽的线性工作范围,它的输出电压与摄氏温度成比例。

LM35无需外部校准,可以提供±

0.25℃的常用室温精度。

该传感器在25℃时,输出电压为0.25V,随着室温的升高,输出电压与温度成线性关系,因此可以根据得到的电压值计算出温度。

(2)LM35工作特性:

比例因子:

10MV/℃测量范围:

-55℃—150℃

工作电压:

4V—30V精度:

0.5℃

由于A/D转换器选用的是ADC0809,输入模拟电压为0—5V,数字量是28,为了提高温度的转换精度,本设计选定温度传感器的测量范围是0℃—125℃

(3)放大电路

采用的是LM324运算放大器。

LM324可采用单极性或者双极性电源供电,可以在0~+5V下工作,它内部集成了四个运放模块,它的输入端是温度补偿的。

温度/℃

LM输出电压/V

ADC0809输入模拟电压/V

25

0.25

1

50

0.5

2

75

1.75

3

100

4

125

1.25

5

放大电路如下图:

(4)A/D转换器

A/D转换器选用ADC0809。

ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。

它是逐次逼近式A/D转换器,可以和微机直接接口。

A.引脚结构:

ADC0809采用双列直插式封装,共有28条引脚。

其引脚结构图如下图所示。

B.地址输入和控制线:

4条

ALE为地址锁存允许输入线,高电平有效。

当ALE现为高电平时,地止锁存与译码器将ADDA、ADDB和ADDC三条地址输入线,用于选通IN0~IN7上的一路模拟量输入。

通道选择如下表所示。

ADDC

ADDB

ADDA

选择的通道

IN0

IN1

IN2

IN3

IN4

IN5

IN6

IN7

C.数字量输出及控制线:

11条

START为转换启动信号。

当START上升沿时,所有内部寄存器清零;

下跳沿时,开始进行A/D转换;

在转换期间,START应保持低电平。

EOC位转换结束信号。

当EOC为高电平时,表明转换结束;

否则,表明正在进行A/D转换。

OE为输出允许信号,用于控制三态输出锁存器向单片机输出转换得到的数据。

OE=1,输出转换得到的数据;

OE=0,输出数据线呈高阻状态。

D7~D0位数字数出线。

电路图如下:

3.3显示模块

数码管是一种在单片机系统中广泛使用的数字显示输出装置。

对于数码管的驱动控制一般有两种方式,即静态驱动和动态驱动。

静态驱动中硬件开销大,成本高,电路板面积增大,布线复杂;

动态驱动中一般只需一块驱动芯片,多个数码管以极高的频率逐个选通,显示相应的数字,它优点在于硬件电路大大简化。

本电路中使用6个LED共阴数码管显示,格式为,小时:

分钟:

秒或,通道温度

LED动态显示数码管通过8155可编程并行I/O扩展(占用8155的PA与PB口)

3.4键盘输入模块

采用3*3的矩阵式键盘,各行分别接P1.3,P1.4,P1.5,各列分别接P1.0,P1.1,P1.2

设有9个按钮,1-8为通道号,9为返回

3.5时钟模块

本电路中采用的是时钟芯片DS1302,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,按要求只需时、分、秒进行计时。

工作电压为2.5V~5.5V,对采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

DS1302内部有一个31×

8的用于临时性存放数据的RAM寄存器。

其中Vcc1为后备电源,VCC2为主电源。

X1和X2是振荡源,外接32.768kHz晶振。

RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。

RST输入有两种功能:

首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;

其次,RST提供终止单字节或多字节数据的传送手段。

当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。

如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。

四.软件设计

4.1主程序

流程图见右:

N

Y

4.1主程序:

ORG0000H

SJMPSTART

ORG0003H

AJMPINTR0

ORG0040H

START:

MOVA,#0C7H;

开放行(行输出全为0)

MOVP1,A

CLRP3.3

CLRIT0;

电平触发

MOVIE,#81H;

开放INT0中断

MOV30H,#00H;

设定时钟初值

MOVSECOND,#00H

MOVMINUTE,#00H

MOVHOUR,#12H

LCALLSET1302

LCALLGET1302

LCALLDISPLAY

MAIN:

MOVR5,#25

MOVTMOD,#01H

MOVTH0,#63H;

置定时器初值(定时40ms)

MOVTL0,#0C0H

SETBTR0;

启动定时器0

LP1:

MOVA,30H

JNZSHOWTEM

JBCTF0,LP2;

查询计数溢出

SJMPLP1;

未到40ms继续计数

LP2:

MOVTH0,#63H;

重新置定时器初值

LCALLDISPLAY;

显示

DJNZR5,LP1;

未到1S继续循环

LCALLGET1302;

每过1s从DS1302读取一次时间

MOVR5,#25

SJMPLP1

SHOWTEM:

JZLP1

4.2时钟显示程序:

T_CLKBitP3.4;

实时时钟时钟线引脚

T_IOBitP3.5;

实时时钟数据线引脚

T_RSTBitP3.1;

实时时钟复位线引脚

SECONDEQU50H;

秒寄存器

MINUTEEQU51H;

分寄存器

HOUREQU52H;

时寄存器

DISPLAY:

MOVDPTR,#7FFFH

MOVA,#80H

MOVX@DPTR,A;

设置8255控制字

MOVR3,SECOND

LCALLCHAG

MOVDPTR,#7FFDH

MOVA,#0FEH

MOVX@DPTR,A

MOVDPTR,#7FFCH

MOVA,R2

MOVX@DPTR,A

LCALLDELAY

MOVA,#0FDH

MOVA,R3

MOVX@DPTR,A

LCALLDELAY

MOVR3,MINUTE

LCALLCHAG

MOVDPTR,#7FFDH

MOVA,#0FBH

MOVDPTR,#7FFCH

MOVA,R2

LCALLDELAY

MOVA,#0F7H

MOVX@DPTR,A

MOVA,R3

MOVR3,HOUR

MOVA,#0EFH

MOVX@DPTR,A

MOVA,#0DFH

RET

DELAY:

MOVR7,#50

D1:

MOVR6,#10

D2:

DJNZR6,$

DJNZR7,D1

RET

CHAG:

PUSHACC;

低字节放入R2,高字节放入R3

MOVA,R3

ANLA,#0FH

MOVR2,A

SWAPA

MOVR3,A

MOVDPTR,#DATATAB

MOVA,R2

MOVCA,@A+DPTR

POPACC

DATATAB:

DB0B7H,90H,3DH,0B9H,9AH,0ABH,0AFH,0B0H,0BFH,0BBH

SET1302:

CLRT_RST

CLRT_CLK

SETBT_RST

MOVB,#8EH;

控制寄存器

LCALLRTInputByte

MOVB,#00H;

写操作前WP=0

SETBT_CLK

CLRT_RST

MOVR0,#Second;

MOVR7,#7;

MOVR1,#80H;

秒写地址

S13021:

CLRT_CLK

SETBT_RST

MOVB,R1;

写秒分时

MOVA,@R0;

写秒数据

MOVB,A

INCR0

INCR1

DJNZR7,S13021

MOVB,#80H;

控制,WP=1,写保护

RET

GET1302:

MOVR0,#SECOND;

MOVR7,#7

MOVR1,#81H;

秒地址

G13021:

CLRT_CLK

SETBT_RST

MOVB,R1;

秒分时

LCALLRTInputByte

LCALLRTOutputByte

MOV@R0,A;

INCR0

INCR1

SETBT_CLK

CLRT_RST

DJNZR7,G13021

RET

RTInputByte:

MOVR4,#8

Inbit1:

MOVA,B

RRCA

MOVB,A

MOVT_IO,C

DJNZR4,Inbit1

RTOutputByte:

Outbit1:

MOVC,T_IO

DJNZR4,Outbit1

4.3键码检测

流程图见下:

键盘程序:

INTR0:

LACALLDELAY;

延时去抖

MOVA,P1;

读取P1口列值

ANLA,0C7H

CJNEA,#0C7H,SKEY;

判断是否有键闭合,有转SKEY键盘扫描

AJMPFINISH;

无键闭合,返回

SKEY:

MOVA,#00H;

行扫描

MOVR0,A;

R0作为行计数器,开始为0

MOVR1,A;

列计数器

MOVR3,#0DFH;

R3为行扫描字暂存

SKEY2:

MOVP1,A;

输出行扫描字

NOP

NOP;

三个nop操作使P1口输出稳定

MOVA,P1;

读列值

暂存列值

ANLA,#OC7H;

取列值

CPLA;

高电平则有键闭合

JNZSKEY3;

有键按下转SKEY3,无则进行下一行扫描

INCR0;

行计数器加一

SETBC;

为行扫描字右移做准备

MOVA,R3

RRCA;

带进位C右移

MOVR3,A;

形成下一行扫描字

MOVA,R0

CJNEA,#03H,SKEY2;

共需扫描3行

AJMPFINISH

列号译码

SKEY3:

MOVA,R1

JNBACC.2,SKEY4

JNBACC.1,SKEY5

JNBACC.0,SKEY6

SKEY4:

MOVA,#01H

MOVR2,A;

存1列号

AJMPDKEY

SKEY5:

MOVA,#02H

存2列号

SKEY6:

MOVA,#03H

存3列号

键位置译码

DKEY:

MOVA,R0;

取行号

ACALLDECODE;

MOVDPTR,#TABLE1

CLRC

SUBBA,#01H

RLA

JMP@A+DPTR

TABLE1:

ACALLAA

ACALLBB

ACALLCC

ACALLDD

ACALLEE

ACALLFF

ACALLGG

ACALLHH

ACALLII

FINISH:

RETI

键号译码

DECODE:

MOVA,R0;

取行号送A

MOVB,#03H;

每行按键个数

MULAB;

行号*按键数

ADDA,R2;

行号*按键数+列号=键号,存在A中

延时

MOVR7,#18H

TM:

MOVR6,#0FFH

TM1:

DJNZR6,TM1

DJNZR7,TM

4.4温度采集:

温度采集程序:

AA:

MOVR0,#00H;

数值采集

MOVR1,#00H

MOVR2,#08H

MOVDPTR,#0BFF8H

LP4:

MOV@DPTR,A

ACALLDELAY

JNBP3.3,LP1

MOVXA,@DPTR

ADDA,R1

JNCLP3

INCR0

LP3:

MOVR1,A

DJNZR2,LP4

MOVR2,#03H

LP5;

MOVA,R0

RRCA

MOVR0,A

MOVA,R1

DJNZR2,LP5

MOV30H,#01H

MOV31H,R1

RET

4.5温度数值的转化

温度转化程序:

MOVA,31H;

温度数值转化

MOVB,#7

MULAB

MOVB,#17

DIVAB

MOVR1,A

MOVA,B

MOVB,#10

MULAB

MOVB,#17

DIVAB

MOV32H,A;

小数后一位放于32H

MOV31H,R1;

结果存放31H

MOVB,#100

MOVA,31H

MOV73H,A;

温度的百位

MOV72H,A;

温度的十位

MOV71H,B;

温度的个位

MOV70H,32H;

温度的十分位

MOV75H,30H;

通道数

4.6温度的显示

程序:

MOVDPTR,#7FFFH

MOVA,#80H

MOVX@DPTR,A;

MOV

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2