038_人机接口设备—示波器的仿真
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
2 系统的总体设计
系统设计的基本思想是以示波器的工作原理为基础,通过Visual C++语言设计实现完成一个小型的示波器仿真系统。
2.1 系统功能说明
本系统是利用VC++的MFC类库设计搭建的应用程序基本框架,在其基础上添加一些相关的类和消息处理机制。本系统在运行以后,就可以点击相关的按钮来选择单踪波和双踪波的演示。并在此基础上可以点击相应的按钮来调节波形幅度和波形周期,另外,如果选择的是双踪波的演示,我们可以点击相应的按钮来实现双踪波的分离,使两个波的幅度差越来越大。直观上充分的说明了示波器的工作原理。功能模块划分如下:
图1 功能模块图
2.2 开发运行平台选择及分析
本系统是以VC++6.0结合图形可视化的思想作为系统的开发环境。
2.2.1 实现系统的硬件环境
实现本系统的硬件配置如表1所示:
表1硬件配置
CPU AMD Sempron(tm) 2200+
内存 1.50 GHz,512 M
显卡 NVIDIA GeForce4 MX 440 with AGP8X
笔者所搭建的仅是一个小型的实验模拟系统,因此一般的用户PC机都可畅通无阻的运行本程序。 【买计算机毕业论文就到www.think58.com】
2.2.2 实现系统的软件环境
Visual C++自诞生以来,一直是Windows环境下最主要的应用开发系统之一。Visual C++不仅是C++语言的集成开发环境,而且与Win32紧密相连,利用Visual C++开发系统,可以完成各种各样的应用程序开发,从底层软件直到上层直接面向用户的软件。而且,Visual C++强大的调试功能也为大型复杂软件的开发提供了有效的排错手段。 本文来自think58 [资料来源:THINK58.com]
进入20实际90年代以来,随着多媒体技术和图形图像技术的不断发展,可视化(Visual)技术得到广泛的重视,越来越多的计算机专业人员都开始研究并应用可视化技术。Visual C++是一个很好的可视化编程工具,使用Visual C++环境来开发基于Windows的应用程序大大缩短了开发时间,而且它的界面更友好,便于程序员操作。
2.2.3 实现系统的理论基础
Visual C++是一个很好的可视化编程工具,使用Visual C++环境来开发基于Windows的应用程序大大缩短了开发时间,而且它的界面更友好,便于操作。开发环境是编程者同Visual C++的交互界面,通过它可以访问C++源代码编辑器、资源编辑器、使用内部调试器,还可以创建项目文件。
3 示波器仿真系统的实现
3.1 应用程序平台基本框架的建立
笔者使用VC++6.0结合图形可视化技术实现了示波器的仿真试验系统。打开Visual C++6.0操作界面,建立工程类型为MFC AppWizard [exe] 的对话框文档的新工程,系统自动为用户创建CMyApp, CMyDlg两个类。创建过程如图所示:
图2 创建工程的界面
图3 选择工程类型的界面
图4 创建好的工程信息界面
在Resource View中的Dialog文件目录下有两个对话框,分别为IDD-ABOUTBOX和IDD-MY-DIALOG,如下图所示:
内容来自think58 [资料来源:THINK58.com]
图5 IDD-ABOUTBOX
在IDD-MY-DLALOG对话框中进行设置,在对话框中添加一个STATIC TEXT控件和四个GROUP BOX控件,然后再在每个GROUP BOX控件中添加相应的BUTTON按纽,结果如图所示:
图6 IDD_MY_DIALOG
3.1.1 添加消息处理函数
为每个按纽创建类向导,右键单击,选择“CLASS WIZARD”,就会出现如图所示的对话框:
图7 CLASS WIZARD对话框
此对话框主要是用来为每个用ID标志的按纽添加消息处理函数,如对应的ID为IDC-BMINUS的按扭,有两个相应的消息处理函数,如BN_CLICKED与BN_DOUBLECLICKED,而我们在此工程中用到的是BN_CLICKED,点击有边的添加消息处理函数就可以了,双击相应的消息处理函数名就可以进入相应的消息处理函数的编辑,如对应的幅值增加按扭的消息处理函数为:
Void CMy22Dlg::OnVoltplus ()
ID_VOLTMINUS (对应的幅值减小的按扭):
Void CMy22Dlg::OnVoltminus ()
在相应的DLG..H文件中的CLASS CMY22Dlg: public CDialog中就会出现相应的消息处理函数的声明
{{AFX_MSG (CMy22Dlg)
Virtual BOOL OnInitDialog ();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
think58.com
[资料来源:http://www.THINK58.com]
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnVoltplus();
afx_msg void OnVoltminus();
afx_msg void OnTimeplus();
afx_msg void OnTimeminus();
afx_msg void OnAplus();
afx_msg void OnAminus();
afx_msg void OnBplus();
afx_msg void OnBminus();
afx_msg void OnRadio1();
afx_msg void OnRadio2();
afx_msg void OnRadio3();
}}//AFX_MSG
DECLARE_MESSAGE_MAP ()
3.1.2 添加成员变量
同样右键单击“CLASS WIZARD”,在弹出来的对话框中点击“Member Variables”,就可对相应的控件添加相应的成员变量,如图所示:
图8添加成员变量的界面
在相应的DLG..H文件中的CLASS CMY22Dlg: public CDialog中就会出现以下代码:
// Dialog Data
//{{AFX_DATA(CMy22Dlg)
enum { IDD = IDD_MY22_DIALOG };
CButtonm_btnaminus;
CButtonm_btnaplus;
CButtonm_btnbminus;
CButtonm_btnbplus;
CButtonm_btntimeminus;
CButtonm_btnvoltplus;
CButtonm_btnvoltminus;
CButtonm_btntimeplus;
think58好,好think58 [资料来源:http://www.THINK58.com]
CString m_wndscope;
/