专业课设.docx

上传人:b****8 文档编号:28849705 上传时间:2023-07-20 格式:DOCX 页数:25 大小:278.66KB
下载 相关 举报
专业课设.docx_第1页
第1页 / 共25页
专业课设.docx_第2页
第2页 / 共25页
专业课设.docx_第3页
第3页 / 共25页
专业课设.docx_第4页
第4页 / 共25页
专业课设.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

专业课设.docx

《专业课设.docx》由会员分享,可在线阅读,更多相关《专业课设.docx(25页珍藏版)》请在冰豆网上搜索。

专业课设.docx

专业课设

武汉华夏理工学院

信息工程课程设计报告书

 

课程名称专业方向课程设计

课程设计总评成绩

学生姓名、学号102124133

学生专业班级自动化1133

指导教师姓名黄梅志

课程设计起止日期2016.12.5—12.23

 

专业方向课程设计任务书

——智能仪表方向

学生姓名:

汤立争专业班级:

自动化1133

指导教师:

黄梅志工作单位:

信息工程学院

设计题目:

智能温度测量仪表设计

初始条件:

以温度为测量对象,利用实验室可以提供的设备平台、仪器仪表、常见芯片,基于实验室已有的STC89C51单片机最小系统,设计一种智能温度测量仪表,温度测量范围为200-300°C,测量误差≤1°C。

设计任务:

1、基本功能:

要求6位数码管显示(3位显示测量值,3位显示设定值),4输入按钮(功能选择、数码管选择、数字增加、数字减少),可设定上下限报警(蜂鸣器报警);

2、智能温度测量仪表硬件电路设计,主要包括温度传感器、信号调理电路、A/D转换电路、单片机最小系统、人机接口电路等;

3、智能温度测量仪表软件设计,包括主程序、数据采集子程序、键盘处理程序、显示子程序、测量信号处理程序等;

4、智能化功能的实现(完成其中3个即可),也可自行扩展:

1)工作状态指示2)开机自检

3)硬件时钟4)打印功能

5)配置通信接口6)测温程序中加入消除零漂模块和适当的数字滤波模块

5、整机制作和调试;

6、撰写一份课程设计报告书;

7、设计说明书应包括:

设计要求、总体方案设计与论证、总体电路、模块设计、模块程序、整机制作与调试、结果分析、结论或总结、参考文献(不少于5篇)。

图纸要求:

系统整机电路图和一份软件程序清单。

时间安排:

课程设计安排在第14-16周,地点在424实验室。

具体进度安排如下:

学时分配

进度安排

2天

总体方案设计与论证

5天

系统硬件电路设计与调试

4天

系统软件设计与调试

3天

整机制作与调试

1天

完成课程设计任务书、答辩

指导教师签名:

2016年12月5日

智能温度测量仪表设计

作者:

汤立争

武汉华夏理工学院信息工程学院

摘要:

本文基于51单片机,设计对环境温度进行采集的温度采集系统。

如何采集温度是本论文的首要问题。

采用的方法是用热敏电阻作为温度传感器,通过其温度的变化导致其阻值的变化,再通过A/D转换将模拟信号转换为数字信号,最后由单片机将温度值显示在数码管上。

项目包括硬件电路设计、软件编程等,在老师和同学的帮助下最后将温度采集顺利完成。

关键词:

单片机A/D转换数码管C语言

1系统描述

温度传感器采集温度数据,通过单片机控制,将采集到的实时温度值在数码管上显示,同时将温度数据通过串口线传送到上位PC机;上位机在屏幕上显示温度数据,当若温度超过设定值,在显示屏上进行报警提示,并通过串口向单片机发送指令,单片机收到指令后控制蜂鸣器发音。

还可以使用外界键盘随时修改温度设定值,达到不同的需求。

2硬件设计

2.1系统硬件框图如图1所示

 

图1.系统硬件框图

其工作过程为:

温度传感器采集温度信号,然后送入仪用放大电路对信号进行放大,再经过调零电路减小误差,再经过A/D转换将模拟信号转变成便于单片机处理的数字信号,同时可以将温度值在数码管上进行显示,同时可以将采集到的温度值与上位机软件设定值进行比较,若超过设定值,可以驱动蜂鸣器报警,用外界键盘也可以修改温度设定值,体现其智能功能。

2.2温度采集与放大电路的设计

PT100是一种广泛应用的测温元件,在-50℃~600℃范围内具有其他任何温度传感器无可比拟的优势,包括高精度、稳定性好、抗干扰能力强等优点而DS18B20检测温度范围为–55°C~+125°C(–67°F~+257°F),不能满足要求,因此选用其它方法测温,此次选用Pt100作为测温元器件,采用Pt100铂热电阻温度传感器采集温度数据,Ptl00铂电阻具有抗震性能好、测温范围广、测量精度高、机械强度高、耐压性能好等特点,且电阻率较大。

