Bwifpga_adelphi课程设计报告

、|

!_

一个人总要走陌生的路,看陌生的风景,听陌生的歌,然后在某个不经意的瞬间,你会发现,原本费尽心机想要忘记的事情真的就这么忘记了..

河南机电高等专科学校

课程设计报告书

课程名称:课题名称:专 业:班 级: 过控082

学 号: 姓 名:

20xx年 12 月 20 日

设 计 任 务 书

一、设计任务

通过利用DS18B20做温度检测传感器,下位机AT89C51单片机,上位机PC和串口线设计城的一个温度采集系统,实现对温度的采集和控制.

通过DS18B0检测到的温度经单片机处理通过串口线发送给上位机,上位机接收到数据后经处理显示在用DELPHI开发软件编写的一个监控软件上,直接显示现场温度,现场时间显示,并设置报警温度值,若温度过高(监控信号为红色闪烁)就立即报警给出信号,相关技术人员立即到现场解决出现的问题,从而保证生产管理的安全,温度正常(监控信号为白色)继续监控,当温度达到上限/下限时,界面设定的状态自动显示低温(蓝色)/高温(红色)/正常(绿色),并弹出低温/高温警报对话框, 从而达到对温度的采集和智能监控,此系统能够满足现代生产生活的需要,效率高,具有较强的稳定性和灵活性。

二、设计方案及工作原理

用DELPHI做一个监控界面在上位机用来显示现场温度,以及当前温度处于何种状态:低温、正常或者是高温,当温度超过所设置的温度是发出相应的信号给以提示,从而能够及时处理当前所发生的问题。本次设计利用DS18B20做温度传感器,DS18B20是单线数字温度传感器,与微处理器之间采用串行数据传送,一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,其内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。测量温度范围为 -55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求

主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。 采集到的数据通过串行口传送给AT89S52单片机,经处理传送到SUBF等待上位机接收,上位机接收到数据后通过软件直接显示十六进制数据。本系统采用 单片机不间断的发送和接收数据,实现动态扫描,上位机通过检测当前数据是否与设定值相同来发出不同的信号,从而实现对温度的准确采集和监控。串口线用RS-232做系统总线,RS-232-C接口(又称 EIA RS-232-C)RS-232-C有25条线,,分为5个功能组,包括4条数据线,11条控制线,3条定时线,7条备用线和未定义线。

本系统通过对现场温度采集、处理、发送的模式实现对温度准确的采集和控制。

目 录

第一章、 系统设计要求和解决方案

第二章、 硬件实现

第三章、 软件实现

第四章、 缺点及可能的解决方法

第五章、 心得体会

附录一、参考文献

第一章 系统设计要求和解决方案

一.系统设计要求

(1)设计本系统主要用于现场温度采集并通过RS-232发送上位机给人以直观的显示,了解当前现场的温度。为此应使系统稳定、准确、快速的发送数据,上位机能够准确的接收数据,并显示在当前界面,使系统人性化。

(2)接收DS18B20的数据是用AT89C51单片机处理的,这种单片机处理数据快速、稳定,能更好的确保系统的稳定性。

(3)现场温度检测选用了DS18B20温度传感器,采用此温度传感器首先要了解温度传感器的适用范围、环境、测试精度、特性等一切有关参数。要求在所测试的环境中能够不间断的测试,把现场的温度接收,通过单线发送给单片机,要保证测试准确无误。

(4)通过SPCOMM控件实现上位机与单片机的通信。

二.解决方案

1,通过SPCOMM控件实现上位机与单片机的通信,因为SPCOMM控件 具有一下特点:

(1)属性

CommName:控件名,可填写COM1,COM2,?等串口的名字,为字符型变量。 BaudRate:设定波特率,如可为9 600,4 800等,可以在串口打开后更改波特率。

ParityCheck:是否选择奇偶校验。

ByteSize:字节长度,根据实际情况设定为5,6,7,8等。

Parity:奇偶校验位。

StopBits:停止位的位数。

(2)方法

Startcomm:用于打开串口,当打开失败时通常会报错。

StopComm:过程用于关闭串口,没有返回值。

(3)函数

