首页 工作计划 工作总结 事迹材料 心得体会 述职报告 疫情防控 思想汇报 自查报告 党建材料 策划方案 教案设计 范文大全
  • 主题教育
  • 党课下载
  • 党史学习
  • 振兴乡镇
  • 工作汇报
  • 不忘初心
  • 规章制度
  • 谈话记录
  • 扫黑除恶
  • 共同富裕
  • 脱贫攻坚
  • 整改报告
  • 工作要点
  • 对照材料
  • 调查报告
  • 教育整顿
  • 观后感
  • 申请书
  • 讲话稿
  • 致辞稿
  • 评语
  • 口号
  • 发言稿
  • 读后感
  • 治国理政
  • 学习强国
  • 公文范文
  • 基于VB,6.0智能电子自旋共振仪系统绘图模块实现

    时间:2023-07-05 12:45:05 来源:正远范文网 本文已影响 正远范文网手机站

    摘 要:结合普通高校的近代物理实验电子自旋共振,介绍新型电子自旋共振仪器的数据处理支撑系统,在实验测量过程中,利用VB 6.0平台实时采集数据,并由控制程序将所测得的数据绘制成动态曲线显示在绘图区中,通过双游标可以轻松地获得动态曲线上任意点的坐标值,并根据数值分析实验结果。对实验总体分析精确、清晰,打破了传统物理实验的枯燥性。

    关键词:智能电子自旋共振仪; VB 6.0; 动态曲线; 双游标; 实时通信

    中图分类号:TP311 文献标识码:A

    文章编号:1004-373X(2010)10-0202-02

    Realization of Drawing Module in Smart Electron Spin Resonance System Based on VB6.0

    XIAO Yu-zhi1, DUAN Xin-wen2, ZHAO Jian-fei2

    (1. Network Information Department, Qinghai Normal University, Xinning 810008, China; 2. Physics Department, Qinghai Normal University, Xinning 810008, China)

    Abstract:A new data-processing support system of a novel electron spin resonance instrument is introduced in combination with the electron spin resonance in the modern physics experiment in the common colleges and universities. During the experimental measurement, the real-time data acquisition is performed with VB6.0 platform, and the dynamic curve is plotted according to the measured data and displayed in the drawing area by the control program. The coordinate value of any point on the curve can be obtained easily through the double-dynamic cursor. The experimental results are analyzed based on the numerical value.. The overall analysis of the experimental is precise and clear.

    Keywords:intelligent electronic spin resonance instrument; VB6.0; dynamic curve; double-cursor; real-time communication

    近年来,电子顺磁共振(electron paramagnetic resonance,EPR)或称电子自旋共振(electron spin resonance,ESR)技术已成为一门新型的科学技术[1]。它的应用领域非常广泛,特别是在物理、化学、医学方面的应用更为突出,许多电子生产厂家向市场推出了不同型号的电子自旋共振仪器[2],其硬件的发展非常迅速,然而相应的系统软件的支撑却比较薄弱,所以电子自旋共振仪器的系统支撑软件的开发将成为一个新的热点。

    1 绘图模块的开发环境

    对某一个系统的开发,开发者可以选用各种编程语言来完成,通常使用的高级语言如C++,Java,PB,Visual Basic等,各种语言有各自的优点与缺点,基于不同的用户需求选用的语言也有所不同。该实验系统的开发中选用了Visual Basic 6.0,选用它的主要原因是[3]:

    (1) Visual Basic 6.0具有友好的可视化界面;

    (2) Visual Basic 6.0自带的通信控件可以方便地与智能电子自旋共振仪器进行通信;

    (3) Visual Basic 6.0中的画线功能可以自由地绘出绘图区中的谱线;

    (4) 程序代码易于以后的修改与扩充。

    2 绘图区实现[4]

    在此使用图片框(pictuer 2)来显示共振谱线,所以第一步就是要在窗体上定位图片框,并为其设置外观及其他属性。在该实验中,绘图区(picMain)中显示曲线有坐标值,所以首先画出图片框,然后在图片框中定制曲线生成区。定制图片框或绘图区都要先确定他们在窗体的哪个位置。所以下面先阐述VB中坐标系的定义。

    2.1 坐标系的确定

    VB坐标系介绍:VB里有3种坐标系,屏幕坐标系、窗体坐标系和窗体内的对象坐标系。这3种坐标系都是以其左上角为坐标原点,与平常使用的几何坐标系不一致,常使人们绘图时感到不习惯。VB允许编程人员自定义坐标系,根据需要定义坐标原点的位置。默认的坐标系统是容器的左上角的坐标为(0,0),右下角坐标为(Width,Height),为了根据自己的需要来定义坐标系统,用到了Scale相关属性。

    通过设置ScaleLeft和ScaleTop来设置左上角的坐标。实验中右下角坐标为:

    Private Function draw_pic()

    pic_main.ScaleWidth = XX*(pic_max_x-1)

    pic_main.ScaleHeight =YY*((pic_max_y / pic_y * 4)-1)

    End Function

    2.2 设置绘图区网格

    定制好了绘图区,为了绘图区的美观,绘图中区加了横纵相交的网格。横坐标固定只有5个细分格,纵坐标固定4个细分格。部分代码如下:

    Private Function draw_pic()

    For i = 1 To pic_max_x / pic_x - 1

    pic_main.Line (XX * i * 5, 0)-(XX * i * 5, pic_main.ScaleHeight)

    End Function

    2.3 设置坐标

    根据绘图区的大小与高度绘制x轴和y轴。

    3 绘图模块实时曲线的生成[5-9]

    画好绘图区及坐标系后,就要在绘图区绘制实时曲线, 实时曲线的绘制一般借助于Timer控件来完成,使用Timer控件,定期将串口或是其他仪器中监测到的数据送往pic_main,而曲线的绘制一般画成折线图,采用PictureBox1的Line方法绘制。用Line方法可以在窗体或图片框上绘制一条直线或绘制一个矩形。

    Line方法的一般格式:

    [对象名.] Line (x1,y1)- (x2,y2) [,颜色]

    其中:(x1,y1)为始点坐标;(x2,y2)为终点坐标;颜色可以使用RGB函数,规定画线或画矩形的颜色。代码如下:

    3.1 曲线的生成

    曲线的生成为:

    Private Sub draw_line()

    next_y = pic_main.ScaleHeight - ValueArray(i) / pic_max_y * pic_

    main.ScaleHeight

    End Sub

    3.2 时钟更新曲线

    时钟更新曲线为:

    Private Sub timer1_timer()

    If Trim(data_array(i)) <> "" And i < 75 Then ′去处字符串首尾的空格

    ValueArray(i) = CLng("&H" + data_array(i)) ′十六进制转换成十进制

    pic_main.Enabled = True

    End Sub

    这样,就完成了在绘图区中显示从单片机实时采集到的数据的任务。

    4 双游标读取某两点的数值差

    用4条线来描述双游标。首先在绘图区上放置4条直线控件,4条线放置成2对坐标形式(十字相交)。并设置4条线的属性:

    4条直线的名称分别为线c0_x,c0_y,c1_x,c1_y。

    颜色分别为c0_x.bordercolor=&H000000FF&;c1_x.bordercolor &H00FFFF00&。

    4.1 获取任意点的坐标值

    通过在曲线上单击鼠标左键来获得坐标值

    Private Sub pic_main_MouseDown(Button As Integer, Shift As Integer, x As Single,y As Single) ′取坐标

    If (Abs(c0_x.Y1 - y) < Abs(c0_x.X1 - x)) Then

    event_line_length_0 = Abs(c0_x.Y1 - y)

    End Sub

    4.2 任意点坐标值的显示

    因为获取的是任意点的坐标值,所以鼠标放在曲线的任意位置时,坐标C0()与坐标C1()的值相应的要改变。

    某点的坐标如图1所示。

    图1 某点坐标

    Private Sub pic_main_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)

    lbl_c0.Caption = "坐标C0:(" + str(FormatNumber((75 - (1 - x / pic_main.ScaleWidth) * pic_max_x), 2)) + "," + str(FormatNumber((1 - y / pic_main.ScaleHeight) * pic_max_y, 2)) + ")"

    End Sub

    最后实验生成的曲线如图2所示。

    图2 实验曲线

    5 结 语

    电子自旋共振仪数据支撑系统,基于VB 6.0平台,代码简单、容易扩充。学生可以根据个人需求进行系统功能的扩充。系统设计的控制程序[10]将所测得的数据绘制成动态曲线显示在绘图区中,实验数据的采集更为直观和准确。

    参考文献

    [1]陈志英,李光辉.单总线(1-Wire Bus)技术及其应用[J].国外电子元器件,2003(7):74-75.

    [2]杨金岩,郑应强.8051单片机数据传输接口扩展技术与应用实例[M].北京:人民邮电出版社,2005.

    [3]BOB RESELMAN, RICHARD PEASLEY. Visual Basic 6.0使用指南[M].北京:电子工业出版社,2001.

    [4]李兰,李玮.Visual Basic.NET图形图像编程与实例详解[M].北京:电子工业出版社,2002.

    [5]JAN AXELSON.串行端口大全[M].北京:中国电力出版社,2004.

    [6]佚名.一种8086单片机和PC机的串行通信[EB/OL].[2004-10-06]./.

    [7]李鸿吉.Visual Basic高级编程技术[M].北京:科学出版社,2003.

    [8]林永.Visual Basic程序员Windows API编程手册[M].北京:人民邮电出版社,2002.

    [9][美]STEVEN JORDAN.Visual Basic 6编程宝典[M].北京:电子工业出版社,2005.

    [10]蔡美琴.MCS-51系列单片机系统及其应用[M].北京:高等教育出版社,1990.

    推荐访问:自旋 共振 绘图 模块 智能