智能仪器设计报告.docx

上传人:b****8 文档编号:9381753 上传时间:2023-02-04 格式:DOCX 页数:26 大小:238.41KB
下载 相关 举报
智能仪器设计报告.docx_第1页
第1页 / 共26页
智能仪器设计报告.docx_第2页
第2页 / 共26页
智能仪器设计报告.docx_第3页
第3页 / 共26页
智能仪器设计报告.docx_第4页
第4页 / 共26页
智能仪器设计报告.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

智能仪器设计报告.docx

《智能仪器设计报告.docx》由会员分享,可在线阅读,更多相关《智能仪器设计报告.docx(26页珍藏版)》请在冰豆网上搜索。

智能仪器设计报告.docx

智能仪器设计报告

目录

一、设计要求说明

二、电路设计思想

三、硬件设计

(1)温度传感器及其信号调理电路

(2)键盘接口电路与报警电路

(3)显示接口电路

(4)微型打印机接口

(5)总电路设计

四、软件设计

(1)监控程序设计

(2)自检程序设计

(3)A/D转换与计算程序设计

(4)显示子程序设计

(5)键盘处理子程序

(6)打印程序

五、实验感想

六、各芯片引脚及参考文献

七、附录:

程序清单

 

一、设计要求说明

⑴一路水温或环境温度检测,误差:

≤±0.5℃;

⑵温度3位数码显示(XX.X℃);

⑶工作状态指示(如加热器工作指示);

⑷开机自检;

⑸配简单键盘,如温度上、下限临界报警值设置;

⑹配微型打印机接口;

⑺配置通信接口。

二、电路设计思想

实验过程采用自顶向下的设计思想,先考虑整体目标,明确任务,把整体分解为一个个子任务,并考虑子任务之间的关系。

这样就把较大的、复杂的、难解决的问题分解成若干个小的、简单的、易解决的问题。

本系统首先单独设计各个功能模块,分模块测试后,最后将其组合调试,完成整个电路的设计。

整个仪器采用89C51单片机为核心,以MTS102作传感器进行温度信号的采集。

本次设计的系统具有以下几个功能模块:

(1)温度传感器及其信号调理电路

采用MTS102作传感器进行温度采集,并利用激励电路、补偿电路和放大电路构成调理电路,输出与温度成线性关系的电压。

(2)A/D接口电路

利用ADC0809进行AD转换,将输入电压模拟信号转换为数字量,便于单片机处理。

(3)键盘接口电路

利用8279进行键盘扫描,可靠性高,实现高温报警设置、中断打印功能。

(4)温度显示电路

利用四位一体的共阳极数码管显示XX.X的温度显示,减少了段选线的条数,简化电路。

(5)打印机接口电路

采用查询方式判断微型打印机GP16是否忙,若不忙则将单片机传送过来的数据打印。

(6)报警部分

当当前温度值大于键盘所设定的上限值时,发光二极管亮并发出报警声。

三、硬件设计

(1)温度传感器及其信号调理电路

本设计采用MTS102二极管作为温度传感器,激励和放大电路采用REF2000电流源及OPA1013双运放来实现。

设测温范围为0~50℃,调节电阻使50℃时对应为5V,因为该传感器是线性的,则0~50℃对应的输出电压为0~5V。

图3.1温度传感器信号调理电路

(2)A/D采集

AD转换器采用ADc0809,ADc0809是8路的AD转换器,输入电压对应着的它的量化值0~255,也就是对应温度的0~50℃。

本设计采用查询的方式来判断A/D是否转换完毕。

查询到转换完成后,则进行数据读操作。

当AD转换器转换地址和RD非信号同时有效是,选通OE,且转换数据送入到数据总线,由89C51读入。

图3.2A/D采样

(2)键盘接口电路与报警电路

图3.3键盘接口电路

图3.4报警电路

(3)显示接口电路

图3.5显示接口电路

(4)微型打印机接口

微型打印机GP16中有三态锁存器,在CS非和WR非的控制下能锁存CPU总线上得数据,三台门又能与CPU实现隔离,故GP16与8051自间不需要外加锁存器。

图中,BUSY信号接到单片机的P2.1假,用来查询打印机是否空闲,该打印机的选通地址为0FFFFH。

图3.6微型打印机接口电路

(6)总电路设计

将各个模块组合起来,得到如图下的总电路。

图3.7总体电路原理图

四、软件设计