WriteCommData(pDataToW rite:PChar;dwSizeof DataTo Write:W ord):boolean

送一个字符串到写线程,发送成功返回true,执行此函数将立即得到返回值,发送操作随后执行。pDataToWrite是要发送的字符串,

dwSizeofDataToWrite是发送的长度。

(4)事件

OnReceiveData:procedure(Sender:TObject;Buffer:

Pointer;BufferLength:Word)ofobject

系统中SPCOMM的设置为:CommName:Com1;BaudRate:9600 ParityCheck:None; ByteSize:8; StopBits:1;以实现能与下位机串口通信。

2,用AT89C51做下位机是因为它能够提供以下标准功能:4k字节的flash闪存,128字节内部RAM,32个I/O口线,两个十六位定时器/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路,同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节点工作模式。空闲方式停止CPU的工作,但允许RAM,定时器/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的数据,从而保证数据稳定存储和处理。

3,采用DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。对DS18B20操作部分最好采用汇编语言实现。在DS18B20的有关资料中均未提及单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多DS18B20,在实际应用中并非如此。当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,要保证DS1820接触良好不能断线,防止程序读该DS18B20时,没有返回信号,程序进入死循环。

第二章 硬件实现

一、以单片机(AT89S52)为核心的温度采集系统设计

1、AT89S52功能特性描述:

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于

常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程Flash,使得 AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位 定时器/计数器,一个6向量 2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

AT89S52引脚图如下:

Bwifpgaadelphi课程设计报告

2、温度传感器DS18B20

DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。

1、DS18B20产品的特点

(1)、只要求一个端口即可实现通信。

(2)、在DS18B20中的每个器件上都有独一无二的序列号。

(3)、实际应用中不需要外部任何元器件即可实现测温。

(4)、测量温度范围在-55。C到+125。C之间。

(5)、数字温度计的分辨率用户可以从9位到12位选择。

(6)、内部有温度上、下限告警设置。

2、DS18B20的引脚介绍

Bwifpgaadelphi课程设计报告

TO-92封装的DS18B20的引脚排列见图1,其引脚功能描述见表1。 (底视图)图1

表1 DS18B20详细引脚功能描述

Bwifpgaadelphi课程设计报告

3. DS18B20的使用方法

由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。

由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。

DS18B20采用外部供电方式,单总线长度也不宜超过80M,否则也会影响到数据的传输。在实际应用中还可以使用一个MOSFET将I/O口线直接和电源相连,起到上拉的作用。对DS18B20的设计,需要注意以下问题

(1)对硬件结构简单的单线数字温度传感器DS18B20 进行操作,需要用较为复杂的程序完成。编制程序时必须严格按芯片数据手册提供的有关操作顺序进

行,读、写时间片程序要严格按要求编写。尤其在使用DS18B20 的高测温分辨力时,对时序及电气特性参数要求更高。

(2)测温电缆线建议采用屏蔽4 芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。DS18B20 在三线制应用时,应将其三线焊接牢固;在两线应用时,应将VCC与GND接在一起,焊接牢固。若VCC脱开未接,传感器只送85.0 ℃的温度值。

(3)实际应用时,要注意单线的驱动能力,不能挂接过多的DS18B20,同时还应注意最远接线距离。另外还应根据实际情况选择其接线拓扑结构。

DS18B20实际图形如下:

Bwifpgaadelphi课程设计报告

3、显示模块

在系统运行的过程中,系统要能够显示实时的温度及在设置上、下限是能够显示当前设置。我们考虑以下显示方案。

使用传统的数码管显示。数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高低温、对外界环境要求低、易于维护,同时其精度比较高,称重快,精度可靠,操作简单。数码管采用BCD编码显示数字,程序编译容易,资源占用较少。

4、 控制模块

温度采集后存储在EEPROM里面的上、下限设定值进行比较,得到控制的结

J1果。本系统采用两路继电器来负责上限和下限的控制,实现对实时温度的控制。

Bwifpgaadelphi课程设计报告

5、温度采集

DS18B20支持“一线总线”接口,测量温度范围为 -55°C--+125°C,在-10--+85°C范围内,精度为±0.5°C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。

6、MAX232驱动器/接收器