实际测量中有良好的重复性。

PT100温度传感器0℃时电阻值为100Ω,电阻变化率为0.3851Ω/℃。

采用PT100三线制接法作为温度采集部分,放大器电路,选用仪表放大器LM358放大器。

图2.温度采集与放大电路图

2.3A/D转换电路的设计

将模拟电压信号送入A/D转换器,经过A/D转换之后将其变成数字信号再输入到单片机内进行处理,采用AD0808做为A/D转换器,电路图如图3所示:

图3.A/D转换电路

 

2.4单片机最小系统的设计

要使单片机工作起来,主要是给单片机增加上电复位电路和外接一个晶振。

电路如图4所示:

图4.单片机最小系统

2.5人机接口电路的设计

它主要由6位一体数码显示管、键盘和74HC573芯片构成,用于实现系统的温度显示与温度设定功能。

在该人机接口电路的设计中,74HC573为该模块电路的核心器件,功能相对完善。

74HC573不仅能有效的将采集到的温度值通过数码管进行实时显示;并且还能控制矩阵键盘,读取通过按键获得的温度设定值,一方面可将设定值直接显示,另一方面还能传输给单片机。

人机接口电路如图5所示:

图5.人机接口电路图

2.6蜂鸣器报警电路图

温度达到设定值,蜂鸣器响

图6蜂鸣器报警电路图

 

2.7单片机接口电路图

图7单片机接口电路图

 

3软件设计

3.1主流程图的设计

3.1.1上位机程序流程图的设计

上位机程序主要完成与下位机的串口通信,显示并存储下位机传送来的温度数据,并将下位机送来的温度数据与已经设置好的温度值进行比较,若大于设定值,在上位机屏幕上显示告警提示,同时向下位机发送控制命令,下位机收到控制命令后,控制蜂鸣器发音进行警示。

其具体的工作过程为:

开始初始化,单片机通过串口向上位机发送温度数据,如果没有收到,则继续等待。

如果PC机收到该数据可以将该温度显示在PC机显示屏上,同时将收到的数据存储在存储器中,然后读取设定的温度值,必将设定值与存入的温度值进行比较,如果大于设定值,则PC机通过串口向单片机发送报警指令,使得报警电路的蜂鸣器响起,如果小于设定值,则PC机继续接收单片机发送来的温度数据。

上位机程序流程图如图8所示:

图8.上位机程序流程图

3.1.2、下位机主程序流程图的设计

下位机主要完成从温度传感器上采集数据,将采集的数据在LED数码管上显示,同时将采集的温度数据传送到上位机,并根据上位机的命令驱动蜂鸣器发出警报。

其工作过程为:

上电之后,首先对74HC573进行初始化,然后在数码管上显示当前读的实时温度值,然后开中断,再判断按键标志位是否为1,如果为1,进入温度设定值子程序,如果为0,则进入实时温度与设定温度值比较子程序,如果大于设定值,则单片机控制继电器动作,使其断开,并且进入报警电路子程序,如果小于设定值,则继续对温度进行采集。

下位机主程序流程图如图9所示:

图9.下位机主程序流程图

3.2A/D转换程序流程图的设计

采集到的温度数据是模拟信号,而单片机接口所需要的是数字信号,因此需要借助A/D转换电路将模拟电压信号转换成便于单片机处理的数字信号。

次A/D转换电路使用的是AD0808转换器。

子程序流程图如图10所示:

图10.A/D转换电路流程图

3.3数据通信子程序的设计

3.3.1串口发送数据程序流程图的设计

串口数据的发送主要是完成每隔2s向上位机传送一次采集到的温度数据,采用和数据采集模块同一个定时器T1。

发送数据的程序流程图如图11所示:

图11.串口发送数据程序流程图

3.3.1串口发送数据程序流程图的设计串口数据的接收主要完成接收上位机发来的控制命令,因上位机每2s从下位机读取温度值进行判断,若高于其设定值,则向下位机发送控制命令,因此下位机从上位机读取控制命令也最多2s一次。

图12串口接收数据程序流程图

3.4键盘/显示子程序流程图的设计

从硬件电路可知,P1.0—P1.6主要用来控制数码管的7个管脚,输出字形码;数码管显示采用动态显示方式,因此显示程序采用中断方式。

中断是通过单片机内部的定时器T0产生的,即每隔50ms刷新显示一次,中断服务程序的流程图如图13所示:

图13.数码管显示温度值中断服务程序流程图

3.5蜂鸣器报警子程序流程图的设计

