毕业设计20带存贮及通讯功能的数字温度计.docx
《毕业设计20带存贮及通讯功能的数字温度计.docx》由会员分享,可在线阅读,更多相关《毕业设计20带存贮及通讯功能的数字温度计.docx(35页珍藏版)》请在冰豆网上搜索。
毕业设计20带存贮及通讯功能的数字温度计
课题名称
带存贮及通讯功能的数字温度计
指导教师
职称
助教
指导教师
职称
专业名称
班级
学生姓名
学号
课题需要完成的任务:
部分班级已在专用周中利用单片机做过数字温度计,本。
毕业设计课题是在次基础上,增加与PC机的通讯,把测量到的数据进行存贮,并以图线显示。
1)温度测量。
2)温度显示
3)温度存贮。
4)温度的图表显示。
课题计划:
2月27日~3月12日:
熟悉课题,掌握硬件设计方法,制定方案,总体设计;
3月12日~3月20日:
绘制原理图及PCB图;编写程序;
3月20日~3月30日:
制作实物,调试效果;
3月31日~4月14日:
编写毕业设计论文,完成毕业设计,交毕业论文,准备毕业答辩。
计划答辩时间:
2008年4月15日~2008年4月17日
电子信息技术系(部、分院)
2007年12月13日
目录
1.技术要求…………………………………………………………………………………1
1.1功能……………………………………………………………………………………1
1.2性能……………………………………………………………………………………1
2.工作原理…………………………………………………………………………………1
2.1.1硬件框图…………………………………………………………………………1
2.1.2主流程图…………………………………………………………………………2
2.2各功能块原理…………………………………………………………………………2
2.2.1PT热敏电阻……………………………………………………………………2
2.2.2ADC0809摸数转换……………………………………………………………6
2.2.389C51………………………………………………………………………………7
2.2.4ZLG7289…………………………………………………………………………8
2.2.5信号处理过程(流程)………………………………………………………13
2.2.6子流程图…………………………………………………………………………13
3.原理图……………………………………………………………………………………14
4.印制板图…………………………………………………………………………………15
4.1装配图………………………………………………………………………………15
4.2PCB版图……………………………………………………………………………16
5.元器件清单……………………………………………………………………………17
6.主程序……………………………………………………………………………………18
7.接线图……………………………………………………………………………………25
8.工艺流程图……………………………………………………………………………25
9.元器件整形图…………………………………………………………………………25
10.实训小结…………………………………………………………………………………26
温度控制器
1.技术要求
1.1功能:
该温度控制器是以PT热敏电阻为传感器的信号采集端,将温度信号转换成电压信号,再经ADC0809进行摸数转换,进一步将电压信号转换成单片机可以处理的00H~FFH数字信号,并保证温度与数字信号实时同步,经单片机80C51进行数据处理,再进一步变成与实际温度相符合的数字信号,并在LED数码管上实时跟踪显示,在温度与设置标准温度相异时进行温度控制。
键盘/显示采用串行接口芯片ZLG7289A,硬件简单,数据处理进行多次采集取平均值的方法,手动设置标准温度,贴近实际,实用性强!
1.2性能
温度检测范围:
0℃~50℃
输入信号:
0℃~50℃→0~5V
控制范围:
0~5V
***注:
由于热敏电阻的0℃~50℃的线性最好,所以采用该阶段的线性度
2.工作原理
2.1.1硬件框图
温度控制器的整体框图如G1所示
2.1.2主流程图
2.2各功能块原理
2.2.1PT热敏电阻,即温度传感器
PT热敏电阻是一种新型的半导体感温元件,由于它具有灵敏度高、体积小、质量高、热惯性小、寿命长以及价格便宜等优点,并且它与普通的电阻不同,具有负的电阻温度特性,当温度声高时,电阻减少,其特性曲线如图G2所示
由于
由于热敏电阻的特征曲线是一条指数曲线,但其的中间部分是一条直线,可以满足灵敏度的要求,可以把阻值与温度看成一种线性的关系,只要给热敏电阻通以恒定的电流,电阻两端就会测到一个电压,通过下面的公式就可以计算出温度值
式中:
——被测温度
——与热敏电阻特性有关的温度系数
——与热敏电阻特性有关的系数
——热敏电阻两端的电压
根据这一公式只需测量出热敏电阻两端的电压就可以计算出温度值,同样也可以根据这一公式将温度信号转换成电压信号。
其对应的阻值和温度的关系如表一所示
表一热敏传感器温度阻值对应表
环境
温度℃
阻值
大小Ω
0功率电阻允许偏差
环境
温度℃
阻值
大小Ω
0功率电阻允许偏差
1.0**
1.5**
1.0**
1.5**
-55
1460x10*
6.43
9.65
25
2890*
3.96
5.94
-50
1089x10
6.14
9.21
30
2379
3.88
5.82
-45
8100x10
5.88
8.82
35
1971
3.75
5.62
-40
6060x10
5.63
8.45
40
1643
3.63
5.44
-35
4587x10
5.40
8.10
45
1377
3.52
5.28
-30
3530x10
5.30
7.95
50
1160
3.41
5.11
-25
2712x10
5.20
7.80
55
968.0
3.31
4.96
-20
2098x10
5.09
7.64
60
823.0
3.21
4.81
-15
1648x10
4.90
7.35
65
702.0
3.11
4.66
-10
1290x10
4.71
7.07
70
602.0
3.02
4.53
-5
1025x10
4.63
6.95
75
520.0
2.94
4.41
0
8170*
4.54
6.81
80
450.0
2.85
4.27
5
6626
4.48
6.72
85
390.0*
2.77
4.15
10
5359
4.33
6.50
90
339.0
2.70
4.05
15
4335
4.20
6.30
95
296.0
2.63
3.94
20
3506
4.09
6.14
100
258.0*
2.56
3.84
注1.0**1.5**代表温度测量精度
2.2.2ADC0809摸数转换
ADC0809是八位逐次逼近式,单片CMOS集成A/D转换器。
其引脚分布见图G3
G3ADCO8O9各引脚分布表
引脚功能如下:
INO—IN7:
8路模拟量输入端。
D7—D0:
8位数字量输出端。
ALE:
地址琐存允许输入端。
通常向此引脚输入一个正脉冲时,可将三位地址选择信号A、B、C锁存于地址寄存器并进行译码,选通相应的模拟输入通道。
START:
启动A/D转换控制信号输入端。
一般向此引脚输入一个正脉冲时,上升沿复位内部依次逼近寄存器,下降沿后开始A/D转换。
CLK:
时钟信号输入端。
EOC:
转换结束信号输出端,A/D转换期为EOC为低电平,A/D转换结束后EOC为高电平。
OE:
输出允许控制端,控制输出锁存器的三态门。
C、B、A:
8路模拟开关的地址选通信号输入端,3个输入端的信号为000—111时,接通IN0—IN7对应通道。
Vr(+)、Vr(-):
分别为基准电源的正、负输入端。
Vcc:
电源输入端,+5V。
GND:
地。
由温度信号转换成电压信号,再至模数转换,我们选择一通道输出,输出信号则由单片机进行三次连续取样,取平均值的方法,所以地址为:
FE01HADC0809的功能为信号信息采集。
2.2.389C51
模块性能:
+5V单电源供电;正常,空闲和掉电模式。
有电源指示灯。
MCU内部
存储器:
4KB片内FLASH/EE程序存储器,128Byte片内数据RAM,
外部存储器:
64KW外部SRAM,64KB外部FLASHROM,64KEEPROM
串行接口:
一个UART接口,一个虚拟I2C总线接口12MHz工作频率
G489C51引脚分布
并行I/O接口
P0:
当作为通用的I/O口时,P0口的引脚以“开漏”的方式输出,所以必需外加上拉电阻。
当作为外部程序或数据存储器的数据/地址总线时,内部控制信号为高电平,P0口的引脚可以在数据/地址总线的作用下实现上拉,不需要外加上拉电阻。
P1:
具有内部的上拉功能,可作为准双向口(用作输入时引脚被拉成高电平)使用。
作为专用功能引脚,相应的口锁存器必须为1状态。
P2:
具有内部的上拉功能,可作为准双向口(用作输入时引脚被拉成高电平)使用。
作为外部程序或数据存储器的高地址总线。
P3:
具有内部的上拉功能,可作为准双向口(用作输入时引脚被拉成高电平)使用。
作为专用功能引脚,相应的口锁存器必须为1状态。
2.2.4ZLG7289
zlg7289A一片具有串行接口的,可同时驱动8位阴式数码管,或64只独立LED数码管
的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显
示﹑键盘接口的全部功能。
zlg7289A内部含有译码器可直接接受BCD码或16进制码并同时具有2种译码方式参看后文此外还具有多种控制指令如消隐﹑闪烁﹑左移﹑右移﹑段寻址等它还具有片选信号可方便地实现多于8位的显示或多于64键的键盘接口
G5zlg7289引脚分布图
引脚说明
VDD:
正电源
NC:
悬空
VSS:
接地
/CS:
片选输入端此引脚为低电平时可向芯片发送指令及读取键盘数据
CLK:
同步时钟输入端向芯片发送数据及读取键盘数据时此引脚电平上升沿表示数据有效
DATA:
串行数据输入/输出端当芯片接收指令时此引脚为输入端当读取键盘数据时此引脚在读指令最后一个时钟的下降沿变为输出端
/KEY:
按键有效输出端平时为高电平当检测到有效按键时此引脚变为低电平
SG-SA:
段g—段a驱动输出
DP:
小数点驱动输出
DIG0-DIG7:
数字0数字7驱动输出
OSC2:
振荡器输出端
OSC1:
振荡器输入端
/RESET:
复位端
zlg7289A的控制指令分为二大类纯指令和带有数据的指令
纯指令
(1)复位清除指令
D7D6D5D4D3D2D1D0→10100100B
当zlg7289A收到该指令后将所有的显示清除所有设置的字符消隐闪烁等属性也被一起清除执行该指令后芯片所处的状态与系统上电后所处的状态一样
(2)测试指令
D7D6D5D4D3D2D1D0→10111111B
该指令使所有的LED全部点亮并处于闪烁状态主要用于测试
(3)左移指令
D7D6D5D4D3D2D1D0→10100001B
的显示自右向左从第1位向第8位移动一位包括处于消隐状态的显示位
但对各位所设置的消隐及闪烁属性不变,移动后,最右边一位为空无显示
例如原显示为12345678其中第2位2和第4位4为闪烁显示执行了左移指令后显示变为2345678第二位3和第四位5为闪烁显示
(4)右移指令
D7D6D5D4D3D2D1D0→10100000B
与左移指令类似,但所做移动为自左向右,从第8位向第1位移动,移动后,最左
边一位为空
(5)循环左移指令
D7D6D5D4D3D2D1D0→10100011B
与左移指令类似不同之处在于移动后原最左边一位第8位的内容显示于最右位
第1位在上例中执行完循环左移指令后的显示为23456781第二位3和第四位5为闪烁显示
(6)循环右移指令
D7D6D5D4D3D2D1D0→10100010B
与循环左移指令类似,但移动方向相反
带有数据的指令
(1).下载数据且按方式0译码
D7D6D5D4D3D2D1D0D6D5D4D3D2D1D0
10000A2A1A0DPXXXd3d2d1d0
X=无影响
命令由二个字节组成前半部分为指令其中a2a1a0为位地址具体分配如下
(显示位编号请参阅典型应用电路图):
d0—d3为数据收到此指令时zlg7289A按以下规则译码方式0进行译码如下表
小数点的显示由DP位控制DP=1时小数点显示DP=0时小数点不显示
(2)下载数据且按方式1译码
D7D6D5D4D3D2D1D0D6D5D4D3D2D1D0
11001A2A1A0DPXXXd3d2d1d0
X=无影响
此指令与上一条指令基本相同所不同的是译码方式该指令的译码按下表进行
(3)下载数据但不译码
D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0
10010a2a1a0DPABCDEFG
其中a2a1a0为位地址参见下载数据且译码指令A-G和DP为显示数据分别对应7段LED数码管的各段数码管当相应的数据位为1时该段点亮,否则不亮。
(4)闪烁控制
D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0
10001000d8d7d6d5d4d3d2d1
此命令控制各个数码管的消隐属性d1d8分别对应数码管1-80=闪烁1=不闪烁
(5)消隐控制
D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0
10011000d8d7d6d5d4d3d2d1
此命令控制各个数码管的消隐属性分别对应数码管1显示0消隐
当某一位被赋予了消隐属性后zlg7289A在扫描时将跳过该位因此在这种情况下无论对
该位写入何值均不会被显示但写入的值将被保留在将该位重新设为显示状态后最后一次写入的数据将被显示出来当无需用到全部8个数码管显示的时候将不用的位设为消隐属性可以提高显示的亮度
注意:
至少应有一位保持显示状态如果消隐控制指令中d1d8全部为0该指令将不被
接受zlg7289A保持原来的消隐状态不变
(6)段点亮指令
D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0
11100000XXd5d4d3d2d1d0
此为段寻址指令作用为点亮数码管中某一指定的段或矩阵中某一指定的LED数码管指令中X=无影响d0d5段地址范围从00H3FH具体分配为第1个数码管的G段地址为00HF段为01H….…A段为06H,小数点DP为07H,
第2个数码管的G段为08H,F段为09H,……,依此类推直至第8个数码管的小数点DP地址为3FH
(7)段关闭指令
D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0
11000000XXd5d4d3d2d1d0
段寻址命令作用为关闭熄灭数码管中的某一段指令结构与段点亮指令相同
(8)读键盘数据指令
D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0
00010101d7d6d5d4d3d2d1d0
该指令从zlg7289A读出当前的按键代码与其它指令不同此命令的前一个字节0001010B为微控制器传送到zlg7289A的指令而后一个字节d0d7则为zlg7289A返回的按键代码其范围是03FH无键按下时为0xFF各键键盘代码的定义
此指令的前半段zlg7289A的DATA引脚处于高阻输入状态以接受来自微处理器的
指令在指令的后半段DATA引脚从输入状态转为输出状态输出键盘代码的值故微
处理器连接到DATA引脚的I/O口应有一从输出态到输入态的转换过程。
zlg7289A的典型应用图如下所示
:
G6zlg7289A的典型应用
zlg7289A应连接共阴式数码管应用中无需用到的数码管和键盘可以不连接省去码管和对数码管设置消隐属性均不会影响键盘的使用如果不用键盘则典型电路中连接到键盘的8只10K电阻和8只100K下拉电阻均可省去如果使用了键盘则电路中的8只10K电阻和8只100K下拉电阻均不得省略非不接数码管否则串入DP及SA-SG连线的8只电阻均不能省去实际应用中8只下拉电阻和8只键盘连接位选线DIG0-DIG7的8只电阻位选电阻
由于该温度控制器只用到四位数码管和十六个键,具体接法如图G8:
G7zlg7289A的具体接法
2.2.5信号处理过程(流程)
温度检测信号(0℃~50℃)→电压信号(0V~5V)→放大调整→ADC0809模数转换(00H~FFH)→单片机89C51处理运算→实时温度显示→与设置温度进行比较控制→启动控制装置
2.2.6子流程图
6.主程序:
BIT_COUNTDATA34H;传输点位数
SHOW_COUNTDATA35H;点亮的数码管个数
SEND_BUFDATA36H
REC_BUFDATA37H
DELAYYDATA38H
RENT_CDATA3BH
CSBITP1.3
CLKBITP1.4
DIOBITP1.5
KEYBITP1.6
ORG00H
LJMPMAIN
ORG03H
LJMPINT_EX0
ORG0BH
LJMPINT_T0
ORG13H
LJMPINT_EX1
ORG50H
MAIN:
MOVSP,#58H
MOVTMOD,#01H
MOVTH0,#0D8H
MOVTL0,#0F0H
SETBTR0
MOV30H,#0;为定时1s设置的计数器
MOV31H,#0;采样三次用的计数器
SETBIT0
SETBIT1
MOVIE,#10000011B
MOV20H,#0
MOV3CH,#25;设定初始值
MOV3EH,#0
MOV3FH,#0
MOV50H,#0cH
MOV51H,#0fH
MOV52H,#0H
MOV53H,#0H
MOV54H,#0H
MOV38H,#0
MOV39H,#0
MOVP1,#00000100B
SETBCS
SETBDIO
RST_DELAY:
LCALLLDELAY
MOVSEND_BUF,#10100100B
LCALLSEND
SETBCS
LCALLDISPLAY
ETBKEY
ETB00H
MLOOP:
JNB07H,NO_KEY
MOVSEND_BUF,#00010101B
LCALLSEND
LCALLRECEIVE
SETBCS
MOVA,REC_BUF
LCALLKEY_PROCESS
CLR07H
SETB00H
MOV31H,#0
NO_KEY:
JNB00H,DLOOP;00H采样时间到
SETBEX1
MOVA,#0
MOVDPTR,#0FE01H
MOVX@DPTR,A;启动A/D转换
CLR00H
LCALLDATA_PROCESS
DLOOP:
SJMPMLOOP
INT_T0:
MOVTH0,#0D8H
MOVTL0,#0F0H
PUSHACC
PUSHPSW
INC30H
MOVA,30H
CJNEA,#100,T_RET;1秒钟采样1次
MOV30H,#0
SETB00H
T_RET:
POPPSW
POPACC
RETI
INT_EX1:
PUSHACC
PUSHDPL
PUSHDPH
PUSHPSW
SETBPSW.3
MOVA,#40H
ADDA,31H
MOVR0,A
MOVDPTR,#0FE01H
MOVXA,@DPTR
MOV@R0,A;三次采样的结果放于40h、41h和42h中
INC31H
MOVA,31H
CJNEA,#3,START_AD
MOV31H,#0
CLREX1
SJMPEX1_RET
START_AD:
MOVA,#0
MOVX@DPTR,A
EX1_RET:
POPPSW
POPDPH
POPDPL
POPACC
AAA:
RETI
INT_EX0:
SETB07H
CLREX0
RETI
DATA-PROCESS:
MOVR0,#40H
MOVR1,#41H
LCALLCOMCH
INCR1
LCALLCOMCH
INCR0
LCALLCOMCH;@40>@41>@42
MOVA,41H
MOVB,#50
MULAB
MOVR2,#0
MOVR3,#0
MOVR4,B
MOVR5,A
MOVR6,#1
MOVR7,#0H;41h*50/10?
?
?
S
LCALLNDIV1
MOVA,R5
MOV3BH,A
MOVR0,#38H
LCALLD_BCD;温度值高位放到38h个位放到39h
JB04H,D_RET
MOV52H,38H
MOV53H,39H