freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于cvi可視界面的直流電機(jī)測控系統(tǒng)的設(shè)計_畢業(yè)論文-資料下載頁

2025-07-02 05:44本頁面

【導(dǎo)讀】直流電動機(jī)由于具有良好的起動、制動性能,適宜在大范圍內(nèi)平滑調(diào)速等特點,在許多需要調(diào)速或快速正反向的電力拖動系統(tǒng)中得到了廣泛的應(yīng)用。機(jī)用戶界面軟件來實時的獲取直流電機(jī)的轉(zhuǎn)速。原理圖的繪制,實現(xiàn)了系統(tǒng)硬件模塊的搭建,利用Proteus對原理圖進(jìn)行仿真,本設(shè)計要完成的任務(wù)是利用單片機(jī)來控制直流電動機(jī),并設(shè)計其硬件電路,

  

【正文】 case 0xCD: PWM1_ON=0, PWM2_ON=2。 break。 //反向低速命令 case 0xCE: PWM1_ON=0, PWM2_ON=5。 break。 //反向中速命令 case 0xCF: PWM1_ON=0, PWM2_ON=15。break。 //反向高速命令 case 0xEE: //停止命令 Forward_Rotation_Flag=0。 Reverse_Rotation_Flag=0。 PWM1_ON=0。 PWM2_ON=0。 break。 default: 。 } } if(TI) //如果是發(fā)送標(biāo)志位,清零 金陵科技學(xué)院學(xué)士學(xué)位論文 第五 章 直流電動機(jī)的調(diào)速與檢測的軟件 設(shè)計 24 { TI=0。 if (UartTemp == 0xAA) //接收到指令 0xAA,則發(fā)送速度 { SBUF=speed。 //啟動發(fā)送 UartTemp = 0。 } } } 金陵科技學(xué)院學(xué)士學(xué)位論文 第六 章 上位機(jī)的軟件設(shè)計 25 第六章 上位機(jī)的軟件設(shè)計 CVI 界 面的設(shè)計 界面的設(shè)計如圖 13 所示: 圖 13 CVI 界面的設(shè)計 串口參數(shù)選擇 在進(jìn)行 CVI 上位機(jī)的運行時,首先必須要使計算機(jī)上的端口與 實驗 板上所用的端口一致,所以必須選擇合適的串口;也要根據(jù)不同串口選擇合適的波特率,選擇你所要的奇偶校驗?zāi)J健?shù)據(jù)位數(shù)和停止位數(shù)。 程序片段為: //串口參數(shù)選擇子程序 void SelectUartPara(void) { int ComValue,BaudValue,JoValue,LengthValue,StopValue。 /*********************選擇串行口 ***********************/ GetCtrlVal(PANEL,PANEL_COMSELECT,amp。ComValue)。 switch(ComValue) { case 1: ComSelect=1。 break。 金陵科技學(xué)院學(xué)士學(xué)位論文 第六 章 上位機(jī)的軟件設(shè)計 26 case 2: ComSelect=2。 break。 case 3: ComSelect=3。 break。 case 4: ComSelect=4。 break。 case 5: ComSelect=5。 break。 } /***********************選擇波特率 ***************************/ GetCtrlVal(PANEL,PANEL_BTLSELECT,amp。BaudValue)。 switch(BaudValue) { case 1: BaudSelect=1200。 break。 case 2: BaudSelect=2400。 break。 case 3: BaudSelect=4800。 break。 case 4: BaudSelect=9600。 break。 case 5: BaudSelect=19200。 break。 } /*********************選擇奇偶校驗?zāi)J?**********************/ GetCtrlVal(PANEL,PANEL_JYSELECT,amp。JoValue)。 switch(JoValue) { case 1: JoSelect=0。 break。 case 2: JoSelect=1。 break。 case 3: 金陵科技學(xué)院學(xué)士學(xué)位論文 第六 章 上位機(jī)的軟件設(shè)計 27 JoSelect=2。 break。 } //*********************選擇數(shù)據(jù)位長度 ***********************/ GetCtrlVal(PANEL,PANEL_LONGSELECT,amp。LengthValue)。 switch(LengthValue) { case 1: LengthSelect=7。 break。 case 2: LengthSelect=8。 break。 case 3: LengthSelect=9。 break。 } //************************選擇停止位 ************************/ GetCtrlVal(PANEL,PANEL_STOPSELECT,amp。StopValue)。 switch(StopValue) { case 1: StopSelect=1。 break。 case 2: StopSelect=2。 break。 } } 數(shù)據(jù)采集 數(shù)據(jù)采集程序流程: ? 啟動數(shù)據(jù)采集主程序 ? 設(shè)置A/D通道號及通道代碼 ? 啟動A/D轉(zhuǎn)換。 ? 查詢A/D轉(zhuǎn)換狀態(tài)。 ? 如果轉(zhuǎn)換結(jié)束,讀A/D轉(zhuǎn)換結(jié)果的高4位和低8位。 ? 將A/D轉(zhuǎn)換結(jié)果轉(zhuǎn)換為十進(jìn)制數(shù) 據(jù)。 程序片段: int Send (unsigned char mand) { FlushInQ(ComSelect)。 //清空輸入緩沖區(qū) 金陵科技學(xué)院學(xué)士學(xué)位論文 第六 章 上位機(jī)的軟件設(shè)計 28 FlushOutQ(ComSelect)。 //清空輸出緩沖區(qū) status=ComWrtByte(ComSelect,mand)。 //發(fā)送 if(status != 1) MessagePopup(Error,Send data failed!)。 return 0。 } //1s 定時采樣程序 int CVICALLBACK Timer(int panel, int control, int event,void *callbackData, int eventData1, int eventData2) { uchar ReadBuf。 switch (event) { case EVENT_TIMER_TICK: LedStatus =~LedStatus。 //LED 指示燈切換狀態(tài) ,工作時表現(xiàn)為每 1s 閃 1 次 SetCtrlVal (panelHandle, PANEL_LED, LedStatus)。 //狀態(tài)發(fā)給 LED //讀 1 通道 Send(0xAA)。 //先發(fā)送識別符號 ,下面要采樣 ADC0832 的 0 通道,發(fā)完后 ,單片機(jī)串口接收到 AA,就發(fā)送 0 通道的數(shù)據(jù)到串口緩沖區(qū) ,等待被讀取 ReadBuf=ComRdByte(ComSelect)。 //從串口讀 1 個字節(jié),即為 0 通道的數(shù)據(jù) if(ReadBuf 0) //讀成功 ,返回應(yīng)為 AD 采樣值 ,但是如果沒有讀成功,返回的是負(fù)值 ,詳見 ComRdByte 的說明 { MessagePopup(Error,Read data failed!)。 break。 } SetCtrlVal(PANEL,PANEL_CHANNEL1,ReadBuf)。 //將接收數(shù)據(jù)寫入 0通道的數(shù)據(jù)框 Array1[TimerCounter]= ReadBuf。 //采樣值存數(shù)組 Array0 //繪圖,詳見 PLOTY 函數(shù) PlotY(panelHandle,PANEL_GRAPH,Array1,TimerCounter+1,VAL_UNSIGNED_CHAR,VAL_FAT_LINE,VAL_EMPTY_SQUARE,VAL_SOLID,1,VAL_GREEN)。 //繪制通道 0 的數(shù)據(jù)圖形 TimerCounter++。 //讀的次數(shù)加 1 } return 0。 } int CVICALLBACK ForwardRotation(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { 金陵科技學(xué)院學(xué)士學(xué)位論文 第六 章 上位機(jī)的軟件設(shè)計 29 case EVENT_COMMIT: DirectionFlag=1。 Send(0xBB)。 } return 0。 } int CVICALLBACK ReverseRotation(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: DirectionFlag=0。 Send(0xCC)。 } return 0。 } 電機(jī)的控制 當(dāng)按 CVI界面的直流電動機(jī)控制按鈕時,上位機(jī)就通過 RS232發(fā)送數(shù)據(jù)給直流電動機(jī),使之能夠按照想要的速度和方向運行。 程序片段: int CVICALLBACK MotorStart(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: if(DirectionFlag==1) Send(0xBD)。 //啟動時,正向默認(rèn)為正向低速模式 else Send(0xCD)。 //啟動時,反向默認(rèn)為反向低速模式 } return 0。 } int CVICALLBACK MotorStop(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: Send(0xEE)。 金陵科技學(xué)院學(xué)士學(xué)位論文 第六 章 上位機(jī)的軟件設(shè)計 30 } return 0。 } int CVICALLBACK MotorSlow(int panel,
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1