温度采集系统c语言设计,温度数据采集系统的设计与实现

内容介绍

原文档由会员 虎王 发布

温度数据采集系统的设计与实现

页数 28 字数13644

摘 要:

本设计采用单片机AT89S52作为控制核心,通过集成温度传感器AD590对温度数据进行采集,将温度值转换为电量输出,由ADC0809实现模拟信号的数字化。通过RS485技术实现远程设备与计算机主机通讯,并通过4位数码管显示模块显示温度的实时值,上位机的“控制台”可以查看检测点的温度值还可以设定温度的最大值和最小值,对于超过最大值或低于最小值的温度数据进行报警。

目 录

1 引言1

2 总体系统分析及方案论证2

2.1 总体功能要求与技术指标2

2.2 整体框架2

2.3 器件选择3

2.4 通信方式4

3 系统硬件电路设计4

3.1 通讯方式4

3.2 温度检测电路6

4 下位机部分软件设计7

4.1 LED模块显示部分7

4.2 数据转换部分9

4.3 设置波特率的初始化程序9

4.4 与上位机的通信部分设计9

5 数据通信概述13

5.1 数据通信的概念及组成13

5.2 数据传输方式13

5.3 数据通信编码14

5.4通信协议14

6 串行通信的接口标准16

6.1 串行通信总线标准接口16

6.2 通信速度和通信距离16

6.3 抗干扰能力16

6.4 RS-232 /RS-485总线标准接口17

7 VISUAL BASIC语言概述19

7.1 VISUAL BASIC6.0的简介19

8 VB程序的设计19

8.1 程序设计的基本思路19

8.2 登录功能的实现20

8.3 数据通信的基础21

8.4 对数据的处理23

8.5 监控界面23

9结论24

参考文献25

致谢26

附录 系统硬件电路图26

ABSTRACT27

KEY WORDS27

参考文献:

[1] 李书琴,陈勇.Visual Basic 程序设计基础[M].清华大学出版社,2006.

[2] 马忠梅,籍顺心等.单片机的C语言应用程序设计[M].北京航空航天大学出版社,2003.

[3] 杜树春.单片机C语言和汇编语言混合编程实例详解[M]. 北京航空航天大学出版社,2006.

[4] 达新宇等.数据通信原理与[M].电子工业出版社,2003.

[align=center][/align]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
温度采集代码 上位机部分源程序: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, CPort, ExtCtrls, RzBorder, StrUtils, StdCtrls, RzLabel, iComponent, iVCLComponent, iCustomComponent, iPlotComponent, iPlot, RzButton, iPlotChannel, RzPanel, Mask, RzEdit; type TForm1 = class(TForm) iPlot1: TiPlot; RzPanel1: TRzPanel; RzLEDDisplay1: TRzLEDDisplay; RzLabel1: TRzLabel; RzLabel2: TRzLabel; RzPanel2: TRzPanel; RzLabel3: TRzLabel; ComPort1: TComPort; procedure ComPort1RxFlag(Sender: TObject); procedure iplot_init(); procedure FormCreate(Sender: TObject); procedure COMM_init(); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end; var Form1: TForm1; px:word; implementation {$R *.dfm} //**************************************************************************** //---窗体创建过程--- //**************************************************************************** procedure TForm1.FormCreate(Sender: TObject); begin COMM_init(); // 串口控件的初始化 iplot_init(); // 曲线图的初始化 end; //**************************************************************************** //---串口接收到标志字节产生中断--- //**************************************************************************** procedure TForm1.ComPort1RxFlag(Sender: TObject); var str:string; begin // 以字符串的形式从串口读取数据 ComPort1.ReadStr(str,33); // 去掉数据帧的头和尾直接显示 RzLEDDisplay1.Caption:='+'+MidStr(str,2,5); // 在曲线图上绘一个点 iPlot1.Channel[0].AddXY(px,StrToFloat(RzLEDDisplay1.Caption)); iPlot1.Channel[1].AddXY(px,0); // 跟随绘制0刻度线 iPlot1.Channel[2].AddXY(px,iPlot1.Channel[0].GetYMax); iPlot1.Channel[3].AddXY(px,iPlot1.Channel[0].GetYMin); px:=px+1; end; //**************************************************************************** //---初始化曲线图--- //**************************************************************************** procedure TForm1.iplot_init(); begin iPlot1.RemoveAllChannels; // 移除所有通道 iPlot1.RemoveAllXAxes; // 移除所有X轴 iPlot1.TitleText:='实时温度曲线'; // 设置曲线图的标题 //iPlot1.TitleVisible := False; // 不显示曲线图标题 iPlot1.YAxis[0].Span := 100; // 设置Y轴的显示范围 iPlot1.YAxis[0].Min:=-15; // 设置Y轴的起始值 iPlot1.YAxis[0].Title:='温度值(℃)'; // Y轴名称 iPlot1.YAxis[0].TitleShow:=True; //---配置温度曲线--------------------------------------------------- iPlot1.AddChannel; // 添加一个曲线 iPlot1.Channel[0].TitleText := '温度'; // 设置曲线的名称 iPlot1.Channel[0].Color := clRed; // 设置曲线的颜色 // 曲线插值,加上下面这一句显示的曲线不会有棱角 iPlot1.Channel[0].InterpolationStyle := ipistCubicSpline; iPlot1.Channel[0].TraceLineWidth := 2; // 曲线显示的宽度 iPlot1.AddXAxis; // 添加一个X轴 iPlot1.XAxis[0].Title:='采样时间(S)'; // X轴名称 iPlot1.XAxis[0].TitleShow:=True; iPlot1.XAxis[0].Span := 200; // X轴显示范围 iPlot1.Channel[0].XAxisName := iPlot1.XAxis[0].Name; iPlot1.XAxis[0].LabelsFont.Color := clRed; // 标签字体颜色 //---配置0刻度线--------------------------------------------------- iPlot1.AddChannel; // 添加一个曲线 iPlot1.Channel[1].TitleText := '0刻度'; // 设置曲线的名称 iPlot1.Channel[1].Color := clYellow; // 设置曲线的颜色 iPlot1.Channel[1].TraceLineWidth := 2; // 曲线显示的宽度 iPlot1.Channel[1].XAxisName := iPlot1.XAxis[0].Name; //---配置峰值跟踪显示线--------------------------------------------------- iPlot1.AddChannel; // 添加一个曲线 iPlot1.Channel[2].TitleText := '峰值跟踪'; // 设置曲线的名称 iPlot1.Channel[2].Color := clBlue; // 设置曲线的颜色 iPlot1.Channel[2].TraceLineWidth := 2; // 曲线显示的宽度 iPlot1.Channel[2].XAxisName := iPlot1.XAxis[0].Name; //---配置谷值跟踪显示线--------------------------------------------------- iPlot1.AddChannel; // 添加一个曲线 iPlot1.Channel[3].TitleText := '谷值跟踪'; // 设置曲线的名称 iPlot1.Channel[3].Color := clLime; // 设置曲线的颜色 iPlot1.Channel[3].TraceLineWidth := 2; // 曲线显示的宽度 iPlot1.Channel[3].XAxisName := iPlot1.XAxis[0].Name; end;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值