该模块主要完成当Alarm标志为1时,将P1.7管脚驱动为高电平,使蜂鸣器发音,起到报警作用;每隔50ms刷新驱动一次,和数码管显示模块使用同一个中断T0。

其程序流程图如图14所示:

图14.报警电路程序流程图

4设计体会与小结

在老师精心的教导及引导之下,我们终于完成了3周的课程设计,虽然其中困难重重,疑惑很多,但是在老师和同学的帮助下还是完成了任务,虽然不是很完美,但是由于知识有限,能力不及,有很多缺陷。

在这次课程设计中,我们用了许多以前学的专业知识,这次课程设计让我们把理论联系到实际中去了,以前很多模糊的知识在实践中也变的清晰了,这是课程设计的一大收获。

在设计程序中,整个程序不可能一次就设计好,经过多次修改和查证资料,经过分析遇见的问题,从中学到的知识让我们受益终身。

发现提出分析解决问题的能力也提高了,这些经验为我们以后的学习工作和生活都很有用处。

课程设计的过程就是一个理论到实际应用的过程,和搭档的合作,探讨,探索,发现,以及自身的动脑和努力,都是以后工作中需要的,通过这次的课程设计作品的制作让我对单片机的理论有了更加深入的了解,同时在具体的制作过程中我们发现现在书本上的知识与实际的应用存在着不小的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我们不得不考虑这方的问题,这让我们无法根据书上的理论就轻易得到预想中的结果,有时结果甚至很差别很大。

通过这次实践使我更深刻的体会到了理论联系实际的重要性,我们在今后的学习工作中会更加的注重实际。

 

参考文献

[1]李群芳,张士军等.单片微型计算机与接口技术.电子工业出版社.2008

[2]杨路明.C语言程序设计教程.北京邮电大学出版社.2005

[3]彭虎,周佩玲,傅忠谦.单片机原理与接口技术.电子工业出版社.2008

[5]李志全等.智能仪表设计原理及其应用.北京:

国防工业出版社,2000

[6]赵茂泰.智能仪器原理及应用.北京:

国防工业出版社,1998

[7]孙传友等.测控系统原理与设计.北京:

北京航空航天大学出版社,2005

 

附录一

Pt100热电阻分度表

 

温度

0

1

2

3

4

5

6

7

8

9

电阻值(Ω)

0

10

20

30

40

100.00

103.90

107.79

111.67

115.54

100.39

104.29

108.18

112.06

115.93

100.78

104.68

108.57

112.45

116.31

101.17

105.07

108.96

112.83

116.70

101.56

105.46

109.35

113.22

117.08

101.95

105.85

109.73

113.61

117.47

102.34

106.24

110.12

114.00

117.86

102.73

106.63

110.51

114.38

118.24

103.12

107.02

110.90

114.77

118.63

103.51

107.40

111.29

115.15

119.01

50

60

70

80

90

119.40

123.24

127.08

130.90

134.71

119.78

123.63

127.46

131.28

135.09

120.17

124.01

127.84

131.66

135.47

120.55

124.39

128.22

132.04

135.85

120.94

124.78

128.61

132.42

136.23

121.32

125.16

128.99

132.80

136.61

121.71

125.54

129.37

133.18

136.99

122.09

125.93

129.75

133.57

137.37

122.47

126.31

130.13

133.95

137.75

122.86

126.69

130.52

134.33

138.13

100

110

120

130

140

138.51

142.29

146.07

149.83

153.58

138.88

142.67

146.44

150.21

153.96

139.26

143.05

146.82

150.58

154.33

139.64

143.43

147.20

150.96

154.71

140.02

143.80

147.57

151.33

155.08

140.40

144.18

147.95

151.71

155.46

140.78

144.56

148.33

152.08

155.83

141.16

144.94

148.70

152.46

156.20

141.54

145.31

149.08

152.83

156.58

141.91

145.69

149.46

153.21

156.95

150

160

170

180

190

157.33

161.05

164.77

168.48

172.17

157.70

161.43

165.14

168.85

172.54

158.07

161.80

165.51

169.22

172.91

158.45

162.17

165.89

169.59

173.28

158.82

162.54

166.26

169.96

173.65

159.19

162.91

166.63

170.33

174.02

159.56

163.29

167.00

170.70

174.38

159.94

163.66

167.37

171.07

174.75

160.31

164.03

167.74

171.43

175.12

160.68

164.40

168.11

171.80

175.49

200

210

220

230

240

175.86

179.53

183.19

186.84

190.47

176.22

179.89

183.55

187.20

190.84

176.59

180.26

183.92

187.56

191.20

176.96

180.63

184.28

187.93

191.56

177.33

180.99

184.65

