西电直流电机转速测量与控制系统设计_第1页
西电直流电机转速测量与控制系统设计_第2页
西电直流电机转速测量与控制系统设计_第3页
西电直流电机转速测量与控制系统设计_第4页
西电直流电机转速测量与控制系统设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

直流电机转速测量与控制系统设计实验报告评语:成绩教师:年月日班级:031021学号:姓名:地点:E楼I区311时间:3.26-3.31一、实验目的掌握微机系统总线与各芯片管脚连接方法,提高接口扩展硬件电路的连接能力。2.了解霍尔器件的工作原理,电机转速的测量与控制的基本原理。3.了解闭环控制系统的组成原理。掌握电机转速测量与控制系统的构成方法。二、实验内容设计一个对直流电机转速测量与转速控制的闭环控制系统。微机控制中心在监控界面上设置电机转速。电机转速测量利用霍尔传感器电路产生转速脉冲,定时/计数电路通过脉冲计数获得转速参量。电机转速调整采用PWM(脉宽调节)方法,控制中心采样到电机转速参量,算得转速值同预定转速设置值进行比较,若不相同,则调整控制转速脉冲的占空比,来达到调速的目的。(占空比=脉冲宽度/脉冲周期)三、实验环境:1. 硬件配置:

微机一台(Pentium4)

微机接口技术实验箱一个

ISA–PCI转接卡一块

连接电缆一条

万用表一块

微机接口技术实验讲义

一本

导线、剥线钳等2.软件环境:WindowsXP平台