程序设计工作的主要任务是把已经转换的电压量转换为电压量的温度信号经过A/D转换变为数字量,进行判断和报警等处理;然后,再通过编程计算得到的温度的BCD码,最后送LED显示。

1s的定时时间由定时器T0采用中断方式实现。

通过键盘申请外部中断,打印机的工作通过外部中断INT0实现;报警上限值的设定通过外部中断INT1实现。

(1)监控程序设计

监控程序流程图

(2)自检程序设计

为了检查数码管的好坏,需对数码管进行自检。

方法是先令所有字段全亮再令其全灭,检出数码管的输出是否正常。

(3)A/D转换与计算程序设计

1.温度采集与计算程序

本设计中的温度信号是否转换完毕是通过P2.2脚查询EOC输出的方法来判断的。

当EOC=1时,转换完毕。

转换后的数字量放在累加器A中,这是1字节二进制数,先用它与温度上限比较,根据比较的结果设置相应的报警标志位。

比较处理完毕,还需进行物理量与数字量的变换,即标度变换。

标度变换值应该为B=50.0℃/255,为了达到转换精度,即为能精确显示到小数点后一位的值,则计算公式应修改为T=D*10*B=D*10*50.0/255(D为采集的数字量),所以变换后的温度实际最大值为500.

2.温度值转换为BCD码子程序

经过标度变换后的温度值为十六进制,为了满足LED显示,需要变换为BCD码用于显示。

(4)显示子程序设计

(4)键盘处理子程序

S2按下后,申请外部中断INT1,所以S3,S4,S5的键盘处理程序即为外部中断1的中断处理程序。

(5)打印程序

S1按下后,申请外部中断INT0,所以打印程序即为外部中断0的中断处理程序。

五、实验感想

由于考研,此次课程设计的时间很赶,在紧张的二周时间内,我们组完成了软件程序的编写,电路板的搭建和电路的调试。

在这次课程设计中,我主要负责电路调试部分。

虽然之前,我们也进行过类似于传感器设计的课程设计,但是在此次智能仪器设计的过程还是发现了很多问题。

我发现电路搭建的好坏直接决定了电路调试的成功与否,在芯片引脚和对应的管脚之间的连接应该很认真。

比如,在检查数码管的好坏过程中,由于我们采用的是四位一体的ARKSR420561K,和之前的常用的数码管的引脚不一样,所以在调试的时候数码管显示不正确,在改正好连线后显示正常。

通过此次课程设计,我发现了理论联系实际的重要性。

一些本来就仅仅了解或者根本不会的东西,在自己和大家的一起研究和讨论下,也弄懂不少。

学习是个没有止境的过程,在之后的学习过程更应该不断充实自己。

六、各芯片引脚及参考文献

(1)各芯片引脚

(2)参考文献

[1]赵新民,王祁.智能仪器设计基础[M].黑龙江,哈尔并工业大学出版社,1999.

[2]张俊谟.单片机中级教程,原理与应用[M].北京,北京航空航天大学出版社,2002.

[3]袁鹏平,何志刚,罗开玉.快速精通AltiumDesigner6电路图和PCB设计[M].北京,化学工业出版社,2009.

[4]周严.数字化测量系统[M].北京,北京理工大学出版社,2011.

[5]周严.测控系统电子技术[M].北京,科学出版社,2007.

[6]寇戈,蒋立平.模拟电路与数字电路(第2版)[M].北京,电子工业出版社,2009.

八、附录:

程序清单

ORG0000H

SJMPMAIN

ORG0003H

AJMPINT_0

ORG000BH

AJMPTIME

ORG0013H

AJMPINT_1

MAIN:

CLREA

MOVDPTR,#7FFFH;8279命令状态口地址7FFFH

MOVA,#09H

MOVX@DPTR,A

MOVA,#34H;ALE12MHz经20分频得100KHz

MOVX@DPTR,A

MOVA,#0DFH;清零

MOVX@DPTR,A

WAIT:

MOVXA,@DPTR

JBACC.7,WAIT

MOVTMOD,#01H;定时器0模式控制字

MOVTH0,#0FEH

MOVTL0,#0CH

SETBTR0;定时器0启动

SETBIT0;下降沿触发

SETBIT1

SETBEA;全局中断使能

SETBET0;定时器0中断使能

SETBEX0;INT0中断使能

;SETBEX1

MOVDPTR,#3FFFH

MOVA,0F9H

MOVX@DPTR,A

MOVA,0F9H

MOVX@DPTR,A

MOVA,0F9H