MAX232是一种双组驱动器/接收器,片内含有一个电容性电压发生器以便在单5V电源供电时提供EIA/TIA-232-E电平。每个接收器将EIA/TIA-232-E电平输入转换为5V TTL/CMOS电平。这些接收器具有1.3V的典型门限值及0.5V的典型迟滞,而且可以接收±30V的输入。每个驱动器将TTL/CMOS输入电平转换为TMEIA/TIA-232-E电平。所有的驱动器、接收器及电压发生器都可以在德州仪器公司的LinASIC 元件库中得到标准单元。

其主要特点如下:

单5V电源工作;LinBiCMOS 工艺技术;两个驱动器及两个接收器;±30V输入电平低电源电流:典型值是8mA;符合甚至优于ANSI标准EIA/TIA-232-E

及ITU推荐标准V.28;可与Maxim公司的MAX232互换;ESD保护大于MIL-STD-883(方法3015)标准的2000V。 007

其引脚图如下所示:

Bwifpgaadelphi课程设计报告

7、RS232九针串口

九针引脚定义符号

1 载波检测 DCD 2 接收数据 RXD 3 发送数据 TXD 4 数据终端准备好 DTR 5 信号地 SG 6 数据准备好 DSR 7 请求发送 RTS 8 清除发送 CTS 9 振铃提示

Bwifpgaadelphi课程设计报告

RI

8、74HC164芯片及四位八段数码管

74HC164是比较典型的移位寄存器,该移位寄存器有一个数据输入端口、一个时钟信号端口和八个输出端口。这种方法只需要2个MPU 的I/O端口,而且在锁存器件这2个端口还可以干别的事。利用此芯片驱动四位数码管可以节约单片机的I/O口。

第三章、软件实现

主界面:

Bwifpgaadelphi课程设计报告

报警界面:

Bwifpgaadelphi课程设计报告

软件设计包括上位机设计、下位机设计和通信协议设计三大部分。

(1)上位机设计

在开发PC上位机的通信程序中,我们采用了Object Pascal语言,此语言具有可读性好编写容易的特点,开发Windows环境下的串口通信程序又选用了Spcomm控件,另外先编写打开串口、初始化串口和读串口命令。再编写显示模块,温度超过设定值时的报警模块,最后退出系统程序模块,便于直观的显示各种必要的信息。在Windows环境下串行通信有两种:主要方式即同步方式,异步方式两种方式,其中在同步方式中,读串口的函数试图在串口的接收缓冲区中读取规定数

目的数据,直到规定数目的数据全部被读出或设定的超时时间已到时才返回。异步方式中,利用Windows的多线程结构,可以让串口的读写操作在后台进行,而应用程序的其它部分在前台执行。

(2)下位机设计

影响数据转输产生错误的因素有:转输线分布参数上下位机间的波特率误差现场干扰等。而针对近程小批量数据的通信,下位机的波特率误差性是影响可靠通信的最主要因素。所以在下位机软件的设计时应重点考虑并设置好波特率。 下位机软件的实现:

①设置通信方式和波特率的值及发送数据到缓冲器

MOV TMOD,#20H

MOV TH1,#0FDH

MOV TL1,#0FDH

SETB TR1

CLR TI

MOV SCON,#50H

MOV PCON,#00H

MOV R6,#30

SETB P2.7

MOV A,#97

MOV SBUF,A

②等待接收PC机发来的信号帧并按通信协议作出相应响应。

(3)通信协议设计

在进行数据通信的软件设计时,必须解决好两个方面的问题:一是可靠性,二是速度。而这两方面的问题,可靠性是第一位的,速度只能是在可靠的基础上的速度。可靠快速转输的实现,需要PC-单片机软件以及通信协议等各个环节的可靠和其间的相互配合。由于温度采集和实施控制是通过单片机控制系统实现,而微机完成温度监控,所以需要采用单片机和微机之间的通信协议。本设计应用条件为传输距离不超过15米的短距离数据传输,且传输数据量较小,所以采用在控制领域里应用较广泛RS232C串行通信方式。

