关于delphi上位机的报告

2018-12-22 23:44

关于DELPHI上位机的报告 陈哲 控制科学与技术 2010000766

关于Delphi上位机的报告

一.Delphi基本概念介绍 1.1 Delphi的基本形式

Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言 (Object - Oriented Language)、当今世界上最快的编辑器、最为领先的数据库技术。对于广大的程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入,您将会发现编程不再是枯燥无味的工作——Delphi的每一个设计细节,都将带给您一份欣喜。Delphi实际上是Pascal语言的一种版本,但它与传统的Pascal语言有天壤之别。一个Delphi程序首先是应用程序框架,而这一框架正是应用程序的“骨架”。在骨架上即使没有附着任何东西,仍可以严格地按照设计运行。您的工作只是在“骨架”中加入您的程序。缺省的应用程序是一个空白的窗体(Form),您可以运行它,结果得到一个空白的窗口。这个窗口具有Windows窗口的全部性质:可以被放大缩小、移动、最大最小化等,但您却没有编写一行程序。因此,可以说应用程序框架通过提供所有应用程序共有的东西,为用户应用程序的开发打下了良好的基础。Delphi已经为您做好了一切基础工作——程序框架就是一个已经完成的可运行应用程序,只是不处理任何事情。您所需要做的,只是在程序中加入完成您所需功能的代码而已。 在空白窗口的背后,应用程序的框架正在等待用户的输入。由于您并未告诉它接收到用户输入后作何反应,窗口除了响应Windows的基本操作(移动、缩放等)外,它只是接受用户的输入,然后再忽略。Delphi把Windows编程的回调、句柄处理等繁复过程都放在一个不可见的Romulam覆盖物下面,这样您可以不为它们所困扰,轻松从容地对可视部件进行编程。 1.2 面向对象编程的概念

面向对象的程序设计(Object-Oriented Programming,简记为OOP)是Delphi诞生的基础。OOP立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进Windows编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写容易。说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼容,只是

1

关于DELPHI上位机的报告 陈哲 控制科学与技术 2010000766

部分面向对象反而会使情形更糟。除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多。而Delphi是完全面向对象的,这就使得Delphi成为一种触手可及的促进软件重用的开发工具,从而具有强大的吸引力。

一些早期的具有OOP性能的程序语言如C++,Pascal,Smalltalk等,虽然具有面向对象的特征,但不能轻松地画出可视化对象,与用户交互能力较差,程序员仍然要编写大量的代码。Delphi的推出,填补了这项空白。您不必自己建立对象,只要在提供的程序框架中加入完成功能的代码,其余的都交给Delphi去做。欲生成漂亮的界面和结构良好的程序丝毫不必绞尽脑汁,Delphi将帮助您轻松地完成。它允许在一个具有真正OOP扩展的可视化编程环境中,使用它的Object Pascal语言。这种革命性的组合,使得可视化编程与面向对象的开发框架紧密地结合起来。

二.PIC单片机及串行通信接口

PIC单片机是一种RISC(精简指令集计算机)、哈佛双总线和两级指令系统流水线结构的高性价比的8位嵌入式控制器,具有集成度高、速度快、工作电压低、功耗低、I/O直接驱动、指令简单易学易用等特点,是目前使用非常广泛的一种单片机。在PIC系列单片机中多数型号具有串行通信接口USART(通用同步异步收发器),选用的PIC单片机(PIC16c)PORTC口的RC6、RC7分别与发送端TX、接收端RX复用。为了把它们分别设置成串行通信接口的发送和接收线,需要把片内的寄存器RCSTA中的SPEN位(D7)置1,同时还需要把PORTC的方向控制寄存器TRISC的D7位和D6位分别置1和置0,即将RC7、RC6分别设置为输人和输出。单片机内与串行通信有关的寄存器为:发送状态和控制寄存器TXSAT、接收状态和控制寄存器RCS.TA、波特率寄存器SPBRG、发送移位寄存器TSR、发送缓冲器TXREG、接收移位寄存器RSR和接收缓冲器 在Delphi中进行串行通信的方法有以下几种:

a)利用嵌人式汇编语言; b)调用Windows中的API函数; c)利用ActiveX控件;

d)利用第三方控件,一般情况下较易实现串行通信,能够用少量的代码轻松高效地完成任务。

本文采用Spcomm控件,其功能强大,使用方便,具有丰富的与串口通信密

2

关于DELPHI上位机的报告 陈哲 控制科学与技术 2010000766

切相关的属性事件和方法,提供了对串口的各种操作。其主要属性、事件及方法如下。

1)属性

Commnamm:表示串口coml、corn2的名字;

