全国首批高职院校温控检测专用周报告.docx
《全国首批高职院校温控检测专用周报告.docx》由会员分享,可在线阅读,更多相关《全国首批高职院校温控检测专用周报告.docx(39页珍藏版)》请在冰豆网上搜索。
![全国首批高职院校温控检测专用周报告.docx](https://file1.bdocx.com/fileroot1/2023-2/6/b48ca113-0f70-41c7-91e9-7b09e09229bd/b48ca113-0f70-41c7-91e9-7b09e09229bd1.gif)
全国首批高职院校温控检测专用周报告
四川工程職業技術學院
电气信息工程系
“微机原理与接口技术”实训专用周报告册
课题名称:
温度测量
班级:
电子09-1班
姓名:
肖和春
贾瑶
学号:
200912020180
200912020266
指导老师:
杨晓艳
施芸
日期:
2011年3月
摘要
在这次“微机原理与接口技术实训专用周”过程中,我们研究的课题是温度测量。
而对于温度测量,现实生活中有广泛的应用。
如:
电力、电讯设备过热故障检测;各类运输工具组件的过热检测;医疗的温度测试;化工、机械设备的过热安全检测等方面。
就温度测量而言,有多种方法。
常见的方法主要有利用热敏电阻、热电偶和AD7416进行温度测量。
但是采用热敏电阻测温,其精度、重复性、可靠性都较差,而热电偶可满足的温度测量范围在40度左右至90度左右的测量范围。
对于AD7416,其输出信号全数字化,便于单片机处理及控制,节省了传统测温方法的外围电路,性能可靠,温度精确。
因此,本次专用周利用了AD7416来完成课题。
对于本次课题,我们需要完成的任务有三个:
第一步,数码管整数显示;第二步,温度报警;第三,LCD显示。
利用AD7416进行温度测量设计方案的原理:
AD7416中的带间隙温度传感器感受外界温度,并通过A/D转换器将温度数字化存在于温度值寄存器,然后通过送回I²C单片机处理数据,最后数码管或LCD显示。
封面……………………………………………………………1
摘要……………………………………………………………2
目录……………………………………………………………3
一、课题要求…………………………………………………4
二、设计方案原理阐述………………………………………4
三、I²C总线技术……………………………………………6
四、AD7416介绍……………………………………………13
五、硬件描述………………………………………………16
六、流程图…………………………………………………19
七、性能说明………………………………………………22
八、附录……………………………………………………23
九、参考文献………………………………………………34
一十、专用周总结……………………………………………35
一、课题要求
1、基本内容
1)利用单片机、AD7416温度传感器组成测温系统,并将温度值以整数显示在数码管上。
2)程序中设定一个温度值,当温度值超过设定的范围时进行报警。
2、扩展内容
1)温度设定值可以通过键盘设定。
2)可以显示小数。
二、设计方案原理阐述
本次“微机原理与接口技术实训专用周”利用P89V51RD2单片机、AD7416数字温度传感器构成的测温系统并利用I²C总线的串行扩充技术进行温度测量。
首先,AD7416数字温度传感器中的带间隙温度传感器感受外界温度,并通过A/D转换器将温度数字化并存入温度值寄存器,然后P89V51RD2单片机通过I²C总线读回温度值并处理数据,最后数码管(或LCD)显示或温度报警。
系统硬件结构框图:
软件程序设计框图:
三、I²C总线技术
1、I²C概述
I²C总线是芯片间的串行数据传输总线,2根线(SDA、SCL)即可实现完善的双全工同步数据传送,能够十分方便地构成多机系统和外围器件扩展系统。
I²C器件是把I²C的协议植入器件的I/O接口。
使用时器件直接挂到I²C总线上,这一特点给用户带来了很大的方便。
一般具有I²C总线的器件其SDA和SCL管脚都是漏极开路(或集电极开路)输出结构。
因此实际使用时,SDA和SCL信号线都必须要加上拉电阻Rp(Pull-UpResistor)。
上拉电阻一般取值3~10KΩ。
开漏结构的好处是:
(1)当总线空闲时,这两条信号线都保持高电平,不会消耗电流。
(2)电气兼容性好。
上拉电阻接5V电源就能与5V逻辑器件接口,上拉电阻接3V电源又能与3V逻辑器件接口。
(3)因为是开漏结构,所以不同器件的SDA与SDA之间、SCL与SCL之间可以直接相连,不需要额外的转换电路。
I²C总线不需要额外的地址译码器和片选信号。
多个具有I²C总线接口的器件都可以连接到同一条I²C总线上,它们之间通过器件地址来区分。
主机是主控器件,它不需要器件地址,其它器件都属于从机,要有器件地址。
必须保证同一条I²C总线上所有从机的地址都是唯一确定的,不能有重复,否则I²C总线将不能正常工作。
一般从机地址由7位地址位和一位读写标志R/W组成,7位地址占据高7位,读写位在最后。
读写位是0,表主机将要向从机写入数据;读写位是1,则表示主机将要从从机读取数据。
I²C起始条件和停止条件示意图
2、总线节点的寻址方式
挂接到总线上的所有外围器件、外设接口都是总线的节点。
在任何时刻总线只有一个主控器件(主节点)实现总线的控制操作,对总线的其他节点寻址,分时实现点一点的数据传送。
因此,总线上每个节点都有一个固定的节点地址。
I²C总线上的单片机都可以成为主节点,其器件地址由软件给定,存放在I²C总线的地址寄存器件,称为主器件的从地址。
在I²C总线的多主系统中,单片机作为从节点时,其从地址才能有意义。
I²C总线上所有的外围器件都有规范的器件地址。
器件地址由7位组成,它和1位方向位构成了I²C总线器件的寻址字节SLA。
寻址字节格式如下:
器件地址(DA3、DA2、DA1、IDA0)是I²C总线外围接口器件的固有的地址编码,器件出厂时,就已给定。
例如,AD7416的器件地址是1001,4位LED驱动器SAA1064的器件地址0111。
引脚地址(A2、A1、A0)是由I²C总线外围器件固有的地址端口A2、A1、A0在电路中接电源或接地的不同,形成的地址数据。
数据方向(R/W):
数据方向位规定了总线上主节点对从节点的数据传送方向,R—接收,W—发送。
3、I²C总线时序
a)I²C总线上的数据传递时序
I²C总线上数据传递时序如下图,总线上的每一帧数据均为一个字节。
但启动I²C总线后,传送的字节数没有限制,只要求每传送一个字节后,对方回应一个应答位。
在发送时,首先发送的是数据的最高位。
每次传送开始有起始信号,结束时有停止信号。
在总线传送完一个字节后,可以通过对时钟线的控制,使传送暂停。
例如,当某个外围器件接收N个数据后,需要一段处理时间,以便继续接收以后的字节数据,这时可在应答信号后,使SCL变低电平,控制总线暂停;如果主节点要求总线暂停,也可以时钟线保持低电平,控制总线暂停。
I²C总线的数据传送时序图
b)总线上的时序信号
I²C总线为同步传输总线,总线信号完全与时钟同步。
I²C总线上与数据传送有关的信号有起始信号(S)、终止信号(P)、应答信号(A)以及位传送信号等,如下图所示。
I²C总线上的信号
①起始信号(S)在时钟SCL为高电平时,数据线SDA出现由高电平向低电平变化时,启动I²C总线。
2终止信号(P)时钟为高电平时,数据线出现由低到高的电平变化时,将停止I²C数据传送。
3应答信号(A)I²C总线上第9个时钟脉冲对应于答位。
相应数据线上低电平时为“应答”信号(A),高电平时为“非应答”
。
4数据位传送。
在I²C总线启动后或应答信号的第1—8个时钟脉冲对应于一个字节的8位数据传送。
脉冲高电平期间,数据串行转送,低电平期间为数据做准备,允许总线上数据电平交换。
3、主方式下的数据操作格式
I²C总线的数据操作格式是以条块图解形式来表达,I²C总线的一次完整的数据传送过程。
I²C总线上一次完整的数据传送如图所示。
其完整的数据操作包括起始(S)、发送寻址字节(SLAR/W)、应答、发送数据、应答……直到终止(P)。
I²C总线上一次完整的数据传送过程
对于不同方式下的操作略有不同,如果图中的时序过程表示成下述操作格式,I²C总线的数据传送过程便一目了然。
a)主发送的数据操作格式
主节点向由寻址字节指定的外围器件节点发送N个字节数据,整个数据传送过程中数据传送方向不变。
数据操作格式如下:
b)主接收的数据操作格式
主节点要求被寻址的外围器件节点发送N个字节数据。
数据操作格式如下:
在主接收中第一个应答是从节点接收到寻址字节SLAR后发回的应答位,其余的应答位都是由主控器在接收到数据后向从节点发出的应答位。
4、总线时序及数据操作模拟
a)典型信号的时序要求
I²C总线数据传送时,有起始位(S)、终止位(P)、发送“0”及应答位(A)、发送“1”及非应答位等信号。
按照典型I²C总线传送速率要求,这些信号时序如下图所示。
b)I²C总线典型信号的模拟子程序
对于I²C总线的典型信号,可以用指令操作来模拟其时序过程。
设虚拟I²C总线的虚拟端口为,VSDA数据线和VSCL时钟线。
假如对于80C51单片机的系统时钟为6MHZ,相应的单周期指令速度为2us。
起始(STA)、终止(STOP)、发送应答位(MACK)、发送非应答位(MNACK)的模拟子程序如下:
I²C总线数据传送典型信号时序
启动STA
STA:
SETBVSDA
SETBVSCL
NOP
NOP
CLRVSDA
NOP
NOP
CLRVSCL
RET
停止STOP
STOP:
CLRVSDA
SETBVSCL
NOP
NOP
SETBVSDA
NOP
NOP
CLRVSDA
CLRVSCL
RET
发送应答位MACK
MACK:
SETBVSDA
SETBVSCL
NOP
NOP
CLRVSCL
CLRVSDA
RET
发送非应答位MACK
MACK:
SETBVSDA
SETBVSCL
NOP
NOP
CLRVSCL
CLRVSDA
RET
四、AD7416介绍
1、AD7416概述
AD7416是装在一个芯片中的完整的温度监视系统。
它包括一个带隙温度传感器和一个用来监视并将温度的高低数字化的10位AD转换器,精度可达0.25℃,还有一个门限可编程的用来比较测量温度的比较器。
片内寄存器可以用来设定高、低温度门限,并提供一个漏极开路的“超温指示器”(OTI)输出,当超过设定的门限时OTI输出即有效。
一个配置寄存器可以设定OTI的输出(高有效或低有效)和它的工作方式(比较或中断)。
一个可编程的故障排队计数器可以设置允许的超出门限的测量次数,这个次数是在触发被设置的OTI输出以前必须发生的,以避免在噪声环境中OTI输出的虚假触发。
一个与I²C兼容的串行接口可以向AD7416的寄存器写入和读出。
AD7416串行总线地址的最低3位(LSB)是可选的,这就可以在一条总线上连接多达8个AD7416。
AD7416的宽电源电压范围(2.7V至5.5V)低电源电流(典型为0.2mA)和I²C兼容的接口,使得它对多种应用是理想的,包括个人计算机、办公设备和家用电器。
该器件可提供8引脚的SO-8和小型SOIC封装。
2、特点:
a)10位AD转换器
b)漏极开路超温掉电输出,可以实现“线与”
c)I²C兼容的串行接口
d)可选的串行总线地址,允许在单一总线上连接多达8个AD7416
e)低功耗掉电方式(典型2uA)
f)节省空间的SO-8封装
g)400us更新速度
h)55°C至+125°C温度测量范围
i)是LM75的升级替换产品
3、
内部功能框图及引脚配置
4、功能说明
AD7416是在一个单片中有完整的数字温度传感器和热监视系统的芯片。
它包括以下功能块:
a)带隙温度传感器和10位模数转换器,它将温度传感器的输出电压转换成10位的数字量(2的补码)。
b)可设点的比较器(SetpointComparator),它比较测量温度与设定的高(TOTI)和低(THYST)门限,并在超温指示器(OTI)输出一个超出极限条件标示。
c)寄存器用来储存测量值、设定比较器门限和保存器件的配置信息。
一个I²C兼容的串行总线用来与器件通信。
温度寄存器(地址00H)
温度值寄存器是一个16位只读寄存器,它的高10位以2的补码格式储存由AD转换器送来的10位温度读数。
位5至0未用,如下表所示。
温度值寄存器
AD转换器的全部理论范围-128℃至+127℃,但实际上温度的测量范围是受器件的工作温度范围限制的。
五、硬件描述
1、单片机电路及复位电路:
提供调试的平台,及调试时可以位。
2、通信串口:
实现计算机与实验小车的连接,可以进行程序的调试、指令及数据的传输。
3、电源电路:
给单片机提供电源,使其正常工作。
4、数码管(LED)显示电路:
与单片机接口连接,显示经处理后的数据。
5、扬声器:
测量温度超出设定温度是,扬声器蜂鸣报警(本次课题是D8闪烁)。
6、外围接口:
实现外围电路与主电路之间的连接,J4是AD7416电路的接口,J13是LCD电路板的接口,是信号采集和数据显示的重要电路组成部分。
7、AD7416:
采集外界温度,通过J4接口将数据传给单片机。
六、流程图
1、LED整数显示
软件设计思路:
由数字温度传感器AD7416采集外界温度,经过AD转换后储存在温度寄存器里面,再通过SDA、SCL将数据传送给单片机,由单片机处理后,在数码管(LED)上显示整数部分。
2、LCD整数显示
软件设计思路:
由数字温度传感器AD7416采集外界温度,经过
AD转换后储存在温度寄存器里面,再通过SDA、SCL将数据传送给单片机,由单片机处理后,在液晶(LCD)上显示整数和小数,当外界温度超出设定范围时报警(D8闪烁)。
七、性能说明
在测量与仪器仪表中,温度的检测几乎成为必不可少的一部分。
传统的模拟温度传感器如AD590因外围电路复杂、需调零等缺点而受到使用限制,用数字温度传感器设计各种控制系统必将成为发展趋势。
本次课题采用的是P89V51RD2型单片机、数字温度传感器AD7416以及1602LCD液晶显示屏。
P89V51RD2是PHILIPS公司推出的51系列的新型微控制器,它包含64KBFlash和1024字节的数据RAM,支持并行和串行的在系统编程(ISP)和在应用中编程(IAP),具有SPI和增强型UART,包含一个PCA(可编程计数器阵列),具有PWM和捕获/比较功能。
该芯片有一个最突出的特点就是带有自调试功能(SoftICE),该功能使得芯片可以在KeilµVision2编程环境下用KeilMonitor-51Driver直接调试程序。
AD7416是装在一个芯片中有完整的数字温度传感器和热监测系统的芯片。
与其它数字温度传感器相比具有体积小、编程简单等优点,在实际应用中发现其使用简单、测量精度较高。
1602字符型LCD应用广泛,在本次课题中可以直接连接到单片机的接口上面,使用时也方便,操作也比较简单。
经过反复调试,本产品的性能比较优良,温度测量结果比较可靠,也可以实现温度的报警。
八、附录
1、硬件总图:
2、程序清单:
数码管(LED)显示:
ORG0000H
SJMPMAIN
MAIN:
LCALLSTART;启动I²C
MOVA,#90H
LCALLWRBYT
LCALLMACK
MOVA,#00H
LCALLWRBYT
LCALLMACK
LCALLSTOP;停止I²C
LCALLSTART;启动I²C
MOVA,#91H
LCALLWRBYT
LCALLMACK
LCALLRDBYT
MOVR7,A
LCALLMNACK
LCALLSTOP;停止I²C
LCALLDELAY
MOVDPTR,#TAB
MOVA,R7
MOV30H,R7
MOVR1,30H
CLRC
CLRA
L0:
INCA
DAA;十进制调整
DJNZR1,L0
LCALLDELAY
CJNEA,#20H,LOOP0
LOOP0:
JCLOOP1
CLRP3.2
LCALLDEL
SETBP3.2
LCALLDEL
LJMPMAIN
LOOP1:
MOV50H,A
MOV51H,A
MOVA,50H
ANLA,#0F0H;屏蔽低位
SWAPA;高低字节交换
MOVCA,@A+DPTR
MOV31H,A
SETBP1.1
SETBP1.2
SETBP1.3
CLRP1.0
MOVP0,31H
LCALLDELAY
MOVA,51H
ANLA,#0FH;屏蔽高位
MOVCA,@A+DPTR
MOV33H,A
SETBP1.0
SETBP1.2
SETBP1.3
CLRP1.1
MOVP0,33H
LCALLDELAY
LJMPMAIN
TAB:
DB03H,9FH,25H,0DH,99H
DB49H,41H,1FH,01H,09H
DELAY:
MOV40H,#10
DEL0:
MOVR4,#10
DEL1:
MOVR5,#10
DEL2:
DJNZR5,DEL2
DJNZR4,DEL1
DJNZ40H,DEL0
RET
DEL:
MOV60H,#50
DEL7:
MOV61H,#20
DEL8:
MOV62H,#123
DEL9:
DJNZ62H,DEL9
DJNZ61H,DEL8
DJNZ60H,DEL7
RET
START:
SETBP2.1
SETBP2.0
NOP
NOP
NOP
NOP
CLRP2.1
NOP
NOP
NOP
NOP
CLRP2.0
RET
STOP:
CLRP2.1
SETBP2.0
NOP
NOP
NOP
NOP
SETBP2.1
NOP
NOP
NOP
NOP
CLRP2.1
CLRP2.0
RET
MACK:
CLRP2.1
SETBP2.0
NOP
NOP
NOP
NOP
CLRP2.0
SETBP2.1
RET
MNACK:
SETBP2.1
SETBP2.0
NOP
NOP
NOP
NOP
CLRP2.0
CLRP2.1
RET
WRBYT:
MOVR0,#08H
WLP:
RLCA
JCWR1
SJMPWR0
WLP1:
DJNZR0,WLP
RET
WR1:
SETBP2.1;发送1程序段
SETBP2.0
NOP
NOP
NOP
NOP
CLRP2.0
CLRP2.1
AJMPWLP1
WR0:
CLRP2.1;发送0程序段
SETBP2.0
NOP
NOP
NOP
NOP
CLRP2.0
AJMPWLP1
RET
RDBYT:
MOVR0,#08H
RLP:
SETBP2.1
SETBP2.0
MOVC,P2.1
MOVA,R2
CLRP2.0
RLCA
MOVR2,A
CLRP2.0
DJNZR0,RLP
RET
END
液晶(LCD)显示及报警:
RSEQUP2.7
RWEQUP2.6
EEQUP2.5
ORG0000H
SJMPMAIN
MAIN:
LCALLSTART;启动I²C
MOVA,#90H
LCALLWRBYT
LCALLMACK
MOVA,#00H
LCALLWRBYT
LCALLMACK
LCALLSTOP;停止I²C
LCALLSTART;启动I²C
MOVA,#91H
LCALLWRBYT
LCALLMACK
LCALLRDBYT
MOVR7,A
LCALLMACK
LCALLRDBYT
MOVR6,A
LCALLMNACK
LCALLSTOP;停止I²C
MOVDPTR,#TAB
MOVA,R7
MOV30H,R7
MOVR1,30H
CLRC
CLRA
L0:
INCA
DAA
DJNZR1,L0
CJNEA,#20H,LOOP0
LOOP0:
JCLOOP1
CLRP3.5
LCALLDELAY
SETBP3.5
LOOP1:
MOV39H,A
MOV38H,A
;MOVP0,#01H;清屏
;LCALLZLIN
MOVP0,#38H;16*2显示
LCALLZLIN
MOVP0,#0CH
LCALLZLIN
MOVP0,#06H
LCALLZLIN
MOVP0,#80;第一行数据首地址
LCALLZLIN
MOVA,#54H;T
LCALLSJIN
MOVA,#4FH;O
LCALLSJIN
MOVA,#64H;d
LCALLSJIN
MOVA,#61H;a
LCALLSJIN
MOVA,#79H;y
LCALLSJIN
MOVA,#20H;空格
LCALLSJIN
MOVA,#20H;空格
LCALLSJIN
MOVA,39H;整数高位
SWAPA
ANLA,#0FH
ADDA,#30H
LCALLSJIN
LCALLDEL
MOVA,38H;整数低位
ANLA,#0FH
ADDA,#30H
LCALLSJIN
LCALLDEL
MOVA,#2EH;小数点
LCALLSJIN
LCALLDEL
MOVA,R6;小数部位
ANLA,#0C0H;与低八位的高两位相与
CJNEA,#00H,D1;小数位0
MOVR5,A
SJMPQ
D1:
CJNEA,#40H,D2;小数位0.25
MOVA,#25H
MOVR5,A
SJMPQ
D2:
CJNEA,#80H,D3;小数位0.5
MOVA,#50H
MOVR5,A
SJMPQ
D3:
MOVA,#75;小数位0.75
MOVR5,A
Q:
MOVA,R5
SWAPA
ANLA,#0FH
ADDA,#30H
LCALLSJIN
MOVA,R5
ANLA,#0FH
ADDA,#30H
LCALLSJIN
MOVA,#0DFH
LCALLSJIN
MOVA,#43H
LCALLSJIN
MOVP0,#0C0H
LCALLZLIN
MOVA,#4AH
LCALLSJIN
MOVA,#69H
LCALLSJIN
MOV