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

正文內(nèi)容

數(shù)控機(jī)床機(jī)電匹配性能測試平臺(tái)軟件設(shè)計(jì)畢業(yè)設(shè)計(jì)說明書-閱讀頁

2025-04-09 03:04本頁面
  

【正文】 的方式,然后再讀計(jì)數(shù)值,但由于這是從鎖存寄存器中讀取的,所以是一個(gè)穩(wěn)定的值。ISA總線介紹:ISA插槽是基于ISA總線(Industrial Standard Architecture,工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)總線)的擴(kuò)展插槽,其顏色一般為黑色,比PCI接口插槽要長些,位于主板的最下端。ISA總線擴(kuò)展插槽由兩部分組成,一部分有62引腳,主要由地址線,數(shù)據(jù)線,控制線,狀態(tài)線,輔助線,電源線等62根引腳組成,其信號分布及名稱與PC/XT總線的擴(kuò)展槽基本相同,僅有很小的差異。因此,利用VC++編程時(shí),將會(huì)利用300H~31FH段的地址。因此,兩個(gè)軸一共需要4個(gè)計(jì)數(shù)器才夠用,由于每片8253芯片只有3個(gè)計(jì)數(shù)器,所以需要選用2片8253芯片。為方便標(biāo)記,筆者將第二片8253的計(jì)數(shù)器依次命名為:計(jì)數(shù)器計(jì)數(shù)器計(jì)數(shù)器5。(1)初始化計(jì)數(shù)器初始化編程的順序是:對某一指定計(jì)數(shù)器,必須先寫控制字,再寫計(jì)數(shù)器初值,計(jì)數(shù)初值寫入的格式由控制字的D5和D4 兩位的編碼決定。由于本次設(shè)計(jì)中采用的是讀取之前先送計(jì)數(shù)鎖存,因此,D5D4只能取00和11,分別表示鎖存和先讀低8位后讀高8位。采用二進(jìn)制計(jì)數(shù),所以D0=0。根據(jù)上述分析,對于計(jì)數(shù)器0而言,其初始化核心代碼如下://第一片8253芯片的計(jì)數(shù)器0,代表X軸正方向;_outp(0x303,0x34)。 //初始化計(jì)數(shù)器0為0xFFFF。 以上代碼中,第一行代碼中的0x303為第一片芯片控制字地址,0x34是根據(jù)D7D6D5D4D3D2D1=0011 0100B=34H計(jì)算而來。代碼中的_outp()函數(shù)是輸出函數(shù)。conio是Console Input/output(控制臺(tái)輸入輸出)的簡寫,其中定義了通過控制臺(tái)進(jìn)行數(shù)據(jù)輸入和數(shù)據(jù)輸出的函數(shù),()和_inp()函數(shù)。 port 參數(shù)為指定的輸出端口號,databyte 參數(shù)為輸出的值。databyte 可以是0—255范圍內(nèi)的任何整數(shù)值。 port參數(shù)為指定的輸入端口號。其他計(jì)數(shù)器的初始化部分程序的實(shí)現(xiàn)與初始化計(jì)數(shù)器0完全類似,筆者在此就不在贅述。對計(jì)數(shù)器0的讀取核心代碼如下: _outp(0x303,0x04)。 //先讀低8位,后讀高8位 _outp(0x300,0x34)。 //儲(chǔ)存低8位 data1=_inp(0x300)。第2行代碼中的0x34是通過D7D6D5D4D3D2D1=0011 0100B=34H計(jì)算而來,其作用是將讀取方式設(shè)置為讀/寫低8位,后讀/寫高8位。第5行代碼完成將讀取的數(shù)據(jù)分別存放在data0、data1中,則data0存放低8位,data1存放高8位。由于每次采集到的數(shù)據(jù)不是符合要求的坐標(biāo)值,必須通過一定數(shù)學(xué)轉(zhuǎn)換才能得到合乎要求的坐標(biāo)值,具體操作步驟是:將每次從計(jì)數(shù)器0獲得的值減去從計(jì)數(shù)器1獲得的值作為當(dāng)前X軸坐標(biāo)值,然后將次從計(jì)數(shù)器2獲得的值減去從計(jì)數(shù)器3獲得的值作為當(dāng)前Y軸坐標(biāo)值,如此循環(huán),下一次得到的X軸坐標(biāo)值和Y軸坐標(biāo)值都分別需要加上前一個(gè)狀態(tài)的坐標(biāo)值。為此,筆者多方考慮,打算采用文件操作來解決這一個(gè)文件,即將讀取的數(shù)據(jù)寫入一個(gè)二進(jìn)制文件,然后在需要的時(shí)候?qū)⑵湔{(diào)用出來進(jìn)行相關(guān)處理和分析。datafile=fopen( C:\\,wb)。,sizeof(long),1,datafile)。,sizeof(long),1,datafile)。在以上代碼中,先是利用第一行代碼定義了一個(gè)FILE指針文件,然后第二行代碼將C:\,并以二進(jìn)制寫的方式打開;。 本軟件開發(fā)過程中,很多地方都會(huì)運(yùn)用到文件的操作,為此,筆者有必要對其進(jìn)行簡單介紹。第二個(gè)形式參數(shù)表示打開文件的類型, 本設(shè)計(jì)用到的兩種打開文件類型如下: rb      只讀打開一個(gè)二進(jìn)制文件,只允許讀數(shù)據(jù)wb   只寫打開或建立一個(gè)二進(jìn)制文件,只允許寫數(shù)據(jù) ②讀寫文件在寫文件部分的代碼中,寫數(shù)據(jù)塊函數(shù)調(diào)用的一般形式為:fwrite(buffer,size,count,fp)。其中,buffer是一個(gè)指針,在fread函數(shù)中,它表示存放輸入數(shù)據(jù)的首地址,在fwrite函數(shù)中,它表示存放輸出數(shù)據(jù)的首地址。count 表示要讀寫的數(shù)據(jù)塊塊數(shù)。例如:fread(x,4,5,fp)。fwrite(y,4,5,fp)。③關(guān)閉文件fclose()函數(shù)用來關(guān)閉一個(gè)由fopen()函數(shù)打開的文件,其調(diào)用格式為:fclose(FILE *stream)。當(dāng)文件關(guān)閉成功時(shí), 返回0,否則返回一個(gè)非零值。 讀取數(shù)據(jù)信息并繪圖:下面介紹一下本軟件繪圖的實(shí)現(xiàn)方法,這里選用MFC提供的CClientDC類來實(shí)現(xiàn)這一功能。也就是說,當(dāng)一個(gè)CClientDC對象在構(gòu)造時(shí),它的內(nèi)部會(huì)調(diào)用GetDC函數(shù),獲得一個(gè)對象;在這個(gè)CClientDC對象析構(gòu)時(shí),會(huì)自動(dòng)釋放這個(gè)設(shè)備描述表資源。只需要定義一個(gè)CClientDC對象,然后就可以利用這個(gè)對象提供的函數(shù)進(jìn)行繪圖操作了。這就是CClientDC對象的好處,因此,本軟件開發(fā)過程中有關(guān)繪圖的指令都是基于CClientDC類進(jìn)行的。//定義一個(gè)CClientDC對象//繪制縱坐標(biāo)(20,0)。 //從起點(diǎn)到此點(diǎn)畫用線段連接起來//繪制坐標(biāo)原點(diǎn)0(10,700,ETO_OPAQUE,CRect(10,700,10,710),_T(0),NULL)。//繪制Y坐標(biāo)標(biāo)簽(750,710,ETO_OPAQUE,CRect(750,710,750,720),_T(X),NULL)。從上面例子可以發(fā)現(xiàn),在構(gòu)造CClientDC對象時(shí),需要一個(gè)CWnd類型的指針作為參數(shù)。由此可以看出,CClientDC類繪圖十分方便快捷。例子中筆者就將原點(diǎn)改到(20,700),這樣下面繪制出來的圖形就會(huì)出現(xiàn)在坐標(biāo)系的第一象限。前一個(gè)例子中所畫的坐標(biāo)系都是黑色的,這是因?yàn)樵O(shè)備描述表中有一個(gè)默認(rèn)的黑色畫筆,因此繪制的線條都是黑色的。具體實(shí)現(xiàn),可以利用MFC提供的CPen類創(chuàng)建畫筆對象,這個(gè)類封裝了與畫筆相關(guān)的操作。其中,第一個(gè)參數(shù)(nPenStyle)指定筆的線型(實(shí)線(PS_SOLID)、點(diǎn)線(PS_DOT)、虛線(PS_DASH)等);第二個(gè)參數(shù)(nWidth)指定畫筆的線寬,需要注意的是,畫筆的寬度要不超過1才能夠保證虛線線型有效;第三個(gè)參數(shù)指定筆的顏色,這個(gè)參數(shù)是COLORREF類型,利用RGB這個(gè)宏可以建立這個(gè)類型的值??梢钥闯?,RGB宏有三個(gè)參數(shù),分別代表紅、綠、藍(lán)三種顏色的值。對于前面的坐標(biāo)系的例子,若將第一行指令修改為如下代碼:CPen pen(PS_SOLID,1,RGB(0,0,255))。 //定義一個(gè)CClientDC對象CPen *pOldPen=(amp。//添加新畫筆備用然后,在最后一行代碼后面添加如下代碼:(pOldPen)。接著利用SelectObject函數(shù)將新畫筆對象選入設(shè)備描述表,再利用畫線函數(shù)可以發(fā)現(xiàn)繪制出的線發(fā)生了變化。最后介紹一下,CClientDC對象中的一個(gè)SetPixel函數(shù),該函數(shù)聲明如下:Status SetPixel(INT x, INT y, COLORREF crColor)。打開文件開始讀取文件數(shù)據(jù)最小二乘法擬合讀取完畢關(guān)閉文件是  否 計(jì)算擬合直線計(jì)算擬合直線關(guān)閉文件顯示擬合直線繪制擬合直線結(jié)束在數(shù)據(jù)坐標(biāo)點(diǎn)繪制時(shí),該函數(shù)可以完成實(shí)現(xiàn),具體代碼如下:FILE *fp1。 //二進(jìn)制方式讀文件while(!feof(fp1)) // 判斷是否讀完數(shù)據(jù)結(jié)束 { fread(amp。 //讀橫坐標(biāo) fread(amp。 //讀縱坐標(biāo)(20+x,700y,RGB(255,0,0))。 //關(guān)閉文件在上面代碼中,每行代碼的作用見標(biāo)注。 最小二乘法擬合直線的程序流程圖首先,介紹一下最小二乘法的擬合基本原則以及擬合直線方程的推導(dǎo)過程,具體分析如下:實(shí)際上,利用最小二乘法原理求取回歸參數(shù)k、b時(shí),應(yīng)使各數(shù)據(jù)點(diǎn)與擬合直線的偏離平方和為最小,假設(shè)有n對數(shù)據(jù)點(diǎn),在點(diǎn)上的y的估計(jì)量為: ()誤差方程組為: ()應(yīng)該使得最小,于是求取的參數(shù)k、b應(yīng)該滿足: \ ()式()稱為正規(guī)方程組,利用代數(shù)方法求解,可得: () ()式中, , () ()綜上所述,可以得到擬合后的直線方程為: ()另外,相關(guān)系數(shù)ρ是描述兩個(gè)變量線性關(guān)系密切程度的數(shù)量指標(biāo),自然其絕對值越大,即接近于1時(shí),x、y的線性關(guān)系就越密切;當(dāng)ρ接近0時(shí),兩者的線性變化規(guī)律就不明顯。相關(guān)系數(shù)的公式如下: ()式()中,因分母的根式值恒為正值,故相關(guān)系數(shù)的符號取決于離差積之和的符號,即與參數(shù)k的符號一致的。知道n2為自由度,又由于殘差平方和是反映了x對y線性影響之外的其他隨機(jī)影響的總和,故定義下列估計(jì)量s為: ()s也可以認(rèn)為是剩余標(biāo)準(zhǔn)差,它的意義與標(biāo)準(zhǔn)差相識,用它可以衡量所有隨機(jī)因素對y的大小,s愈大,擬合精度越高。 //求x平均avery=sumy/len_data。while(!feof(fp1)) { fread(amp。 fread(amp。Lxx+=(xaverx)*(xaverx)。Lyy+=(yavery)*(yavery)。k=Lxy/Lxx。 //求截距b在上面代碼中sumx和sumy分別為所有X、Y坐標(biāo)值的累加和,通過上述代碼,可以獲得直線方程:Y=k*X+b,于是筆者可以利用繪圖CClientDC類指令進(jìn)行繪圖,這一操作類似于理論直線的繪制。正如前面所述,不管是VC中窗口還是對話框,設(shè)備原點(diǎn)(0,0)都是在左上角,這與我們實(shí)際應(yīng)用不一樣,因此需要對設(shè)備原點(diǎn)(0,0)進(jìn)行改變,因此,原點(diǎn)改為(20,700)后才能使得繪出的圖像具有很強(qiáng)的工程意義。然后,利用前面介紹的CClientDC類繪圖中LineTo函數(shù)即可完成理論直線的繪制,具體核心代碼如下所示: (20,700m_b)。//連接A、B兩點(diǎn)(750,30,ETO_OPAQUE,CRect(750,30,750,40),_T(理論直線:),NULL)。(950,40)。繪制圖指令在前面已經(jīng)介紹過,每行代碼的作用見右邊標(biāo)注。: 理論直線和擬合直線的圖例。由于篇幅有限,筆者只介紹一下數(shù)據(jù)加入列表框部分程序的實(shí)現(xiàn),其核心代碼如下:char ch[400]。 (ch)。 在數(shù)據(jù)加載完成后,關(guān)閉文件的后面添加如下代碼:sprintf(ch,%6s %6s %6s %6s %10s %10s,點(diǎn)序號,X坐標(biāo),Y坐標(biāo),△D,方差,標(biāo)準(zhǔn)差)。//插入ch內(nèi)容到列表框中第0行通過以上代碼可以給列表框輸出一個(gè)表頭,下面對應(yīng)的就是表頭所代表的數(shù)據(jù)。打開文件開始讀取文件數(shù)據(jù)數(shù)據(jù)分析處理讀取完畢關(guān)閉文件是  否 計(jì)算擬合直線獲得分析結(jié)果關(guān)閉文件顯示分析結(jié)果結(jié)束結(jié)果分析部分編程過程中,筆者結(jié)合數(shù)控理論知識和VC++,采用了一種較為合理的方式進(jìn)行分析。針對進(jìn)給增益不同的3種匹配情況,需要給出。 結(jié)果分析程序流程圖 結(jié)果分析流程圖結(jié)合VC++,為了使得界面友好實(shí)用,筆者采用靜態(tài)文本作為給出結(jié)論和建議的介質(zhì)。VC++中的GetDlgItem(IDC_STATIC)SetWindowText(Text)。于是,我們可以得到實(shí)現(xiàn)結(jié)果分析顯示的核心程序代碼為: // 當(dāng)X軸增益相對Y軸增益匹配時(shí)GetDlgItem(IDC_STATIC_JG)SetWindowText(結(jié)論內(nèi)容)。只要將以上代碼放在當(dāng)X軸增益相對Y軸增益匹配時(shí)的條件滿足之后,就可以將結(jié)論和建議的內(nèi)容顯示出來。IDC_STATIC_JG和IDC_STATIC_JY分別是結(jié)論和建議所對應(yīng)的兩個(gè)靜態(tài)文本的ID號。這樣只要把軟件使用以文本方式輸入到靜態(tài)文本中,調(diào)用該對話框就可以看見軟件使用說明了。 軟件使用幫助程序流程圖 結(jié)果分析流程圖點(diǎn)擊幫助按鈕開始打開幫助對話框結(jié)束創(chuàng)建對話框有兩種方式,一種是模態(tài)對話框,另外一種就是非模態(tài)對話框。創(chuàng)建模態(tài)對話框需要調(diào)用CDialog類的成員函數(shù):DoModal,該函數(shù)的功能是創(chuàng)建并顯示一個(gè)模態(tài)對話框,其返回值將作為CDialog類的另外一個(gè)成員函數(shù):EndDialog的參數(shù),后者的功能就是關(guān)閉模態(tài)對話框。 //定義一個(gè)CResDlg類對象()。于是可得,實(shí)現(xiàn)創(chuàng)建非模態(tài)對話框的代碼如下:CResDlg *pDlg=new CResDlg。 //創(chuàng)建非模態(tài)對話框pDlgShowWindow(SW_SHOW)。以上針對對話框的創(chuàng)建,在其他功能模塊的設(shè)計(jì)中也有所涉及,筆者只在這里做了介紹。 4 軟件測試 軟件功能分析數(shù)控機(jī)床參數(shù)匹配測試平臺(tái)主要功能如下:(1) 采集8253芯片數(shù)據(jù)并寫入文件;(2) 讀取文件內(nèi)容并繪制數(shù)據(jù)坐標(biāo)點(diǎn);(3) 最小二乘法擬合直線;(4) 設(shè)定并繪制理論直線;(5) 數(shù)據(jù)瀏覽、誤差顯示;(6) 結(jié)果分析;(7) 軟件使用幫助。 測試讀取數(shù)據(jù)信息并繪圖讀取經(jīng)過8253芯片采集而來并儲(chǔ)存在硬盤上的文件數(shù)據(jù)內(nèi)容,通過選用MFC提供的CClientD
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1