本通信协议的设计思想是基于帧传输方式。即在向RS232串口发送命令信号,应答信号及数据信号时,是一帧一帧地发送的。为了使数据快速可靠地传输,将每一帧数据唯一对应一命令帧。

另外串口接收和发送数据过程如下:

Bwifpgaadelphi课程设计报告

串口数据发送过程

Bwifpgaadelphi课程设计报告

串口数据接受过程

以上是将应用程序发送过来的数据作为一个数据流放在发送缓冲区中,通过通信协议进行分帧──切割──发送。在接收端,分帧的数据去掉帧头重新组合到接收缓冲区中,交给应用程序处理.

主界面代码:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls, ExtCtrls, SPComm, TeEngine, Series, TeeProcs, Chart, DbChart;

type

TForm1 = class(TForm)

Panel2: TPanel;

StatusBar1: TStatusBar;

Edit2: TEdit;

Edit3: TEdit;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

ComboBox1: TComboBox;

ComboBox2: TComboBox;

ComboBox3: TComboBox;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Comm1: TComm;

Timer1: TTimer;

DBChart1: TDBChart;

Series1: TLineSeries;

Timer2: TTimer;

Button4: TButton;

Memo1: TMemo;

Timer3: TTimer;

procedure FormCreate(Sender: TObject);

procedure Edit3Change(Sender: TObject);

procedure Comm1ReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word);

procedure ComboBox1Change(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure ComboBox2Change(Sender: TObject);

procedure ComboBox3Change(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Timer3Timer(Sender: TObject); private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

k:Integer ;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject); begin

edit2.Text := 'COM1';

edit3.Text := '9600';

combobox1.ItemIndex := 0;

combobox2.ItemIndex := 0;

combobox3.ItemIndex := 0;

end;

procedure TForm1.Edit3Change(Sender: TObject); var

i:Integer ;

begin

try

i:= strToInt(Edit3.Text)

except

Edit3.setfocus;

raise Exception.Create('波特率设置错误');

end;

comm1.BaudRate := StrToInt(Edit3.Text);

end;

procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word);

var

strRecv : string;

begin

setLength(strRecv,BufferLength);

Move(Buffer^,pchar(strRecv)^,BufferLength);

Memo1 .Lines.Add('当前温度:'+strRecv+'度');

Memo1 .Invalidate ;

k:=StrToInt(strRecv ) ;

end;

procedure TForm1.ComboBox1Change(Sender: TObject);

begin

comm1.ByteSize := TByteSize(combobox1.ItemIndex);

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

comm1.CommName := edit2.Text;

comm1.BaudRate := strToInt(edit3.Text);

comm1.ByteSize := TByteSize(combobox1.ItemIndex);

comm1.StopBits := TStopBits(combobox2.ItemIndex); comm1.Parity := TParity(combobox3.ItemIndex); try

Comm1.StartComm;

except

raise Exception.Create('打开串口错误');

end ;

statusbar1.Panels[0].Text := Comm1.CommName + '已打开'; statusbar1.Refresh;

button1.Enabled := False;

button2.Enabled := True;

button3.Enabled := True;

end;

procedure TForm1.ComboBox2Change(Sender: TObject); begin

comm1.StopBits := TStopBits(combobox2.ItemIndex); end;

procedure TForm1.ComboBox3Change(Sender: TObject); begin

comm1.Parity := TParity(combobox3.ItemIndex);

end;

procedure TForm1.Button3Click(Sender: TObject); begin

Comm1.StopComm;

statusbar1.Panels[0].Text := Comm1.CommName + '已关闭'; statusbar1.Refresh;

button1.Enabled := True;

button2.Enabled := False;

button4.Enabled := False;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Timer2.Enabled :=True;

Button2.Enabled :=False ;

Button4.Enabled :=True ;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

StatusBar1.Panels[1].Text:=' 日期和时间: '

+datetimetostr(now);

if StatusBar1.Panels[2].Text='设计者 : '+'宋传海'+','+'李亚宾'+','+' 许永艳 '

then

StatusBar1.Panels[2].Text:='指导老师 : '+'陈震'

else

StatusBar1.Panels[2].Text:='设计者 : '+'宋传海'+','+'李亚宾'+','+' 许永艳 '

end;