Baud rate:根据实际情况设定的波特率,在打开串口后也可更改此值,实际波特率随之改变;

Byte size:根据实际情况设定的字节长度; Parity check:表示是否需要校验; Parity:奇偶校验位; st0p bits:停止位;

Senddataempty:布尔型属性,为True时表示发送缓存为空或者发送队列中没有消息,为False时表示发送缓存不为空。

2)事件

Onreceivedata:当有数据输人缓存时,将触发该事件; OnreceiveError:当接收数据出现错误时,触发该事件。 3)方法

Startcomm:用于打开串口,当打开失败时通常会报错; Stopcomm:用于关闭串口,没有返回值;

Writecommdata:用于将一个字符串发送到写进程。硬件连接见图l。MAX232ACPE为一个电平转换器,以实现,ITIIL电平与RS-232电平的相互转换。

图1.硬件连接示意图

程序实现。

先创建一个工程comm.dpr,把窗体的NAME属性定义为FComm,窗口的标题定义为串口通信,再添加控件COMM,然后设定FComm窗体中COMM属性,波特率为9.6 kb/s,奇偶校验位设为False,字节长度设为8,停止位设为1,串口(Comm.Name)设为COM1。

上位机主要通信程序如下:

procedure tfcomm.formshow(sender:tobject);

3

关于DELPHI上位机的报告 陈哲 控制科学与技术 2010000766

begin

comm1.startcomm; //创建窗体时将Comm控件打开 end

procedure fcomm.formclose(sender:tobject;var action:tcloseaction); begin comm1.stopeomm; //关闭窗体时将Comm控件关闭 end

procedure senddata; //定义数据发送过程 vat i:integer; commflg:boolean begin

viewstring: ; commflg: true; for i:=1 to 8 do begin

ifnot fcomm.comm1.writeeommdata(@sbuf[i],1)then begin commflg:=false; break end; sleep(2);

viewstring:=viewstring+inttohex(subf[i],2); end;

viewstring::发送 +viewstring; fcomm.memo.1ine.add(viewstring); fcomm.memo.1ine.add(); if not commflg then

messageflg(发送失败.mterror.[mbyes],0); end

procedure tfcomm.buttonclick(sender:tobject); //接收数据过程VHI strreceive:string; bufer:pointer; buferlength:word;

4

关于DELPHI上位机的报告 陈哲 控制科学与技术 2010000766

begin

setlength(strreceive。buferlength);

move(bufer~,pcher(strreceive) ,buferlength);

memo.1ine.add(strreceive); //接收传送来的数据并在窗体中显示 memo.invalidate; end end

本文对Delphi下利用spcomm控件实现上位机(PC机)与PIC单片机之间的串行通信的方法进行了探讨。通信程序编制容易实现,具有一定的参考价值。该串行通信方法值得在其他工程中应用。

三.Delphi 环境下PC 机与AVR单片机的串行通讯

本文即介绍了X 射线板材测厚系统中上下位机的串行通讯。下位机采用AVR 单片机ATmega16 进行数据采集,前置电路对3 路检测信号进行光电转换和放大处理后送入到ATmega16 单片机自带的10 位A/ D 转换器中进行A/ D 转换,单片机再将三路转换值以16 进制通过串行通讯发往PC 机; 上位机中采用Delphi 编写软件, 利用Delphi 的强大数据库功能管理下位机发送的数据,供图表显示和产量、成品计算等;并在Delphi 中利用SPComm 控件实现与下位机的串行通讯。

3.1下位机软件设计

AVR 单片机ATmega16 的USART 是一个高度灵活的串行通讯设备,能进行全双工操作,可工作在异步方式或同步方式下,并具有多处理器通讯模式、倍速异步通讯模式等增强型通信功能。

下位机的软件设计主要是通讯协议的设定和相关程序的设计。

(1) 通讯协议给上下位机设置适当的通讯协议是保证上下位机能正常通讯的基础。系统采用全双工异步通讯模式,通讯协议设置如下:波特率 采用9 600 帧格式,数据格式采用8 位数据位,1 位起始位,1 位停止位。为使通讯更可靠,使能了奇偶校验功能,采用奇校验。但如果上位机检测出所接收的数据错误,则丢弃不用,不再给下位机发信号请求重新发送数据,以保证单片机稳定的采样频率。握手协议,采用软件实现上下位机的握手,下位机要往上位机发送数据时,先发送一个握手信号:aa ;上位机收到后回发一个信号:bb ,表示已经做好数据接收准备。

(2) 程序设计

5


关于delphi上位机的报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2014年-2019年德邻莲池文化传媒有限公司发展战略规划建议书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: