基于單片機(jī)及VC++的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)
3.4 串行通信電路
在PC機(jī)內(nèi)接有PC16550(和8250兼容)串行接口、EIA-TTL的電平轉(zhuǎn)換器和RS-232C連 接器,除鼠標(biāo)占用一個(gè)串行口外,還留有兩個(gè)串行口給用戶(hù),這就是COM1(地址3F8H-3FFH) 和COM2(地址2F8H-2FFH),通過(guò)這兩個(gè)口,可以連接串行通信設(shè)備,如單片機(jī)、仿真機(jī) 等。由于單片機(jī)的串行發(fā)送和接收線(xiàn)TXD和RXD是TTL電平,而PC的COM1或COM2的 RS-232C連接器(D型9針插座)是EIA電平,因此單片機(jī)需加接MAX232芯片,通過(guò)串行電 纜線(xiàn)和PC相連接。本文所設(shè)計(jì)的串行通信電路如圖4所示。
3.5 下位機(jī)顯示電路
液晶采用顯示容量為2行16個(gè)字的1602液晶,1602采用標(biāo)準(zhǔn)的16腳接口,內(nèi)部的字符發(fā) 生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,每一個(gè)字符都有一個(gè)固定的 代碼[5]。設(shè)計(jì)電路圖如圖5所示。
4 軟件設(shè)計(jì)
軟件設(shè)計(jì)可分為兩個(gè)部分:上位機(jī)軟件設(shè)計(jì)和下位機(jī)軟件設(shè)計(jì)。上位機(jī)軟件設(shè)計(jì)包括: 上位機(jī)控制環(huán)境設(shè)計(jì)、上位機(jī)通信程序設(shè)計(jì)以及上位機(jī)程序的封裝發(fā)布;下位機(jī)軟件設(shè)計(jì)包 括:鍵盤(pán)掃描程序、下位機(jī)通信程序、主驅(qū)動(dòng)程序、測(cè)試部分程序、顯示部分程序。
4.1 上位軟件設(shè)計(jì)
Visual C++設(shè)計(jì)了一套基礎(chǔ)類(lèi)庫(kù)(Microsoft Foundation Class Library, MFC), MFC把編 程規(guī)范中的大多數(shù)內(nèi)容封裝成為各種類(lèi),使程序員從繁雜的編程中解脫出來(lái)[6]。根據(jù)系統(tǒng)設(shè) 計(jì)需要,設(shè)計(jì)一個(gè)基于對(duì)話(huà)框的應(yīng)用程序即可,如圖6所示。
為實(shí)現(xiàn)上位機(jī)與下位機(jī)通信,利用Microsoft提供的串行通信ActiveX控件。該控件的相 應(yīng)文件是MSCOMM32.OCX。在基于對(duì)話(huà)框的程序中使用控件,需要進(jìn)行以下幾方面操作: 拖動(dòng)控件圖標(biāo)到窗口上,創(chuàng)建控件ID。在對(duì)話(huà)框頭文件中聲明CMSComm類(lèi)的變量及引用控 件類(lèi)頭文件。創(chuàng)建CMSComm類(lèi)的實(shí)例。建立控件事件響應(yīng)代碼框架[7]。
在電機(jī)狀態(tài)改變后,由下位機(jī)將代表各狀態(tài)的數(shù)據(jù)發(fā)送給上位機(jī),上位機(jī)接收到后存入 一個(gè)數(shù)組內(nèi),根據(jù)此數(shù)組內(nèi)容刷新各編輯框內(nèi)容,以達(dá)到實(shí)時(shí)顯示的目的。此處共有五個(gè)數(shù) 據(jù),放入rxdata數(shù)組中,分別代表勵(lì)磁狀態(tài)、轉(zhuǎn)動(dòng)方向、速度、測(cè)試1計(jì)數(shù)、測(cè)試2計(jì)數(shù)。上 位機(jī)MSComm控件SetRThreshold屬性設(shè)置為5,則當(dāng)下位機(jī)將五個(gè)數(shù)據(jù)發(fā)送完后,上位機(jī)立 即觸發(fā)OnComm事件,進(jìn)行接收[8]。
陀螺儀相關(guān)文章:陀螺儀原理
評(píng)論