MOVX@DPTR,A

MOVA,0F9H

MOVX@DPTR,A

MOVR0,#10H

MOV30H,#0

MOV31H,#0

HI:

AJMP$

INT_0:

PUSHDPH

PUSHDPL

MOVDPTR,#3FFFH

MOVXA,@DPTR

ANLA,#3FH

MOVDPTR,#KEYTAB

MOVCA,@A+DPTR

MOVDPTR,#DISTAB

MOVCA,@A+DPTR

MOVDPTR,#3FFFH

MOVX@DPTR,A

NOP

POPDPL

POPDPH

RETI

TIME:

CLRTR0

AD:

MOVDPTR,#9FFFH

MOVA,#00H

MOVX@DPTR,A

NOP

NOP

NOP

SETBP3.3

EOC:

MOVA,P3

JNBACC.3,EOC

MOVDPTR,#9FFFH

MOVXA,@DPTR

ADDA,30H

MOV30H,A

MOVA,31H

ADDCA,#0

MOV31H,A

DJNZR0,BACK

SWAPA

ANLA,#0F0H

MOV31H,A

MOVA,30H

SWAPA

ANLA,#0FH

ADDA,31H

MOVR0,#10H

MOV30H,#0

MOV31H,#0

MOVB,A

MOVDPTR,#7FFFH

MOVA,#90H

MOVX@DPTR,A

MOVA,B

LCALLCHANGE

MOVTH0,#0FEH

MOVTL0,#0CH

BACK:

SETBTR0

RETI

INT_1:

RETI

CHANGE:

CLREA

MOVB,#51

DIVAB

MOVDPTR,#DISTAB_DOT

MOVCA,@A+DPTR

MOVDPTR,#3FFFH

MOVX@DPTR,A

MOVA,B

MOVB,#10

MULAB

MOV32H,B

MOVB,#51

DIVAB

MOV33H,B

MOVB,32H

MOV32H,A

MOVA,B

XRLA,#0

JZNEXT

MOVA,32H

ADDA,#5

INC33H

MOV32H,A

NEXT:

MOVA,32H

MOVDPTR,#DISTAB

MOVCA,@A+DPTR

MOVDPTR,#3FFFH

MOVX@DPTR,A

MOVA,33H

MOVB,#10

MULAB

MOV32H,B

MOVB,#51

DIVAB

MOV33H,B

MOVB,32H

MOV32H,A

MOVA,B

XRLA,#0

JZNEXT1

MOVA,32H

ADDA,#5

INC33H

MOV32H,A

NEXT1:

MOVA,32H

MOVDPTR,#DISTAB

MOVCA,@A+DPTR

MOVDPTR,#3FFFH

MOVX@DPTR,A

MOVA,33H

MOVB,#10

MULAB

MOV32H,B

MOVB,#51

DIVAB

MOV33H,B

MOVB,32H

MOV32H,A

MOVA,B

XRLA,#0

JZNEXT2

MOVA,32H

ADDA,#5

INC33H

MOV32H,A

NEXT2:

MOVA,32H

MOVDPTR,#DISTAB

MOVCA,@A+DPTR

MOVDPTR,#3FFFH

MOVX@DPTR,A

SETBEA

RET

KEYTAB:

DB01H,02H,03H,0AH

DB00H,00H,00H,00H

DB04H,05H,06H,0BH

DB00H,00H,00H,00H

DB07H,08H,09H,0CH

DB00H,00H,00H,00H

DB0FH,00H,0EH,0DH

DISTAB:

DB0C0H,0F9H,0A4H,0B0H,99H

DB92H,82H,0F8H,80H,90H;0~9

DB088H,083H,0C6H,0A1H,86H,08EH;A~F

;DB08CH,0C1H,0C7H,07FH

DISTAB_DOT:

DB040H,079H,024H,030H,19H

DB12H,02H,078H,00H,10H;0~9

END

_

;调试8279

ORG0000H

LJMPMAIN

ORG0003H

LJMPJIANPAN

ORG0100H

MAIN:

MOVSP,#5FH;设置堆栈指针

CLREA

MOVDPTR,#0BFFFH;指向命令/状态口

MOVA,#00H;置键盘/显示器工作方式命令字

MOVX@DPTR,A;送入命令字

MOVA,#2AH;置分频命令字

MOVX@DPTR,A;送入命令字

MOVA,#40H;置读FIF0RAM命令字

MOVX@DPTR,A;送入命令字