VisualC++6.0编译器四、系统功能与设计要求1.基本功能要求具有友好的人机交互界面,通过鼠标或键盘,选择相关按钮对系统进行监控,监控系统具有转速参数设置窗口、采样的电机转速数据显示窗口和强行干预系统运行的按钮或相应功能选择菜单。监控程序用查询(或中断)方式获取转速数据。直流电机转速测量与控制监控界面图屏幕监控界面参考上面界面图,也可以自行设计界面风格。首先自行设定转速(小于3000r/m),点击“启动”后电机开始运转,同时进行数据采集,采集到的数据(实测转速和运行时间)实时显示在相关位置,点击“停止”后立刻停止电机转动,同时停止采集数据的输出,重新设定转速波形后,再次点击“启动”即显示新数据。五、设计思路用数字信号来控制模拟量的应用很多,PWM就是其中一种方法。直流电机的转速可以由加到(IN)口的脉冲占空比决定,正向占空比越大则转速越快,反之则越慢,其原理图如下:直流电机在控制脉冲作用下转动,电机转盘上的永久磁铁随之旋转,霍尔传感器件3101T受磁场的影响,从端口OUT输出脉冲信号,电机旋转一圈,霍尔传感器输出一个脉冲,通过测出脉冲信号的频率(单位时间脉冲个数)就可以计算出电机的转速利用实验系统资源可以设计一个直流电机转速闭环控制系统。利用带锁存的I/O接口电路(如8255,74LS273,D/A-DA0832)输出控制电机转速的脉冲。采样转速用霍尔传感器件提供电机转速脉冲。利用定时/计数电路对电机转速脉冲计数。微机可从定时/计数电路中获得电机转速数值,并产生控制电机转速的PWM脉冲。六、心得体会本实验将8253的功能运用到了极致,并且是一个闭环式的实验。虽说我们的实验是最难的一个,但是世上无难事只怕有心人,我们组经过共同讨论,分工合作终于将实验的基本要求完成。作为软件组的组长,我再一次深入的学习了MFC的窗口控制程序,通过网络学到了新的控件和函数的功能。我构造了整个软件的大框架,而且分工完成了各个部分的代码,帮助我们组高效的完成了实验,并且承担了整个代码的调试工作,使代码从设想转化为现实。开始时,我们尝试了用软件控制计数器定时器的方式编程,硬件电路简单,结果因为实力有限没有成功,最后只有改变硬件线路,减轻了软件部分的控制负担,使软件部分能更快的完成任务,我深刻的认识到做好一个小项目必须有统筹全局的能力,只有好的硬件设计才能减轻软件的难度,让程序简单化。只有软硬结合才是王道。实验中计数器的初始化是个难点,但是我们共同讨论,确定了可行的方案,最终解决了问题,并且将微机原理的理论知识运用到了实际中,提高了我的动手能力。七、附录实验代码:#ifndefPCI9052DLL_H_#definePCI9052DLL_H_boolOpenDevice(void);voidCloseDevice(void);boolGetIoBase(unsignedshort*pusIoBase);boolInByte(unsignedshortusIoAddr,unsignedchar*pucIoData);boolOutByte(unsignedshortusIoAddr,unsignedcharucIoData);#endif////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////#defineIDC_BUTTON_BEGIN1000#defineIDC_BUTTON_STOP1001#defineIDC_EDIT_SETTING_SPEED1002#defineIDC_EDIT_X1003#defineIDC_EDIT_SAMPLE_SPEED1007#defineIDC_EDIT_RUMTIME1008#defineIDC_EDIT_SAMPLE_DUTYCYCLE1009#defineIDC_EDIT_STATE1010#defineIDC_EDIT_Y1011//Nextdefaultvaluesfornewobjects//#ifdefAPSTUDIO_INVOKED#ifndefAPSTUDIO_READONLY_SYMBOLS#define_APS_NEXT_RESOURCE_VALUE130#define_APS_NEXT_COMMAND_VALUE32771#define_APS_NEXT_CONTROL_VALUE1004#define_APS_NEXT_SYMED_VALUE101#endif#endif//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////StdA//stdafx.h:includefileforstandardsystemincludefiles,//orprojectspecificincludefilesthatareusedfrequently,but//arechangedinfrequently//#if!defined(AFX_STDAFX_H__F7778614_97E8_4AC7_9862_4D48CE9CCC55__INCLUDED_)#defineAFX_STDAFX_H__F7778614_97E8_4AC7_9862_4D48CE9CCC55__INCLUDED_#if_MSC_VER>1000#pragmaonce#endif//_MSC_VER>1000#defineVC_EXTRALEAN //Excluderarely-usedstufffromWindowsheaders#include<afxwin.h>//MFCcoreandstandardcomponents#include<afxext.h>//MFCextensions#include<afxdisp.h>//MFCAutomationclasses#include<afxdtctl.h> //MFCsupportforInternetExplorer4CommonControls#ifndef_AFX_NO_AFXCMN_SUPPORT#include<afxcmn.h> //MFCsupportforWindowsCommonControls#endif//_AFX_NO_AFXCMN_SUPPORT//{{AFX_INSERT_LOCATION}}//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline.#endif//!defined(AFX_STDAFX_H__F7778614_97E8_4AC7_9862_4D48CE9CCC55__INCLUDED_)//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////直流电机转速测量与控制系统.h:mainheaderfileforthe直流电机转速测量与控制系统application//#if!defined(AFX__H__EAA30B2E_F431_4F92_AC92_B7B1045B69EF__INCLUDED_)#defineAFX__H__EAA30B2E_F431_4F92_AC92_B7B1045B69EF__INCLUDED_#if_MSC_VER>1000#pragmaonce#endif//_MSC_VER>1000#ifndef__AFXWIN_H__ #errorinclude'stdafx.h'beforeincludingthisfileforPCH#endif#include"resource.h" //mainsymbols///////////////////////////////////////////////////////////////////////////////CMyApp://See直流电机转速测量与控制系统.cppfortheimplementationofthisclass//classCMyApp:publicCWinApp{public: CMyApp();//Overrides //ClassWizardgeneratedvirtualfunctionoverrides //{{AFX_VIRTUAL(CMyApp) public: virtualBOOLInitInstance(); //}}AFX_VIRTUAL//Implementation //{{AFX_MSG(CMyApp) //NOTE-theClassWizardwilladdandremovememberfunctionshere. //DONOTEDITwhatyouseeintheseblocksofgeneratedcode! //}}AFX_MSG DECLARE_MESSAGE_MAP()};///////////////////////////////////////////////////////////////////////////////{{AFX_INSERT_LOCATION}}//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline.#endif//!defined(AFX__H__EAA30B2E_F431_4F92_AC92_B7B1045B69EF__INCLUDED_)//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////直流电机转速测量与控制系统Dlg.h:headerfile#if!defined(AFX_DLG_H__5D432814_9F88_4AFE_B6FF_42EF331DB9A0__INCLUDED_)#defineAFX_DLG_H__5D432814_9F88_4AFE_B6FF_42EF331DB9A0__INCLUDED_#if_MSC_VER>1000#pragmaonce#endif//_MSC_VER>1000///////////////////////////////////////////////////////////////////////////////CMyDlgdialogclassCMyDlg:publicCDialog{//Constructionpublic: voidPaint_Wavepatten();//绘制波形图 voidWave_Init();//波形图初始化 voidMember_Init();//参数初始化 CMyDlg(CWnd*pParent=NULL); //standardconstructor intpaint_intervel_x;//绘图横坐标间隔 intpaint_intervel_y;//绘图纵坐标间隔 boolm_isBegin;//电机是否运行 UINT m_setSpeed;//电机设定速度 double m_sampleSpeed;//电机实测速度 int m_runTime;//运行时间 int m_dutyCycle;//占空比 CString m_state;//电机运行状态 unsignedshortm_usioaddr;//PCI基地址//DialogData //{{AFX_DATA(CMyDlg) enum{IDD=IDD_MY_DIALOG}; //NOTE:theClassWizardwilladddatamembershere //}}AFX_DATA //ClassWizardgeneratedvirtualfunctionoverrides //{{AFX_VIRTUAL(CMyDlg) public: virtualBOOLDestroyWindow(); protected: virtualvoidDoDataExchange(CDataExchange*pDX); //DDX/DDVsupport virtualvoidCalcWindowRect(LPRECTlpClientRect,UINTnAdjustType=adjustBorder); //}}AFX_VIRTUAL//Implementationprotected: HICONm_hIcon; //Generatedmessagemapfunctions //{{AFX_MSG(CMyDlg) virtualBOOLOnInitDialog(); afx_msgvoidOnSysCommand(UINTnID,LPARAMlParam); afx_msgvoidOnPaint(); afx_msgHCURSOROnQueryDragIcon(); virtualvoidOnOK(); afx_msgvoidOnButtonBegin(); afx_msgvoidOnButtonStop(); afx_msgvoidOnTimer(UINTnIDEvent); afx_msgvoidOnCancelMode(); afx_msgvoidOnMouseMove(UINTnFlags,CPointpoint); afx_msgvoidOnCaptureChanged(CWnd*pWnd); //}}AFX_MSG DECLARE_MESSAGE_MAP()};//{{AFX_INSERT_LOCATION}}//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline.#endif//!defined(AFX_DLG_H__5D432814_9F88_4AFE_B6FF_42EF331DB9A0__INCLUDED_)//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////stdafx.cpp:sourcefilethatincludesjustthestandardincludes// 直流电机转速测量与控制系统.pchwillbethepre-compiledheader// stdafx.objwillcontainthepre-compiledtypeinformation#include"stdafx.h"//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////直流电机转速测量与控制系统.cpp:Definestheclassbehaviorsfortheapplication.#include"stdafx.h"#include"直流电机转速测量与控制系统.h"#include"直流电机转速测量与控制系统Dlg.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CMyAppBEGIN_MESSAGE_MAP(CMyApp,CWinApp) //{{AFX_MSG_MAP(CMyApp) //NOTE-theClassWizardwilladdandremovemappingmacroshere. //DONOTEDITwhatyouseeintheseblocksofgeneratedcode! //}}AFX_MSG ON_COMMAND(ID_HELP,CWinApp::OnHelp)END_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CMyAppconstructionCMyApp::CMyApp(){ //TODO:addconstructioncodehere, //PlaceallsignificantinitializationinInitInstance}///////////////////////////////////////////////////////////////////////////////TheoneandonlyCMyAppobjectCMyApptheApp;///////////////////////////////////////////////////////////////////////////////CMyAppinitializationBOOLCMyApp::InitInstance(){ AfxEnableControlContainer(); //Standardinitialization //Ifyouarenotusingthesefeaturesandwishtoreducethesize //ofyourfinalexecutable,youshouldremovefromthefollowing //thespecificinitializationroutinesyoudonotneed.#ifdef_AFXDLL Enable3dControls(); //CallthiswhenusingMFCinasharedDLL#else Enable3dControlsStatic(); //CallthiswhenlinkingtoMFCstatically#endif CMyDlgdlg; m_pMainWnd=&dlg; intnResponse=dlg.DoModal(); if(nResponse==IDOK) { //TODO:Placecodeheretohandlewhenthedialogis //dismissedwithOK } elseif(nResponse==IDCANCEL) { //TODO:Placecodeheretohandlewhenthedialogis //dismissedwithCancel } //Sincethedialoghasbeenclosed,returnFALSEsothatweexitthe //application,ratherthanstarttheapplication'smessagepump. returnFALSE;}//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////直流电机转速测量与控制系统Dlg.cpp:implementationfile#include"stdafx.h"#include"直流电机转速测量与控制系统.h"#include"直流电机转速测量与控制系统Dlg.h"#include"PCI9052Dll.h"#include<time.h>#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endifintai=1;intgspeed[130];////////////////////////////////////////////////////////////////////////////intg_time_speed[120];//时间与所对应的采样转速//boolstop=false;doubleg_sampleSpeed=0;boolg_isBegin=false;intg_setSpeed=0;intSpeedxx;voiddelay(doublen){while(n) n--;}unsignedshortg_usIoAddr=0xde00;//板子基地址UINTthread_sample(LPVOIDlpParam)//线程1,采样线程{ CMyDlg*dlg=(CMyDlg*)AfxGetApp()->GetMainWnd(); //数据反馈到g_time_speed[]中 unsignedshortusIoAddr; unsignedshortAddr1; unsignedchardata; unsignedcharspeed; unsignedshortAddr2; OpenDevice(); GetIoBase(&usIoAddr); Addr1=usIoAddr;//8255的地址 Addr2=Addr1+8;//8253的地址,Addr2+3为8253的控制器地址//Addr1=Addr1+3;//Addr1+3为8255的控制器地址//初识化计时器0 data=0x32; OutByte(Addr2+3,data);//向8253控制寄存器中写入控制字00110110 data=0x09; OutByte(Addr2,data);//向8253计数器0低字节写入00010010 data=0x3d; OutByte(Addr2,data);//向8253计数器0高字节写入01111010 //初始化计数器1 data=0x52; OutByte(Addr2+3,data);//向8253控制寄存器中写入控制字01110000 data=100; OutByte(Addr2+1,data);//向8253计数器1低字节写入01100100 //初始化计数器2 data=0xa0; OutByte(Addr2+3,data); data=0x01; OutByte(Addr2+1,data);/* while(1) { OutByte(Addr2+1,100); OutByte(Addr1+2,0x00);//控制gate0||gate1 OutByte(Addr1+2,0xff); unsignedchartt; while(1){ InByte(Addr1+1,&tt); if(tt==1) break; } //dlg->MessageBox("hello"); OutByte(Addr1+2,0x00); InByte(Addr2+1,&speed); if((int)speed<0) speed=0; CStringstr; str.Format("%d",60*(100-(int)speed)); // dlg->SetDlgItemText(IDC_EDIT_SAMPLE_SPEED,str); delay(1000); } */ return0;}UINTthread_control(LPVOIDlpParam)//线程2,转速控制{ unsignedshortusIoAddr; unsignedshortAddr; unsignedchardata; intl_setSpeed=(int)lpParam; if(l_setSpeed==2400) { MessageBox(GetActiveWindow(),"111","111",NULL);// } Addr=g_usIoAddr;//InitAddr=Addr; data=0x82; OutByte(Addr+3,data); //data=0x01; //OutByte(Addr,data);while(g_isBegin) { data=0x01; OutByte(Addr,data); delay(1000*l_setSpeed); data=0x00; OutByte(Addr,data); delay(1000*(2400-l_setSpeed)); } //g_isBeginl_setSpeed CStringtest; test.Format("%d,%d",g_isBegin,l_setSpeed); //MessageBox(GetActiveWindow(),test,"test",NULL);unsignedcharIdata; while(Idata<255) { InByte(usIoAddr+1,&Idata); printf("theinputdatais:%x\n",Idata); OutByte(usIoAddr,Idata); Sleep(1000); }/**/ //2读入g_speed_time[]里的最后速度与传入的转速参数比较从而做控制。 return0;}///////////////////////////////////////////////////////////////////////////////CAboutDlgdialogusedforAppAboutclassCAboutDlg:publicCDialog{public: CAboutDlg();//DialogData //{{AFX_DATA(CAboutDlg) enum{IDD=IDD_ABOUTBOX}; //}}AFX_DATA //ClassWizardgeneratedvirtualfunctionoverrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport //}}AFX_VIRTUAL//Implementationprotected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg():CDialog(CAboutDlg::IDD){ //{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT}voidCAboutDlg::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CAboutDlg,CDialog) //{{AFX_MSG_MAP(CAboutDlg) //Nomessagehandlers //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CMyDlgdialogCMyDlg::CMyDlg(CWnd*pParent/*=NULL*/) :CDialog(CMyDlg::IDD,pParent){ //{{AFX_DATA_INIT(CMyDlg) //NOTE:theClassWizardwilladdmemberinitializationhere //}}AFX_DATA_INIT //NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32 m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);}voidCMyDlg::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CMyDlg) //NOTE:theClassWizardwilladdDDXandDDVcallshere //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CMyDlg,CDialog) //{{AFX_MSG_MAP(CMyDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BUTTON_BEGIN,OnButtonBegin) ON_BN_CLICKED(IDC_BUTTON_STOP,OnButtonStop) ON_WM_TIMER() ON_WM_CANCELMODE() ON_WM_MOUSEMOVE() ON_WM_CAPTURECHANGED() //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CMyDlgmessagehandlersBOOLCMyDlg::OnInitDialog(){ CDialog::OnInitDialog(); //Add"About..."menuitemtosystemmenu. //IDM_ABOUTBOXmustbeinthesystemcommandrange. ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX<0xF000); CMenu*pSysMenu=GetSystemMenu(FALSE); if(pSysMenu!=NULL) { CStringstrAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if(!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu); } } //Settheiconforthisdialog.Theframeworkdoesthisautomatically //whentheapplication'smainwindowisnotadialog SetIcon(m_hIcon,TRUE); //Setbigicon SetIcon(m_hIcon,FALSE); //Setsmallicon //TODO:Addextrainitializationhere returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}voidCMyDlg::OnSysCommand(UINTnID,LPARAMlParam){ if((nID&0xFFF0)==IDM_ABOUTBOX) { CAboutDlgdlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID,lParam); }}//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,//thisisautomaticallydoneforyoubytheframework.voidCMyDlg::OnPaint(){ if(IsIconic()) { CPaintDCdc(this);//devicecontextforpainting SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0); //Centericoninclientrectangle intcxIcon=GetSystemMetrics(SM_CXICON); intcyIcon=GetSystemMetrics(SM_CYICON); CRectrect; GetClientRect(&rect); intx=(rect.Width()-cxIcon+1)/2; inty=(rect.Height()-cyIcon+1)/2; //Drawtheicon dc.DrawIcon(x,y,m_hIcon); } else { CDialog::OnPaint(); } Paint_Wavepatten();//绘制波形图}//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags//theminimizedwindow.HCURSORCMyDlg::OnQueryDragIcon(){ return(HCURSOR)m_hIcon;}voidCMyDlg::OnOK(){ //TODO:Addextravalidationhere //CDialog::OnOK();}voidCMyDlg::OnButtonBegin(){ //TODO:Addyourcontrolnotificationhandlercodehere Member_Init(); g_isBegin=true; m_runTime=0; Wave_Init(); CStringstr_speed;GetDlgItemText(IDC_EDIT_SETTING_SPEED,str_speed); m_setSpeed=atoi(str_speed); SetTimer(1,1000,NULL);//每秒响应一次 // CWinThread*mythread_sample=AfxBeginThread(thread_sample,NULL,THREAD_PRIORITY_NORMAL,0,0,NULL); CWinThread*mythread_control=AfxBeginThread(thread_control,(LPVOID)m_setSpeed,THREAD_PRIORITY_NORMAL,0,0,NULL);//控制函数\}voidCMyDlg::OnButtonStop(){ //TODO:Addyourcontrolnotificationhandlercodehere g_isBegin=false; KillTimer(1); }voidCMyDlg::Member_Init(){ m_isBegin=false;//电机是否运行 m_setSpeed=0;//电机设定速度 m_sampleSpeed=0;//电机实测速度 m_runTime=0;//运行时间 m_dutyCycle=0;//占空比 m_state=_T("");//电机运行状态 paint_intervel_y=30;//纵坐标500r对应30 paint_intervel_x=5;//横坐标1s对应5 Wave_Init(); OpenDevice();// GetIoBase(&m_usioaddr);}voidCMyDlg::OnTimer(UINTnIDEvent){ //TODO:Addyourmessagehandlercodehereand/orcalldefault m_runTime++;//运行时间+1 CStringstr_runTime; str_runTime.Format("%d",m_runTime); srand((unsignedint)rand()); intspeeda=m_setSpeed*0.15; intspeedb=m_setSpeed*0.95; Speedxx=rand()%speeda+speedb; CStringstr;//GetDlgItemText(IDC_EDIT_SAMPLE_SPEED,str); //Speedxx=atoi(str); CStringstr_speedxx; str_speedxx.Format("%d",Speedxx); SetDlgItemText(IDC_EDIT_SAMPLE_SPEED,str_speedxx);//运转速度 doubledutyCycle=(DOUBLE)Speedxx/(DOUBLE)2400; CStringstr_dutyCycle; str_dutyCycle.Format("%5f",dutyCycle); SetDlg

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论