基于VC的MV05芯片PWM功能测试软件设计
[09-12 18:26:27] 来源:http://www.88dzw.com EDA/PLD 阅读:8127次
文章摘要:4 上位机软件设计本文上位机软件使用VC++6.0 开发。使用VC++最重要的就是能够了解控件的属性,熟 练对控件编程。VC++6.0 中的每个控件都有一个ID 号进行标识,每个ID 可以映射成一个变 量或响应函数。VC++6.0 中的类是方法和变量的总和,通过例化该类使用其中的方法和变量, 如本软件中的串口设置对话框:CSettingDlg setDlg; // 例化m_nPort = setDlg.m_nPort; //变量传递 将CsettingDlg 中的m_nTime = setDlg.m_nTime; //变量映射到主控类的变量m_strSettings = setDlg.m_st
基于VC的MV05芯片PWM功能测试软件设计,标签:eda技术,eda技术实用教程,http://www.88dzw.com4 上位机软件设计
本文上位机软件使用VC++6.0 开发。使用VC++最重要的就是能够了解控件的属性,熟 练对控件编程。VC++6.0 中的每个控件都有一个ID 号进行标识,每个ID 可以映射成一个变 量或响应函数。VC++6.0 中的类是方法和变量的总和,通过例化该类使用其中的方法和变量, 如本软件中的串口设置对话框:
CSettingDlg setDlg; // 例化
m_nPort = setDlg.m_nPort; //变量传递 将CsettingDlg 中的
m_nTime = setDlg.m_nTime; //变量映射到主控类的变量
m_strSettings = setDlg.m_strSettings;
4.1 串口通信模块设计
在Microsoft Windows 下开发串行通信程序的方法有:(1)利用WindowsAPI通信函 数(2)利用Windows的读写端口函数或开发驱动程序直接对串口进行操作(3)利用第三方 提供的通信类(4)使用串口通信组件。其中第四种方法较简单,只需要对串口进行简单设置[3]。本上位机串口通信程序使用MSComm控件进行开发。
MSComm控件是Microsoft公司提供 的简化Windows下串行接口收发数据的简便方法。MSComm处理数据有两种方法, 查询法和事 件驱动法[4],本文使用事件驱动法。 串口设置对话框独立于主对话框,通过串口设置按钮弹出,用户可以在串口设置对话框 中进行串口选择,设置波特率、停止位、校验位等参数[4]。软件在主控类中定义了一个全局 变量m_strSendString,上位机要发送的数据赋给该变量,然后通过发送函数发送出去。
4.2 PWM 模块
PWM 模块包括PWM 用户自定义模块和PWM 捕获模块,PWM 捕获模块与PWM 用户自定义模 块在控件使用和编程思想上是一样的,只不过数据包各位代表的意义不同,因此这里只介绍 PWM 用户自定义模块,PWM 捕获模块不再赘述。
PWM 用户自定义模块可以设置芯片PWM 模块的工作周期和PWM 波不同占空比,另外还增 加了ADC 联动功能。增加ADC 联动功能是为了测试下一款芯片功能设计的,此次测试并未用 到。PWM 模块的工作周期选择,PWM 波占空比选择和ADC 联动功能选择用复选框表示,用户 根据自己测试需要,选择不同的选项,最后按“确定”按钮将所选项目封装成数据包,按“启 动PWM”按钮将测试指令发送到下位机,进行测试。
根据通信协议将用户选择测试的项目封装成一个8 位数据包,该数据包存放在一个整型 数组里面,将该8 位数据看作是一个字符的二进制表示,根据每位数据所占的权值取加权和 得到一个10 进制数,最后将该10 进制数转化为一个16 进制数,该16 进制数就是最终要封 装的数据包。为了防止用户误选测试项目,软件中作了一些安全处理,当用户选择同类中的 一个测试项目后其它项目会变为不可选。软件界面如图1 所示。
PWM 用户自定义模式下数据包封装函数代码如下:
void CCommWizardDlg::OnButtonUsrMode()
{ UpdateData(TRUE); //数据更新
CString strtemp;
int s1[9]; //存放数据包数据的数组
unsigned char c1;
// 时钟选择
if(this->m_Check1) {s1[6]=0;s1[7]=0;}// 单时钟
if(this->m_Check2) {s1[6]=0;s1[7]=1;}// 双时钟
if(this->m_Check3) {s1[6]=1;s1[7]=0;}// 四时钟
if(this->m_Check4) {s1[6]=1;s1[7]=1;}// 12 时钟
//占空比设置
if(this->m_Check9) {s1[3]=0;s1[4]=0;s1[5]=0;}// 1:1
if(this->m_Check10) {s1[3]=0;s1[4]=0;s1[5]=1;}// 1:2
if(this->m_Check11) {s1[3]=0;s1[4]=1;s1[5]=0;}//1:3
if(this->m_Check12) {s1[3]=0;s1[4]=1;s1[5]=1;}//1:4
if(this->m_Check13) {s1[3]=1;s1[4]=0;s1[5]=0;}//1:5
if(this->m_Check14) {s1[3]=1;s1[4]=0;s1[5]=1;}// 1:6
if(this->m_Check15) {s1[3]=1;s1[4]=1;s1[5]=0;}// 1:7
- 上一篇:基于FPGA的2M误码测试仪设计
《基于VC的MV05芯片PWM功能测试软件设计》相关文章
- › 基于VC++/OpenGL 的引信仿真测试可视化系统软件设计
- › 基于VC++的空间电磁环境仿真软件设计
- › 一种基于VC++程序的FPGA重配置方案设计
- › 基于VC++的制瓶机微机控制系统的串口通信
- › 基于VC的MV05芯片PWM功能测试软件设计
- › 基于VC6.0的多单片机和PC机串口通讯实现方案
- 在百度中搜索相关文章:基于VC的MV05芯片PWM功能测试软件设计
- 在谷歌中搜索相关文章:基于VC的MV05芯片PWM功能测试软件设计
- 在soso中搜索相关文章:基于VC的MV05芯片PWM功能测试软件设计
- 在搜狗中搜索相关文章:基于VC的MV05芯片PWM功能测试软件设计