智能仪器设计课程设计报告智能温度计的设计.docx
- 文档编号:3196279
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:39
- 大小:931.62KB
智能仪器设计课程设计报告智能温度计的设计.docx
《智能仪器设计课程设计报告智能温度计的设计.docx》由会员分享,可在线阅读,更多相关《智能仪器设计课程设计报告智能温度计的设计.docx(39页珍藏版)》请在冰点文库上搜索。
智能仪器设计课程设计报告智能温度计的设计
引言…………………………………………………………………………………3
1设计任务书……………………………………………………………………3
2方案总体设计与论证………………………………………………………3
3硬件电路设计…………………………………………………………………4
3.1传感器调理电路模块设计………………………………………………………4
3.2A/D转换模块设计………………………………………………………………5
3.3显示模块设计……………………………………………………………………7
3.4键盘模块设计……………………………………………………………………8
3.5状态指示与接口模块设计………………………………………………………8
3.6硬件电路总体设计………………………………………………………………9
4软件设计………………………………………………………………………10
4.1主程序设计……………………………………………………………………11
4.2定时中断服务程序设计………………………………………………………14
4.3外部中断0服务程序设计……………………………………………………16
4.4温度测量子程序设计…………………………………………………………18
4.5温度测量转换子程序设计……………………………………………………21
4.6显示子程序设计………………………………………………………………25
4.7设置键处理子程序设计………………………………………………………27
5参考文献………………………………………………………………………29
程序清单……………………………………………………………………………30
引言
温度是日常生活、工业、医学、环境保护、化工、石油等领域最常遇到的一个物理量。
测量温度的基本方法是使用温度计直接读取温度。
最常见到的测量温度的工具是各种各样的温度计,例如,水银玻璃温度计,酒精温度计,热电偶或热电阻温度计等。
它们常常以刻度的形式表示温度的高低,人们必须通过读取刻度值的多少来测量温度。
利用单片机和温度传感器构成的电子式智能温度计就可以直接测量温度,得到温度的数字值,既简单方便,又直观准确。
1设计任务书
设计一个智能温度计,并使其具有如下特点:
1、一路水温检测,误差:
≤±0.5℃;2、温度3位数码显示(XX.Xmm);3、工作状态指示;4、开机自检;5、配简单键盘;6、配微型打印机接口;7、配置通信接口。
2方案总体设计与论证
图2—1是智能温度计的基本组成方框。
主要由温度传感器(温敏二极管),信号调理电路,A/D转换器(A/D574),单片机(80C51),8279键盘输入,LED显示器以及74164,发光二极管(指示工作状态)等组成。
温度传感器热敏二极管是把温度转换成电压的器件,温度传感器输出电压的大小随温度的高低变化而变化,热敏二极管在0℃—100℃温度变化范围内,电压值的变化范围从1个毫伏到200个毫伏。
信号调理电路的主要功能是把微弱的温度电压信号放大到(0—2.44)伏的范围内,以适应AD574单极性输入的要求。
A/D转换器把放大后的模拟电压信号转换成对应的数字信号。
单片机8051是智能温度计的核心部分,一方面控制A/D转换器实现模拟信号到数字信号的转换,另一方面将采集到温度的数字信号,经过计算处理,得到相应的温度值的BCD码,送到74164,由它驱动LED数码管显示器以数字形式显示测量的温度。
通过键盘输入要报警的温度上限值,由单片机检测哪一位设定的键盘被按下,单片机可以直接将该位寄存器中的内容自动加一,即可实现相应值的设定。
通过缓冲器可以预留出微型打印机的接口和单片机与其他设备的通信接口,由相关的键盘控制打印机与单片机是否连接,并且由相应的键盘控制单片机否是把数据送74164进行显示还是把数据发送至数据端口,与其他设备进行通信。
图2—1系统框图
由上图可知系统硬件基本上由传感器信号调理模块,A/D模块,键盘模块,显示模块,工作状态指示模块,以及接口模块组成。
而软件设计是紧紧围绕系统的硬件结构展开的,软件主要是配合控制硬件完成预期的设计要求,软件的基本模块也是针对上述硬件结构进行相应操作的。
下面具体阐述系统各功能模块的设计。
3硬件电路设计
3.1传感器调理电路模块
测温传感器选用热敏二极管传感器。
这种传感器是利用半导体的温度特性来实现对温度的检测功能。
硅二极管的结电压在温度每升高1℃时,电压下降2mV,它属于PN结型温度传感器,它在0℃—100℃温度范围内表现出良好的线性,尺寸小,热时间常数为0.2—2s,灵敏度高,测温范围是-50℃—150℃。
信号调理电路中包括电桥和放大部分。
将测温二极管放入电桥的一个桥臂,可直接输出传感器相对0℃时的电压输出,再将桥路输出送给AD620的差分输入端,进行50倍的放大,在经过OP07组成的100倍的反相放大电路,使得传感器感受0℃—100℃的温度时,信号调理电路对应输出0—2.44V的电压值,这个电压值正好是AD574的0—10V单端输入电压的范围。
图3—1传感器调理电路模块图
图3—1是传感器调理电路图。
该电路的分分辨率为0.1℃,在0℃—100℃范围内精度可达到±0.5℃。
该电路的调节,先将传感器放入冰水混合物中,调节W1是调理电路的输出为0;再将传感器放入沸水中,调节W2使调理电路的输出为2.44V。
2.44V正好对应AD574输出为999的输入电压(单极性10V输入),这样实现了AD574的输出,正好为外界温度的情况。
这样就实现了这样就实现了对温度的有效测量信号的拾获和放大。
3.2A/D转换模块设计
AD574是12位逐次逼近型的A/D转换芯片。
转换时间为25~35μs。
片内有数据输出寄存器,并有三态输出的控制逻辑。
其运行方式灵活,可进行12位转换,也可作8位转换;转换结果可直接12位输出,也可先输出高8位,后输出低4位。
可直接与8位或16位的CPU接口。
输入可设置为单极性,也可设成双极性。
片内有时钟电路,无需外部时钟。
图3—2A/D转换模块图
图3—2是AD574与单片机接口电路以,它分两次将单极性电压的12位转换结果送给单片机。
具体先由单片机发出控制信号,使A/D转换器启动转换,等待转换结束,单片机再分两次将转换数据读到内存中。
按上图接法AD574是单极性输入,接成0—+10V的接法,按上图向FF7C写数据,就启动AD574转换器开始转换,检测P1.0口即可查看AD574是否转换结束,从FF7D端口即可读出转换结果的高八位,从FF7F端口中即可读出转换结果的低四位。
3.3显示模块设计
利用串口和74164驱动LED显示器工作,采用静态显示方式。
这种方式可避免采用并行I/O接口占用资源较多的缺点。
采用共阳极数码管,因而各位的COM接口接+5V电源,若要显示某字段,则相应的移位寄存器74164输出必须为低电平,由于74164在低电平输出时,允许通过的电流为8mA左右,故不用再加驱动电路了,只需向串口发送要显示三位数的显示控制代码(段码),即可在LED显示器上显示出所要的字符,只需将各位的小数点控制位接低电平,使其显示,其他位的小数点控制位均接高电平即可,注意加限流电阻。
图3—3显示模块原理图
3.4键盘模块设计
因为本设计中需要的按键不多,故设计采用独立式按键,分别占用P1.4,P1.5,P1.6和P1.7口。
它们分别实现选择是正常运行还是设置模式的功能键,温度上限十位的设置键,温度上限个位的设置键以及温度上限的十分位的设置键。
键盘的防抖动可有软件来实现,每个引脚上都引入上拉电阻。
图3—4键盘模块原理图
3.5状态指示与接口模块设计
当测量温度达到了上限温度时,P2.0口输出高电平,驱动报警二极管发光,指示温度已经超过上限值,当温度下降到设定值以下是,P2.0变成低电平,报警解除。
当按下打印摁键时,单片机响应外部中断0,进而要打印的数码发送至打印机的数据口,进行打印。
打印时,需要先将要打印的字符转换为其ASCII码,将此ASCII送入打印机数据口进行打印。
需要注意要将小数点也打印出来,打印完十位和个位再将小数点打印出来,再把十分位进行打印。
而扩展接口采用简单的三线式接口,一线为接收数据,一线为发送数据,还有一线为查询状态。
由P2.6控制其导通,还是高阻的状态。
图3—5打印接口原理图
图3—6扩展口及工作状态原理图
3.6硬件电路总体设计
将上述功能模块合理有序连接即构成整体图,电路图参见图3—7。
图3—7硬件电路总体设计原理图
4软件设计
4.1主程序设计
4.1.1主程序流程图
图4—1主程序流程图
4.1.2主程序汇编语言设计
Org0000H;主程序入口地址
KS:
LJMPSTART
ORG0003H;外部中断0服务程序入口地址
LJMPINT_0
ORG000BH;定时器0中断服务程序入口地址
LJMPINT_T0
ORG100H
TAB1:
;字符段码表格
DB0C0H,0F9H,0A4H,0B0H,99H
DB92H,82H,0F8H,80H,90H,88H
DB83H,0C6H,0A1H,86H,0FFH
START:
MOVSP,#60H
CLREA
MOVR0,#3EH;运行/设置状态寄存器清零
MOV@R0,#0H
DECR0
MOV@R0,#0H
DECR0
MOV@R0,#0H
MOVR0,#20H;20H-22H放初始温度设置上限值50.0
MOV@R,#05H
INCR0
MOV@R0,#0H
INCR0
MOV@R0,#00H
SETBP1.4;设置P1.4—P1.7为输入端口
SETBP1.5
SETBP1.6
SETBP1.7
MOVR2,#03H;在LED上显示888
DL0:
MOVA,#80H;把字符“8”的段码送给累加器A
MOVSBUF,A;累加器A循环三次把段码发送到串口,显示
DL1:
JNBTI,DL1
CLRTI
DJNZR2,DLO
LCALLDELAY;延时
MOVR2,#03H;关断所有LED
DL0:
MOVA,#80H;把关断的段码送给累加器A
MOVSBUF,A;累加器A循环三次把段码发送到串口,关断LED
DL1:
JNBTI,DL1
CLRTI
DJNZR2,DLO;以上完成了自检
MOVTHOD,#21H;设置定时器工作方式
MOVTL0,#77H;设置定时器初值
MOVTHO,#OECH
SETBTRO;开定时器中断
SETBETO
SETBIT;开外部中断0
SETBEX0
SETBEA;开总中断
STA0:
LJMPSTA0;等待中断
4.2定时中断服务程序设计
4.2.1定时中断服务程序流程图
图4—2定时中断服务程序流程图
4.2.2定时中断服务汇编语言程序设计
INT_T0:
CLREA;关中断
CLRTR0
MOVTL0,#77H;重置定时器初值
MOVTH0,#0E0H
MOVR0,#3DH
CJNE@R0,55H,INT_T01
LCALLDISP2
MOVR6,#20H
LCALLDELAY
LCALLSTA3
LJMPINT_T04
INT_T01:
MOVR0,#3EH
LCALLDISP1
MOVR6,#40H
LCALLDELAY
LJMPINT_T03
INT_T02:
LCALLDISP0
MOVR6,#20H
LCALLDELAY
CJNER2,#3CH,INT_T04
MOVR0,#3CH
MOV@R0,#55H
INT_T03:
LCALLSTA2
INT_T04:
SETBTR0
SETBET0
SETBEA
RETI
4.3外部中断0服务程序设计
4.3.1外部中断0程序流程图
图4—3外部中断0服务程序流程图
4.3.2外部中断0汇编语言程序设计
INT_0:
CLREX0
MOVDPTR,#7FFFH
LOOP:
MOVX A,@DPTR
JBACC.7,LOOP
MOVR1,#60H
MOVA,@R1
ADDA,#30H
MOVX@DPTR,A
INCR1
MOVA,@R1
ADDA,#30H
MOVX@DPTR,A
INCR1
MOVA,#27H
MOVX@DPTR,A
MOVA,@R1
ADDA,#30H
MOVX@DPTR,A
SETBEX0
RETI
4.4温度测量子程序设计
4.4.1温度测量子程序流程图
图4—4温度测量子程序流程图
4.4.2温度测量子程序汇编语言设计
CL0:
MOVR0,#40H
CLRA
CLRC
MOV@R0,A
INCR0
MOV@R0,A
MOVR0,#40H
CLRP3.7
CLRP3.6
MOVDPTR,#FF7CH
MOVA,#0H
MOVX@DPTR,A
HD:
JBP1.0,HD
MOVDPTR,#0FF7DH
MOVXA,@DPTR
MOVR7,A
MOVDPTR,#0FF7FH
MOVXA,@DPTR
ANLA,#0F0H
MOVR6,A
SWAPA
MOVR6,A
MOVA,R7
SWAPA
MOVR7,A
ANLA,#F0H
ANLA,R6;低八位
MOVR6,A
MOVA,R7
ANLA,#0FH;高八位(最高四位为0)
MOVR7,A
MOVA,R6
MOVR0,40H
MOVA,R6
MOV@R0,A
INCR0
MOVA,R7
MOV@R0,A
CLRC
LCALLBIJIAO
CL3:
JBF1CL4
CLRP2.0
AJMPCL2
CL4:
SETBP2.0
AJMPCL2
CL2:
RET
BIJIAO:
CLRC
CLRF1
MOVA,5BH
SUBBA,41H
JCBIG1
CLRC
MOVA,5AH
SUBBA,40H
JCBIG1
CLRF1
RET
BIG1:
SETF1
RET
4.5温度测量转换子程序设计
4.5.1温度测量转换子程序流程图
图4—5温度测量转换子程序流程图
4.5.2温度测量转换子程序汇编语言设计
STA2:
LCALLCOMP
LCALLCL0
LCPJJLZH0
COMP:
MOVR0,#20H
MOVA,@R0
MOVB,#64H
MULAB
MOVRO,#5AH
MOV@R0,A
INCR0
MOV@R0,B
MOVA,21H
MOVB,#0AH
MULAB
CLRC
ADDA,5AH
MOV5AH,A
MOVA,#0H
ADDCA,5BH
MOV5BH,A
CLRC
MOVA,22H
ADDA,5AH
MOV5AH,A
MOVA,#0H
ADDCA,5BH
MOV5BH,A
ZH0:
CLRA
MOVR7,40H
MOVR6,41H
MOVR3,A
MOVR4,A
MOVR5,A
MOVR2,#10H
HB3:
MOVA,R7
RLCA
MOVR7,A
MOVA,R6
RLCA
MOVR6,A
MOVA,R5
ADDCA,R5
DAA
MOVR5,A
MOVA,R4
ADDCA,R4
DAA
MOVR4,A
MOVA,R3
ADDCA,R3
MOVR3,A
DJNZR2,HB3
MOVA,R5
ANLA,#0FH
MOV6AH,A
MOVA,R5
ANLA,#F0H
SWAPA
MOV6BH,A
MOVA,R4
ANLA,#0FH
MOV6CH,A
RET
4.6显示子程序设计
4.6.1显示子程序流程图
图4—6显示子程序流程图
4.6.2显示子程序汇编语言设计
DISP1:
SETBRS0
PUSHACC
PUSHDPH
PUSHDPL
MOVR2,#03H
MOVR0,#6AH;
;(若显示设置值则上一条语句改为MOVR0,#22H)
DL0:
MOVA,@R0
MOVDPTR,#TAB1
MOVCA,@A+DPTR
MOVSBUF,A
DL1:
JNBTI,DLI
CLRTI
INCRO
;(若显示设置值则此处改为DECR0)
DJNZR2,DLO
CLRRS0
POPDPL
POPDPH
POPACC
RET
4.7设置键处理程序设计
4.7.1设置键处理子程序流程图
图4—7设置键处理子程序流程图
4.7.2设置键处理子程序流程图
CHENG:
JBP1.7,CHE1
LCALLDELAY2
JBP1.7,CHE1
MOVRO,#22H
CJNE@R0,#09H,CHE4
MOV@R0,#0H
AJMPCHE5
CHE1:
JBP1.6,CH2
LCALLDELAY2
JBP1.6,CHE2
MOVR0,#21H
CJNE@R0,#09,CHE4
MOV@RO,#OH
AJMPCHE5
CHE2:
JBP1.5,CHE5
LCALLDELAY2
JBP1.5,CHE5
MOVR0,#20H
CJNE@R0,#09H,CHE4
MOV@R0,#0H
AJMPCHE5
CHE4:
INCRO
AJMPCHE5
CHE5:
MOVR0,#3DH
MOV@R0,#55H
MOVR0,#3EH
MOVR0,#0H
RET
5参考文献
<1>石晓晶智能仪器设计讲义,南京:
南京理工大学机械学院,2009
<2>石晓晶智能仪器设计实验指导书,南京:
南京理工大学机械学院,2009
<3>张迎新单片机初级教程,北京:
北京航空航天大学出版社,2006
<4>周杏鹏仇国富 现代检测技术,北京:
高等教育出版社,2003
<5>朱蕴璞孔德仁 传感器原理及应用,北京:
国防工业出版社,2005
<6>周严测控系统电子技术,北京:
科学出版社,2007
<7>赵新民智能仪器设计基础,哈尔滨:
哈尔滨工业大学出版社,2009
<8>张国雄测控电路,北京:
机械工业出版社,2008
<9>寇戈蒋立平模拟电路与数字电路,北京:
电子工业出版社,2006
程序清单:
Org0000H;主程序入口地址
KS:
LJMPSTART
ORG0003H;外部中断0服务程序入口地址
LJMPINT_0
ORG000BH;定时器0中断服务程序入口地址
LJMPINT_T0
ORG100H
TAB1:
;字符段码表格
DB0C0H,0F9H,0A4H,0B0H,99H
DB92H,82H,0F8H,80H,90H,88H
DB83H,0C6H,0A1H,86H,0FFH
START:
MOVSP,#60H
CLREA
MOVR0,#3EH;运行/设置状态寄存器清零
MOV@R0,#0H
DECR0
MOV@R0,#0H
DECR0
MOV@R0,#0H
MOVR0,#20H;20H-22H放初始温度设置上限值50.0
MOV@R,#05H
INCR0
MOV@R0,#0H
INCR0
MOV@R0,#00H
SETBP1.4;设置P1.4—P1.7为输入端口
SETBP1.5
SETBP1.6
SETBP1.7
MOVR2,#03H;在LED上显示888
DL0:
MOVA,#80H;把字符“8”的段码送给累加器A
MOVSBUF,A;累加器A循环三次把段码发送到串口,显示
DL1:
JNBTI,DL1
CLRTI
DJNZR2,DLO
LCALLDELAY;延时
MOVR2,#03H;关断所有LED
DL0:
MOVA,#80H;把关断的段码送给累加器A
MOVSBUF,A;累加器A循环三次把段码发送到串口,关断LED
DL1:
JNBTI,DL1
CLRTI
DJNZR2,DLO;以上完成了自检
MOVTHOD,#21H;设置定时器工作方式
MOVTL0,#77H;设置定时器初值
MOVTHO,#OECH
SETBTRO;开定时器中断
SETBETO
SETBIT;开外部中断0
SETBEX0
SETBEA;开总中断
STA0:
LJMPSTA0;等待中断
;******************************************************************************
STA2:
LCALLCOMP
LCALLCL0
LCALLZH0
STA3:
LCALLSET0
JNBF0,STA4
LCALLCHENG
STA4:
RET
;******************************************************************************
CHENG:
JBP1.7,CHE1
LCALLDELAY2
JBP1.7,CHE1
MOVRO,#22H
CJNE@R0,#09H,CHE4
MOV@R0,#0H
AJMPCHE5
CHE1:
JBP1.6,CH2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 仪器 设计 课程设计 报告 温度计