procedure TForm1.Timer2Timer(Sender: TObject);

begin

DBChart1.Series[1].Add(k) ;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

timer2.Enabled :=False ;

Button4.Enabled :=False ;

Button2.Enabled :=True ;

end;

procedure TForm1.Timer3Timer(Sender: TObject);

begin

if k>125 then

form2.show;

end;

end.

警报界面程序:

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, MPlayer, ExtCtrls, StdCtrls;

type

TForm2 = class(TForm)

Shape1: TShape;

Image1: TImage;

MediaPlayer1: TMediaPlayer;

Timer1: TTimer;

Button1: TButton;

procedure FormCreate(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject); begin

MediaPlayer1 .Play ;

Shape1.Brush.Color:=clRed;

end;

procedure TForm2.Timer1Timer(Sender: TObject); begin

if Shape1.Brush.Color=clRed then

Shape1.Brush.Color:=clWhite

else

Shape1.Brush.Color:=clRed ;

end;

procedure TForm2.Button1Click(Sender: TObject); begin

Timer1.Enabled:=False ;

MediaPlayer1 .Stop;

end;

end.

第四章 缺点及可能的解决方法

本系统采用了DS18B20测温,小硬件的使用要进行相应的补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。对DS18B20操作部分最好采用汇编语言实现。在DS18B20的有关资料中均未提及单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS1820的返回信号,要保证DS18B20接触良好不能断线,防止程序读该DS1820时,没有返回信号,程序进入死循环。

另外上位机接收数据后显示不够稳定,接收数据比较慢,因此在开发上位机软件的时候不应该使编写的程序过于复杂,尽量简化编写的程序。从而避免问题的发生。

第五章 心得体会

通过本次温度采集系统的设计,我大有收获,对DELPHI这门课更有兴趣,同时也用到了单片机和温度传感器,又对它们更是进一步的研究,自己深感满足,感觉这次课程设计很充实,学到了不少以前没有学到过的知识,

在制作过程中,我注意了每个工作步骤的检查,确保制作成功。比如上位机软件的开发,一开始感觉很困难,自己不知如何下手,就开始翻阅资料慢慢试着编写,一步一步的调试,若出现问题细心谨慎,沉着冷静,慢慢查阅相关资料反复检查,直至找到问题为止。从一开始的确定课题,到后来的资料查找、理论学习,再有就是近来的调试和测试过程,这一切都使我的理论知识和动手能力进一步得到验证,这次课程设计我保持了沉着冷静的头脑,联系书本理论知识积极地思考,实在解决不了的问题我就和同学一起探讨或者上网上查阅资料。虽然在制

作过程中不可避免地遇到很多问题,但是最后还是在自己的努力个同学的帮助下圆满解决了这些问题,实现了整个系统设计与最后调试,相关指标达到期望的要求,很好地完成了本次设计任务。

经过一学期的学习,在这次课程设计中充分把所学的知识得到综合运用,从一开始对各个器件的认识选取,从对原理图的认识,一丝不苟的设计到完成,我总是一步一个脚印。在这一个充满挑战伴随挫折,充满热情伴随打击的过程中,我感触颇深,它已不仅是一个对我一学期学习知识情况和我的应用动手能力的检验,而且还是对我的钻研精神,面对困难的心态,做事的毅力和耐心的考验。我在这个过程中深刻的感受到了做课程设计的意义所在,和我一样真正投入了身心去做的人也一定会有同样的感触。

最后通过本次课程设计我对传感器的基本理论知识的到进一步的了解,更深入的掌握单片机的开发应用和PC编程控制以及PC软件开发打下了良好的基础,并在这种能力上得到了比较充分的锻炼。

附录一、参考文献

(1)《DELPHI与电气控制》 陈震 许玲 河南机电高专

(2) 《Delphi应用程序设计》 李目海 电子科技大学出版社

(3) 《Delphi基础教程》 丁兆海 电子工业出版社

(5) 《单片机原理及应用技术》江立 清华大学出版社

(6) 《从零开始Delphi基础培训教程》 老虎工作室 人民邮电出版社

(7) 《面向对象开发实践之路——Delphi版》 李维 电子工业出版社

相关推荐