单片机
捌童经济 科技研发
解数据采集的情况,然后描绘出波形曲线。首先建立一个VB项目,并在窗体上.安排一个MSCOMM控件,作为串行通讯的信道。调出属性窗口,设置变量COMPORT属性为2。另外将Rthreshold属性设为1,从而达到只要外界传送任何字符串,随即引发事件。安排一个定时器,作为连续动作的执行控件,只要一位数据发送完就能引发中断,发送下一个数据。设置一个picturebox对象。把由单片机传送来的数据以线条方式绘制在图片框控件上。再调出属性窗口,把其中的Name属性改为“Graphl”。本程序接收从单片机发来的40个数据,当数据进入PC机的输入缓冲区后,程序会不断读取输入缓冲区的数据。并将这些读入的数据收在一起,赋给数组。计算机RS-232串行通信测试软件采用VB6,0开发,vismlBasic
6.0
(简称VB6.0)w支持坐标格式,我们可
以用SCALE函数作出坐标,定义x轴由0到40,表示有40个数据,Y轴由-20gO+20.表示采集数据的范围是-20到+20,表达式为SCALE(0,+20)-(40,一20)。为了实时采集数据,可以用定时器不断地更新曲线。这样就可以动态地显示被采集的数据。
Privatesub
form_loadO
Comml.portopcn5trueTimer.interval=1000
’定时器时间间隔为1000s
Timer.enabled=true
Mscomml.compore=l’选择通讯口1
Mscomml.settings=“110,n,8,1”
’波特率
110,无奇偶校验,8个数据位,一个停止
位
Mscomml.inpumaode=l’以二进制形式取回数据Mscomml.inpuden=O’读取接收缓冲区的内容
IVlscomml.rthreshold=l
’每收到一
个字符位引发oncomln事件Graphl.scale(0。20)一(40,-20)’定制
坐标
Grahpl.forecock=-rgb(0,0,255)
EndsubPrivateSub
Commandl_Click0
Dima!(40),b!(40)
n帅2
MSComml.1nBufferCount
’取
输入缓冲区字节个数
血缸IIg=MSComml.Input
7把输
入缓冲区数据送给数组
Fori=0To
num.一1
ChIn-ColIoctlvo
万方数据
IKoonomya(i)2
i
b(i)=确ng(i)
GRAPHl.ClsIfi=1Then
GR^PHl.Pset(a‘i)。b(i))
Else
GRAPHl.Line一(a(i),b(i))将数
组数据给绘图函数
EndIf
Nexti
EndSub
以人工智能的理论为基础.根据计算机故障诊断专家系统的实践经验.以及收集了大量计算机故障诊断资料,从计算机不同的故障特征建立了诊断指标,开发计算机故障诊断专家系统。结果表明,该指标科学合理、有效,可以进行故障诊断。在现实生活中具有广泛的应用价值。这样,将人工智能与离散事件系统仿真技术相结合,以单片机硬件电路为专家系统的知识来源,建立了单片机硬件配置专家系统,并且阐述了一种基于离散事件系统仿真原理的单片机系统仿真软件的仿真策略,应用进程交互法对单片机应用系统的软、硬件实现了仿真。
四、VB环境下通讯程序的设计通讯程序的设计是一个重要环节。VB提供了串行端口控制1VlBcomlll来为
应用程序提供串行通讯。该控件屏蔽了通信过程中的底层操作,程序员可以设置、监视Mscomm控件的属性和事件.结合
Timer控件即可完成对串行口的初始化和数据的输入输出工作。Mscomm控件的主要属性如下:
Commport设置并返回通讯端口号。
端口号可以设置为I-16的任何数.如MSCOHl.m.Commport=2表示设置当前通讯端口为COM2。
setting设置并返回波特率、奇偶校验、数据位、停止位。格式为Mscomm.
setdng=S豳g。String是一个包含4部分
的字符串:第一部分为波特率;第二部分为奇偶校验,N表示不校验.M表示符号校验,E表示偶校验,o表示奇校验,S表示空格校验;第三部分为数据位数,其可选值为4,5.6,7,8;第四部分为停止位位数。其可选值为I。1.5,2。Set6ng属性的缺
省值为。9600.N,8.1”。
Portopen设置并返回通讯端口的状
态,也可以打开和关闭端口。
Input从接收缓冲区返回和删除字符。该属性在运行时为只读。
Input[an设置并返回每次Input属性从接收缓冲区中读取的字符数。In_putLen属性的缺省值为0。设置lnputI七n为0时,Input将读取接收缓冲区的全部字符。
Output向传送缓冲区写数据。要传
送的数据可是文本数据或二进制数据。
CommEvent返回最近的通讯事件或错误。只要有通讯错误或事件发生错误时就会产生Oncomm事件。CommEvent属性中存有该错误或事件的数值代码。Timer控件的主要属性如下:Enabled返回或设置一个值。该值用来确定一个窗体或控件否能够对用户产生的事件作出反应。通过把Enabled设置为“QIl3e”来使Timer控件成为无效,将取消由控件的Interval属性所建立的倒计时数。Interval返回或设置对Timer控件的计时事件调
用间的毫秒数。Timer控件的Enabled属
性决定该控件是否对时间的推移作出响应。将Enabled设置为。False”会关闭
Timer控件。设置为“True”则打开Timer
控件。当Timer控件置为有效时,倒计时总是从其Interval属性设置值开始。创建
Timer事件程序。可通知VB在每次II卜terval到时该做什么。Timer控件和En-
abled属性设置为“True”时,VB将在In-
terval时间到后自动访问TimerTimer过
程。为实现通讯程序。须在VB开发环境下设置一个用做控制通讯的窗体。窗体上主要有一个通讯控件Mscomrrfl和两
个Timer控件。VB的特点是事件驱动,
定时器控件会定时触发相应事件的驱动程序。
(一)发送单片机命令
事实上,为了使主机能够对整个检测过程进行实时控制.须要在发送命令以后设定等待的时间。也可以通过条件判断下一步是发达还是接收命令。对发送的命令,可能是文本方式或二进制代码。在发送二进制代码时,应特别注意发送的格式。发送命令过程是一个带参过程,这样可使发送命令简便易行。具体程序如下:
Sub发送单片机命令过程(coll'lllq-iind
Dim输出命令(1
To
1)As
Byte
DoEvenm
输出命令(1)=command
MSComml.OutBufferCount=0
MSComml.Output=输出命令MSComml.InBufferCount=0
^sByte)
■口圜2000.04(上)