新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)及VC++的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)

基于單片機(jī)及VC++的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2013-02-18 來源:網(wǎng)絡(luò) 收藏

  3.4 串行通信電路

  在PC機(jī)內(nèi)接有PC16550(和8250兼容)串行接口、EIA-TTL的電平轉(zhuǎn)換器和RS-232C連 接器,除鼠標(biāo)占用一個串行口外,還留有兩個串行口給用戶,這就是COM1(地址3F8H-3FFH) 和COM2(地址2F8H-2FFH),通過這兩個口,可以連接串行通信設(shè)備,如、仿真機(jī) 等。由于的串行發(fā)送和接收線TXD和RXD是TTL電平,而PC的COM1或COM2的 RS-232C連接器(D型9針插座)是EIA電平,因此需加接MAX232芯片,通過串行電 纜線和PC相連接。本文所設(shè)計(jì)的串行通信電路如圖4所示。


  3.5 下位機(jī)顯示電路

  液晶采用顯示容量為2行16個字的1602液晶,1602采用標(biāo)準(zhǔn)的16腳接口,內(nèi)部的字符發(fā) 生存儲器(CGROM)已經(jīng)存儲了160個不同的點(diǎn)陣字符圖形,每一個字符都有一個固定的 代碼[5]。設(shè)計(jì)電路圖如圖5所示。


  4 軟件設(shè)計(jì)

  軟件設(shè)計(jì)可分為兩個部分:上位機(jī)軟件設(shè)計(jì)和下位機(jī)軟件設(shè)計(jì)。上位機(jī)軟件設(shè)計(jì)包括: 上位機(jī)控制環(huán)境設(shè)計(jì)、上位機(jī)通信程序設(shè)計(jì)以及上位機(jī)程序的封裝發(fā)布;下位機(jī)軟件設(shè)計(jì)包 括:鍵盤掃描程序、下位機(jī)通信程序、主驅(qū)動程序、測試部分程序、顯示部分程序。

  4.1 上位軟件設(shè)計(jì)

  Visual C++設(shè)計(jì)了一套基礎(chǔ)類庫(Microsoft Foundation Class Library, MFC), MFC把編 程規(guī)范中的大多數(shù)內(nèi)容封裝成為各種類,使程序員從繁雜的編程中解脫出來[6]。根據(jù)系統(tǒng)設(shè) 計(jì)需要,設(shè)計(jì)一個基于對話框的應(yīng)用程序即可,如圖6所示。


  為實(shí)現(xiàn)上位機(jī)與下位機(jī)通信,利用Microsoft提供的串行通信ActiveX控件。該控件的相 應(yīng)文件是MSCOMM32.OCX。在基于對話框的程序中使用控件,需要進(jìn)行以下幾方面操作: 拖動控件圖標(biāo)到窗口上,創(chuàng)建控件ID。在對話框頭文件中聲明CMSComm類的變量及引用控 件類頭文件。創(chuàng)建CMSComm類的實(shí)例。建立控件事件響應(yīng)代碼框架[7]。

  在電機(jī)狀態(tài)改變后,由下位機(jī)將代表各狀態(tài)的數(shù)據(jù)發(fā)送給上位機(jī),上位機(jī)接收到后存入 一個數(shù)組內(nèi),根據(jù)此數(shù)組內(nèi)容刷新各編輯框內(nèi)容,以達(dá)到實(shí)時(shí)顯示的目的。此處共有五個數(shù) 據(jù),放入rxdata數(shù)組中,分別代表勵磁狀態(tài)、轉(zhuǎn)動方向、速度、測試1計(jì)數(shù)、測試2計(jì)數(shù)。上 位機(jī)MSComm控件SetRThreshold屬性設(shè)置為5,則當(dāng)下位機(jī)將五個數(shù)據(jù)發(fā)送完后,上位機(jī)立 即觸發(fā)OnComm事件,進(jìn)行接收[8]。

陀螺儀相關(guān)文章:陀螺儀原理




評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