MOV51H,#03H;设定温度为3位

SETBEA

SETBEX1

LOOP:

SJMP$;等待中断

ORG0003H

JIANPAN:

CLREA;关闭所有的中断

PUSHACC

PUSHPSW

MOVR7,51H

MOVDPTR,#0BFFEH;指向数据口

MOVXA,@DPTR;读入键值编码

CJNER7,#03H,ATT2

ATT1:

MOVR0,#70H;键值存放首地址

MOVDPTR,#KEYTAB1;DPTR指向键符表

MOVCA,@A+DPTR;查找键值

MOV@R0,A

DEC51H

SJMPOUT0

ATT2:

CJNER7,#02H,ATT3

MOVR0,#71H

MOVDPTR,#KEYTAB1;DPTR指向键符表

MOVCA,@A+DPTR;查找键值

MOV@R0,A

DEC51H

SJMPOUT0

ATT3:

MOVR0,#72H

MOVDPTR,#KEYTAB1;DPTR指向键符表

MOVCA,@A+DPTR;查找键值

MOV@R0,A

MOV51H,#03H

OUT0:

POPPSW

POPACC

SETBEA;打开所有中断

RETI

KEYTAB1:

DB0FFH,04H,01H,00H,07H,0FFH,0FFH,0FFH

DB0FFH,05H,02H,13H,08H,0FFH,0FFH,0FFH

DB0FFH,06H,03H,0AH,09H,0FFH,0FFH,0FFH

DB0FFH,0CH,0DH,0EH,0BH,0FFH,0FFH,0FFH

;DBFFH,10H,11H,12H,0FH,FFH,FFH,FFH

KEYTAB2:

DB0FFH,04H,07H,0EH,01H,0FFH,0FFH,0FFH

DB0FFH,05H,08H,00H,02H,0FFH,0FFH,0FFH

DB0FFH,06H,09H,0FH,03H,0FFH,0FFH,0FFH

DB0FFH,0BH,0CH,0DH,0AH,0FFH,0FFH,0FFH

END

_;调试键盘

ORG0000H

LJMPMAIN

ORG0013H

LJMPJIANPAN

ORG0100H

MAIN:

MOVSP,#5FH;设置堆栈指针

CLRIT1

CLREA

MOVDPTR,#0BFFFH;指向命令/状态口

MOVA,#0D1H;置总清除命令

MOVX@DPTR,A;总清除命令送入

LP:

MOVXA,@DPTR;读入状态字节

JBACC.7,LP;等待清除

MOVA,#00H;置键盘/显示器工作方式命令字

MOVX@DPTR,A;送入命令字

MOVA,#34H;置二十分频命令字

MOVX@DPTR,A;送入命令字

MOVA,#40H;置读FIF0RAM命令字

MOVX@DPTR,A;送入命令字

MOV90H,#03H;设定温度为3位

SETBIT1

SETBEA

SETBEX1

LOOP:

SJMPLOOP;等待中断

ORG0160H

JIANPAN:

CLREA;关闭所有的中断

PUSHACC

PUSHPSW

MOVR7,90H

MOVDPTR,#0BFFEH;指向数据口

MOVXA,@DPTR;读入键值编码

CJNER7,#03H,ATT2

ATT1:

MOVR0,#10H;键值存放首地址

MOVDPTR,#KEYTAB1;DPTR指向键符表

MOVCA,@A+DPTR;查找键值

MOV@R0,A

DEC90H

SJMPOUT0

ATT2:

CJNER7,#02H,ATT3

MOVR0,#11H

MOVDPTR,#KEYTAB1;DPTR指向键符表

MOVCA,@A+DPTR;查找键值

MOV@R0,A

DEC90H

SJMPOUT0

ATT3:

MOVR0,#12H

MOVDPTR,#KEYTAB1;DPTR指向键符表

MOVCA,@A+DPTR;查找键值

MOV@R0,A

MOV90H,#03H

OUT0:

POPPSW

POPACC

SETBEA;打开所有中断

RETI

KEYTAB1:

DB0FFH,01H,04H,07H,0EH,0FFH,0FFH,0FFH

DB0FFH,02H,05H,08H,00H,0FFH,0FFH,0FFH

DB0FFH,03H,06H,09H,0FH,0FFH,0FFH,0FFH

DB0FFH,0AH,0BH,0CH,0DH,0FFH,0FFH,0FFH

END

 

_

 

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

当前位置:首页 > PPT模板 > 中国风

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

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