188.29

191.92

177.69

181.36

185.01

188.66

192.29

178.06

181.72

185.38

189.02

192.65

178.43

182.09

185.74

189.38

193.01

178.79

182.46

186.11

189.75

193.37

179.16

182.82

186.47

190.11

193.74

250

260

270

280

290

194.10

197.71

201.31

204.90

208.48

194.46

198.07

201.67

205.26

208.84

194.82

198.43

202.03

205.62

209.20

195.18

198.79

202.39

205.98

209.56

195.55

199.15

202.75

206.34

209.91

195.91

199.51

203.11

206.70

210.27

196.27

199.87

203.47

207.05

210.63

196.63

200.23

203.83

207.41

210.98

196.99

200.59

204.19

207.77

211.34

197.35

200.95

204.55

208.13

211.70

300

310

320

330

340

212.05

215.61

219.15

222.68

226.21

212.41

215.96

219.51

223.04

226.56

212.76

216.32

219.86

223.39

226.91

213.12

216.67

220.21

223.74

227.26

213.48

217.03

220.57

224.09

227.61

213.83

217.38

220.92

224.45

227.96

214.19

217.74

221.27

224.80

228.31

214.54

218.09

221.63

225.15

228.66

214.90

218.44

221.98

225.50

229.02

215.25

218.80

222.33

225.85

229.37

附录2整体电路设计

附录3

程序

#define #define 74HC573_DIG7 0x0f00  

#include  

#include 

#include 

 

#define uchar unsigned char 

#define uint unsigned int _DIG7 0x0f00 

#include  

#include 

#include 

 

#define uchar unsigned char 

#define uint unsigned int 

voidmain() 

{

unsigned char TempH,TempL,i,j,m; 

 

relay=1; 

 74HC573_init(); 

 74HC573_write(0x0403); 

 74HC573_write(0x580); 

 EA=1;

while

(1) 

EX1=1;

flag=0; 

 if(setb==1) 

 Set_temp(); 

 } 

 

str[0]=TempH/100; 

74HC573_write(74HC573_DIG0|str[0]); 

str[1]=(TempH%100)/10; 

74HC573_write(74HC573_DIG1|str[1]); 

str[2]=(TempH%100)%10; 

 

74HC573_write(74HC573_DIG2|str[2]);  

74HC573_write(74HC573_DIG3|0x0c); 

 

for(i=0;i<3;i++) 

 { 

 if(str[i]>showtemp[i])

 m=1; 

i=i+3; 

 

else if(str[i]

m=0; 

i=i+3; 

else 

m=m; 

relay=m; 

 

temp=ReadTemperature(); 

str[3]=0; 

TempH=temp>>4; 

TempL=temp&0x0F; 

TempL=TempL*6/10;

void delay(unsigned int i)

 while(i--); 

}

void Set_temp(void)

{ unsigned char i; 

 ch451_write(74HC573_DIG0|showtemp[0]);

ch451_write(74HC573_DIG1|showtemp[1]); 

 ch451_write(74HC573_DIG2|showtemp[2]);

 ch451_write(74HC573_TWINKLE|1);

 EX1=1; 

 while(flag==0); 

EX1=0;  flag=0; 

 showtemp[0]=47HC573_key; 

 ch451_write(74HC573_DIG0|showtemp[0]);  

ch451_write(74HC573_TWINKLE); 

 ch451_write(74HC573_TWINKLE|2); 

 EX1=1; 

 while(flag==0); 

 EX1=0; 

 flag=0; 

 showtemp[1]=74HC573_key; 

 ch451_write(74HC573_DIG1|showtemp[1]); 

ch451_write(74HC573_TWINKLE); 

 ch451_write(74HC573_TWINKLE|4); 

 EX1=1; 

 while(flag==0); 

 EX1=0; 

 flag=0; 

 showtemp[2]=74HC573_key; 

 74HC573_write(74HC573_DIG2|showtemp[2]); 

 74HC573_write(74HC573_TWINKLE); 

setb=0; 

 

 //键盘中断读取键值并且转换为二进制代码

void 74HC573_inter() interrupt 2 using 1 

  unsigned char i;  

  unsigned char keycode1,keycode; 

 keycode1=0x07; 

 74HC573_load=0; 

  

for(i=0;i<4;i++) 

 { 

 74HC573_din=keycode1&1; 

 74HC573_dclk=0; 

 keycode1>>=1;  

 74HC573_dclk=1; 

  }  

ch451_load=1; 

 keycode=0; 

 keycode1=0; 

74HC573_dclk=0; 

 74HC573_dclk=1; 

  

for(i=0;i<3;i++)  

 

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

当前位置:首页 > 高等教育 > 管理学

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

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