機(jī)電一體化畢業(yè)設(shè)計凸輪綜合檢測儀的研制_第1頁
機(jī)電一體化畢業(yè)設(shè)計凸輪綜合檢測儀的研制_第2頁
機(jī)電一體化畢業(yè)設(shè)計凸輪綜合檢測儀的研制_第3頁
機(jī)電一體化畢業(yè)設(shè)計凸輪綜合檢測儀的研制_第4頁
機(jī)電一體化畢業(yè)設(shè)計凸輪綜合檢測儀的研制_第5頁
已閱讀5頁,還剩74頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

目錄中文摘要……………Ⅲ英文摘要……………Ⅳ引言…………………Ⅴ凸輪綜合檢測儀系統(tǒng)整體方案設(shè)計…………………11系統(tǒng)功能分析…………1系統(tǒng)硬件整體設(shè)計……………………21.2.1角位移傳感器的選用……………21.2.2線位移傳感器的選用……………31.2.3B向旋轉(zhuǎn)步進(jìn)電機(jī)的選用………31.2.4X、Y向步進(jìn)電機(jī)的選用………31.2.5檢測儀系統(tǒng)的硬件電路整體設(shè)計………………3系統(tǒng)軟件整體設(shè)計……………………5本章小結(jié)………………6凸輪綜合檢測儀硬件部份設(shè)計…………7操縱面板的設(shè)計………7主機(jī)板的設(shè)計…………82.2.1CPU及其存儲器電路設(shè)計………82.2.2鍵盤與顯示器電路設(shè)計………92.2.3四倍頻接口電路設(shè)計及計數(shù)器的選用………112.2.4步進(jìn)電機(jī)驅(qū)動接口電路設(shè)計…………………122.2.5打印機(jī)驅(qū)動接口電路設(shè)計……122.2.6串行通信接口電路設(shè)計………132.3系統(tǒng)總電路原理圖的繪制……………132.4本章小結(jié)………………14凸輪綜合檢測儀軟件部份設(shè)計…………153.1接口芯片的初始化程序設(shè)計…………153.1.18279的初始化程序……………163.1.28255(1)的初始化程序………173.1.38255(2)的初始化程序………173.1.48253的初始化程序……………183.2系統(tǒng)的監(jiān)控程序設(shè)計…………………193.2.1監(jiān)控流程框圖……………………193.2.2監(jiān)控程序設(shè)計……………………193.3步進(jìn)電機(jī)的閉環(huán)操縱軟件設(shè)計………223.3.1閉環(huán)操縱程序流程圖……………223.3.2閉環(huán)操縱程序設(shè)計………………223.4凸輪的相位角和升程數(shù)據(jù)搜集軟件設(shè)計……………233.4.1相位角數(shù)據(jù)搜集軟件設(shè)計………233.4.2升程數(shù)據(jù)搜集軟件設(shè)計…………233.5檢測數(shù)據(jù)的顯示軟件設(shè)計……………233.6檢測數(shù)據(jù)的存儲軟件設(shè)計……………243.7檢測數(shù)據(jù)的打印軟件設(shè)計……………263.7.1程序流程圖設(shè)計………………263.7.2打印程序設(shè)計…………………263.8本章小結(jié)………………27第四章AT89C52和8253計數(shù)時存在的問題及軟件解決方法…284.1AT89C52計數(shù)器讀數(shù)時存在的問題及解決方案……284.28253計數(shù)器存在的問題及解決方案…………………284.3本章小結(jié)………………32第五章結(jié)論………………………33謝辭…………………34附錄…………………35參考文獻(xiàn)……………61凸輪綜合檢測儀的研制摘要本文設(shè)計了一種凸輪綜合檢測儀,該檢測儀要緊用來對內(nèi)燃機(jī)凸輪軸中凸輪的升程和相位角在制造進(jìn)程中進(jìn)行查驗。凸輪的升程采納直線光柵來檢測,相位角采納旋轉(zhuǎn)編碼器來檢測。該檢測儀具有參數(shù)設(shè)定的功能,能夠檢測不同類型的凸輪或凸輪軸,檢測到的數(shù)據(jù)能夠通過LED實時顯示而且寄存于檢測儀自帶的存儲器中,也能夠通過打印機(jī)以必然的格式打印輸出。該檢測儀還能夠與運(yùn)算機(jī)進(jìn)行串行通信,在運(yùn)算機(jī)中生成實測模型,從而和已存儲的理想模型進(jìn)行比較,得出凸輪或凸輪軸的合格情形。關(guān)鍵詞:凸輪;綜合檢測儀;升程;相位角;直線光柵;旋轉(zhuǎn)編碼器TheExploitationofSyntheticMeasuringDeviceforCamsABSTRACTAkindofsyntheticmeasuringdeviceforcamsisdesignedinthepaper.Itcanmeasuretheascendingdistancesandphase-anglesofcamsduringtheprocessofcamshaftmanufacturing.Theascendingdistancesaremeasuredwithgrating-scaleandthephase-anglesaremeasuredwithrotatingencoder.Thedevicecancheckupvariouskindsofcamsorcamshaftsbecauseofitsparameterssettingfunction.ThedetecteddataisdisplayedinLEDandstoredinRAMandcanbeprintedbyprinter,too.Theinstrumentcanalsobeconnectedwithpersonalcomputertogeneraterealmodelofcamandgiveameasuringresultfromthecomparisonbetweentherealmeasuringmodelandthestoredidealmodel. Keywords:cam;syntheticmeasuringdevice;ascendingdistance;phase-angle;gratingscale;rotatingencoder引言 凸輪軸是內(nèi)燃機(jī)的一個核心部件,內(nèi)燃機(jī)的利用壽命專門大程度上取決于凸輪軸的精度。凸輪軸中凸輪的升程和相位角是兩項關(guān)鍵的技術(shù)指標(biāo),在凸輪軸的制造進(jìn)程中,升程和相位角的檢測,行業(yè)生產(chǎn)廠家大多采納阿貝測長儀和光學(xué)分度頭進(jìn)行。在實際生產(chǎn)檢測進(jìn)程中,這些檢測儀效率低、設(shè)備投資大、專業(yè)化程度高、操作繁瑣、通用性差。如對一根單缸凸輪軸的進(jìn)、排氣凸輪的升程、油泵凸輪的升程和鍵槽中心線對凸輪中心平面的夾角檢測一次,示值定位和讀數(shù)就需要花費(fèi)4-6個小時的時刻,檢測效率不能適應(yīng)現(xiàn)代化生產(chǎn)的需要。針對上述問題,本文設(shè)計了一種凸輪綜合檢測儀,能夠?qū)Χ嗥贩N、多系列、多規(guī)格的凸輪進(jìn)行檢測。該檢測儀要緊用來檢測凸輪的相位角和升程,即相關(guān)于某一基準(zhǔn)位置,當(dāng)凸輪轉(zhuǎn)過指定的角度時,自動檢測對應(yīng)的升程。凸輪的相位角采納旋轉(zhuǎn)編碼器來檢測,升程采納直線光柵尺來檢測。檢測到的數(shù)據(jù)既能夠通過LED顯示器進(jìn)行顯示,也能夠通過并行打印機(jī)打印輸出,還能夠?qū)z測到的數(shù)據(jù)通過串行接口傳送到個人運(yùn)算機(jī),生成凸輪的實測模型,與存儲在運(yùn)算機(jī)中的理想模型進(jìn)行比較,得出凸輪的合格情形,從而實現(xiàn)可視化檢測。凸輪綜合檢測儀系統(tǒng)整體方案設(shè)計1.1系統(tǒng)功能分析本文設(shè)計的凸輪綜合檢測儀要緊用來檢測凸輪的相位角和升程,如圖1-1所示。被測凸輪或凸輪軸一端夾緊后由B向步進(jìn)電機(jī)帶動旋轉(zhuǎn),另一端用尾座頂針頂緊。B向電機(jī)、被測工件、尾座三者安置在一個X-Y工作臺的表面上。凸輪的相位角由步進(jìn)電機(jī)操縱,系統(tǒng)采納閉環(huán)算法,使得B向步進(jìn)電機(jī)每次準(zhǔn)確轉(zhuǎn)動指定角度。升程的檢測,如圖1-2所示,凸輪旋轉(zhuǎn)時帶動平面測頭伸縮,致使直線光柵的動尺相關(guān)于定尺產(chǎn)生移動,如此,凸輪升程的轉(zhuǎn)變就能夠夠從直線光柵的輸出量反映出來。直線光柵與機(jī)座連接,不隨X-Y工作臺運(yùn)動。開始測量的時候,將凸輪的最高點(diǎn)調(diào)整到與平面測頭緊密接觸的位置?,F(xiàn)在,將相位角和升程的計數(shù)值清零,然后,系統(tǒng)操縱B向步進(jìn)電機(jī)準(zhǔn)確地轉(zhuǎn)過1o,這時直線光柵的輸出量確實是對應(yīng)1o相位角的升程值。以后,B向電機(jī)每轉(zhuǎn)動1o,系統(tǒng)就記錄一次升程值;當(dāng)B向電機(jī)轉(zhuǎn)過360o時,便完成了一個凸輪的升程檢測。檢測第二個凸輪時,系統(tǒng)第一操縱X向步進(jìn)電機(jī),使得工作臺沿+X向移動,將凸輪外緣拖離平面測頭,然后,再通過Y向步進(jìn)電機(jī)將第二個凸輪外緣對準(zhǔn)測頭。接下來重復(fù)上述步驟。本檢測儀的坐標(biāo)系成立如圖1-3所示。尾座頂針Y向步進(jìn)電機(jī)機(jī)座X向步進(jìn)電機(jī)凸輪B向步進(jìn)電機(jī)凸輪軸旋轉(zhuǎn)編碼器尾座頂針Y向步進(jìn)電機(jī)機(jī)座X向步進(jìn)電機(jī)凸輪B向步進(jìn)電機(jī)凸輪軸旋轉(zhuǎn)編碼器圖1-1檢測儀機(jī)械部份主體布置示用意彈簧被測凸輪檢測桿直線光柵緊固螺栓平面測頭端蓋彈簧被測凸輪檢測桿直線光柵緊固螺栓平面測頭端蓋圖1-2檢測儀機(jī)械部份升程檢測示用意 O+Y +X B向 B向電機(jī)被測凸輪軸尾坐頂針圖1-3檢測儀的坐標(biāo)系通過以上分析,能夠看出,為了實現(xiàn)多個凸輪的相位角和升程的檢測,需要以下部件:3臺步進(jìn)電機(jī)。其中一臺操縱B向轉(zhuǎn)動;另外兩臺操縱X-Y工作臺的移動。這3臺電機(jī)均要檢測儀系統(tǒng)發(fā)信號來操縱。兩只傳感器。其中一只角位移傳感器,用來檢測凸輪的相位角;另外一只為直線光柵,用以檢測凸輪的升程。這兩只傳感器的信號均要送到檢測儀系統(tǒng)進(jìn)行處置。1.2系統(tǒng)硬件整體設(shè)計1.2.1角位移傳感器的選用 角位移的檢測確實是B向轉(zhuǎn)角的檢測,即凸輪的相位角。今選用5400線的圓光柵,電壓為+5V,輸出相位差為90o的A、B兩路脈沖,經(jīng)四倍頻電路4細(xì)分和辨向后,輸出順時針和逆時針兩路計數(shù)脈沖。如此,編碼器轉(zhuǎn)動一周時,輸出4×5400=21600個脈沖,凸輪一周轉(zhuǎn)動360o,即21600′,因此,凸輪每轉(zhuǎn)過1′的角度,四倍頻電路輸出1個計數(shù)脈沖。1.2.2線位移傳感器的選用 線位移的檢測確實是X向位移的檢測,即凸輪的升程。本系統(tǒng)選用每毫米250線的直線光學(xué)尺,柵距為0.004mm,工作電壓為+5V,輸出相位差為90o的A、B兩路脈沖,經(jīng)四倍頻電路4細(xì)分和辨向后,輸出+X、-X兩路計數(shù)脈沖。如此,直線光柵移動1/4柵距即0.001mm時,四倍頻電路輸出1個計數(shù)脈沖。1.2.3B向旋轉(zhuǎn)步進(jìn)電機(jī)的選用 考慮到凸輪相位角的分辨率為1′,要求步進(jìn)電機(jī)每轉(zhuǎn)360o即21600′時,電機(jī)轉(zhuǎn)過21600步,如此步進(jìn)電機(jī)的步距角應(yīng)為1′。系統(tǒng)當(dāng)選取步進(jìn)電機(jī)的參數(shù)為:三相混合式步進(jìn)電機(jī),型號90BYG3501,維持轉(zhuǎn)矩為,步距角為o,與之配套的驅(qū)動電源選擇36細(xì)分,如此,檢測儀每發(fā)出一個步進(jìn)脈沖,電機(jī)轉(zhuǎn)過1′的角度,從而帶動圓光柵向計數(shù)器發(fā)出一個計數(shù)脈沖。1.2.4X、Y向步進(jìn)電機(jī)的選用 X、Y均為移動軸,本系統(tǒng)設(shè)定脈沖當(dāng)量均為0.01mm/step,選用三相混合式步進(jìn)電機(jī),型號為90BYG3502,維持轉(zhuǎn)矩為,步距角為o,驅(qū)動電源不需要細(xì)分,滾珠絲杠選用FL2006型,導(dǎo)程為6mm。1.2.5檢測儀系統(tǒng)的硬件電路整體設(shè)計本檢測儀的操縱系統(tǒng)采納MCS-51系列的AT89C52單片機(jī)作為CPU,擴(kuò)展一片27C512EPROM作為程序存儲器、一片6264RAM作為數(shù)據(jù)存儲器、一片8279用來治理鍵盤與顯示器、一片8253計數(shù)器用來搜集數(shù)據(jù)、兩片8255PPI芯片別離用來操縱步進(jìn)電機(jī)和并行打印機(jī)。硬件電路整體設(shè)計框圖如圖1-4。PC機(jī)RxDPC機(jī)RxDTxDTxDRxDAT89C52單片機(jī)T0矩陣鍵盤8279矩陣鍵盤8279管理鍵盤與顯示器第一排LED第一排LED2051CPU2051CPU第二排與第三排LED第二排與第三排LED27C512EPROM27C512EPROM62646264RAM掉電保護(hù)電路掉電保護(hù)電路步進(jìn)電機(jī)驅(qū)動接口X向移動驅(qū)動器18255(1)PB口PC口步進(jìn)電機(jī)驅(qū)動接口X向移動驅(qū)動器18255(1)PB口PC口Y向移動驅(qū)動器2Y向移動驅(qū)動器2B向轉(zhuǎn)動驅(qū)動器3B向轉(zhuǎn)動驅(qū)動器36個方向鍵6個方向鍵四倍頻1四倍頻18255(2)8255(2) 并行打印機(jī)并行打印機(jī)82538253計數(shù)器直線光柵四倍頻2直線光柵四倍頻2圖1-4硬件電路整體設(shè)計框圖1.3系統(tǒng)軟件整體設(shè)計硬件是系統(tǒng)的基礎(chǔ),硬件設(shè)計的好壞決定了系統(tǒng)的靠得住性;軟件是系統(tǒng)的靈魂,軟件設(shè)計的好壞決定了系統(tǒng)的功能和系統(tǒng)的操作難易?,F(xiàn)今,運(yùn)算機(jī)語言多種多樣,有匯編語言、高級語言還有可視化語言,這些語言各有所長,本設(shè)計當(dāng)選用結(jié)構(gòu)緊湊、效率高、實時性強(qiáng)的匯編語言來編程。系統(tǒng)上電復(fù)位,有關(guān)I/O接口芯片初始化系統(tǒng)上電復(fù)位,有關(guān)I/O接口芯片初始化參數(shù)設(shè)定?參數(shù)設(shè)定? N手動調(diào)整? N手動調(diào)整? 自動測量? Y自動測量? N設(shè)定有關(guān)檢測參數(shù)設(shè)定有關(guān)檢測參數(shù)顯示結(jié)果? Y顯示結(jié)果? N打印輸出測量結(jié)果將檢測結(jié)果送到PC機(jī)打印結(jié)果?顯示測量結(jié)果手動調(diào)整檢測儀打印輸出測量結(jié)果將檢測結(jié)果送到PC機(jī)打印結(jié)果?顯示測量結(jié)果手動調(diào)整檢測儀自動測量升程和相位角Y N數(shù)據(jù)通訊? YN數(shù)據(jù)通訊? Y Y 圖1-5軟件整體流程圖本檢測儀系統(tǒng)應(yīng)具有以下幾檔功能:參數(shù)設(shè)定;手動調(diào)整;自動測量;顯示結(jié)果;打印結(jié)果;數(shù)據(jù)通信。軟件整體流程圖如圖1-5所示。1.4本章小結(jié)本章分析了綜合檢測儀的功能,選取了傳感器和步進(jìn)電機(jī),對綜合檢測儀系統(tǒng)的硬件和軟件進(jìn)行了整體設(shè)計。第二章凸輪綜合檢測儀硬件部份設(shè)計2.1操縱面板的設(shè)計操縱面板是操作者與系統(tǒng)進(jìn)行友好人機(jī)對話的基礎(chǔ),操縱面板的設(shè)計是檢測儀系統(tǒng)的一個重要組成部份。符合操作適應(yīng)的面板布置,不僅利用起來感到方便而且工作效率也能提高,同時,美觀大方也是設(shè)計所追求的目標(biāo)之一。本檢測儀操縱面板的布置大致分為以下幾部份:三排LED顯示數(shù)碼管、6個手動方向鍵、功能鍵、編輯鍵、系統(tǒng)按鍵。具體面板布置情形見圖2-1。其中,左上為三排LED三排LED顯示數(shù)碼管TCS789系統(tǒng)急停GXZ456MUW123控制電源FIK-0.-X-Y-BBLREDP啟動+X+Y+BNSpaPupPdnEscInsDelLF停止參數(shù)設(shè)定手動調(diào)整自動測量顯示結(jié)果打印結(jié)果數(shù)據(jù)通訊圖2-1操縱面板鍵符布置圖顯示管,左中為+X、-X、+Y、-Y、+B、-B共6個手動方向鍵,左下為“參數(shù)設(shè)定、手動調(diào)整、自動測量、顯示結(jié)果、打印結(jié)果、數(shù)據(jù)通信”6個系統(tǒng)工作狀態(tài)鍵,中間部份為編輯程序用的42個編輯鍵,右邊部份為系統(tǒng)的急停按鈕、啟動按鍵和停止按鍵。2.2主機(jī)板的設(shè)計2.2.1CPU及其存儲器電路設(shè)計本檢測儀采納美國ATMEL公司的AT89C52芯片作為其CPU,AT89C52是Intel公司的MCS-51系列產(chǎn)品,其功能全、價錢低,它的32條數(shù)據(jù)線隸屬于四個8位的雙向端口,每一個端口均有鎖存器、輸出驅(qū)動器和輸入緩存器。P0口作為數(shù)據(jù)/地址復(fù)用線,通過地址鎖存器后,輸出16根地址線的低8位,而8根數(shù)據(jù)線是通過P0口直接輸出的。P1口一樣作為I/O口來利用。P2口提供16根地址線的高8位,通經(jīng)常使用P2口的高位經(jīng)地址譯碼器譯碼后選擇I/O接口芯片。P3口用作中斷、計數(shù)、串行通信等功能。存儲器分為程序存儲器和數(shù)據(jù)存儲器,本系統(tǒng)擴(kuò)展一片27C512EPROM作為程序存儲器、一片6264RAM作為數(shù)據(jù)存儲器。關(guān)于片外存儲器的訪問有兩種不同的方式:訪問片外程序存儲器時,CPU用PSEN作為EPROM的讀選通信號;訪問片外數(shù)據(jù)存儲器時,CPU用RD或WR別離作為片外RAM的讀或?qū)戇x通信號。讀程序存儲器時,不管是片內(nèi)或片外,老是用16位地址即程序計數(shù)器PC作為地址指針;訪問片外數(shù)據(jù)存儲器時,既可用16位地址指針,也可用8位地址指針??删幊蘎OM芯片27C512是64K×8位的EPROM,在本系統(tǒng)中,它的引腳接法如下:A15-A0:16根地址線,輸入,連地址總線。D7-D0:8根數(shù)據(jù)線,編程時作數(shù)據(jù)輸入,讀出時為數(shù)據(jù)輸出,連數(shù)據(jù)總線。CE:芯片許諾端,輸入,低電平有效,連CPU的PSEN。OE:輸出許諾,輸入,低電平有效,接地。RAM芯片6264是8K×8位的靜態(tài)RAM,在系統(tǒng)中它的引腳連接如下:A12-A0:地址線13根,輸入,連地址總線。D7-D0:8根數(shù)據(jù)線,連數(shù)據(jù)總線。WE:寫許諾信號,低電平有效,接CPU的WR。OE:讀許諾信號,低電平有效,接CPU的RD。CS:片選信號,低電平有效,接地址譯碼器的輸出。本檢測儀基于AT89C52CPU,有關(guān)I/O接口的選擇如圖2-2所示。P0口ALEPSENAT89C52P0口ALEPSENAT89C52單片機(jī)RDWRP2口 74LS74LS373LE 系統(tǒng)地址 總線低8位 A0-A727C27C512EPROM62646264RAM CY0BY1CY0BY1AY2Y3Y474LS138譯碼器 8279的CS 8255(1)的CS 6264的CS 8253的CS 8255(2)的CS系統(tǒng)的地址總線高8位A8-A15圖2-2CPU對外圍芯片的選擇示用意2.2.2鍵盤與顯示器電路設(shè)計本系統(tǒng)的編輯鍵盤由8279來掃描治理,每當(dāng)矩陣鍵盤上有鍵按下時,8279為該鍵自動編碼,同時向CPU申請中斷,CPU在響應(yīng)中斷效勞程序時,向8279發(fā)出一個讀FIFO的命令,從8279的數(shù)據(jù)口讀出鍵值,判定該鍵值等于多少后,轉(zhuǎn)入相應(yīng)的鍵處置程序進(jìn)行處置。另外,系統(tǒng)的6個方向鍵由8255(1)來治理,系統(tǒng)的工作狀態(tài)鍵由AT89C52的P1口來治理。8279各部份的功能和有關(guān)引腳連接如下:(1)D0-D7:數(shù)據(jù)線,雙向,三態(tài),接系統(tǒng)的數(shù)據(jù)總線。(2)CLK:系統(tǒng)時鐘輸入,接CPU的ALE。(3)RESET:復(fù)位,接CPU的復(fù)位端。(4)CS:片選輸入,低電平有效,接74LS138的輸出端Y0。(5)A0:端口選擇線,接系統(tǒng)地址總線的A0。(6)RD、WR:讀寫信號輸入線,低電平有效,與CPU的RD、WR對應(yīng)相連。(7)IRQ:中斷請求輸出線,經(jīng)反相后送到CPU的ITR0引腳。(8)SL0-SL3:掃描輸出線,經(jīng)74LS138譯碼后作為鍵盤的行掃描線或顯示器的位選通信號線。(9)RL0-RL7:鍵盤的列回饋線。(10)OUTA0-OUTA3:A組顯示信號輸出線,送到顯示驅(qū)動電路。(11)OUTB0-OUTB3:B組顯示信號輸出線,送到顯示驅(qū)動電路。8255是一種通用的可編程并行I/O接口芯片,它與Intel系列微處置器配套利用。8255各部份的功能和有關(guān)引腳的情形如下:(1)數(shù)據(jù)端口A、B和C。(2)A組和B組操縱邏輯。(3)數(shù)據(jù)總線緩沖器。(4)讀/寫操縱邏輯。8255的讀/寫操縱信號包括以下引腳:(1)RESET:復(fù)位信號,與CPU的RESET并接。(2)CS:片選信號,接74LS138的輸出,低電平有效。(3)RD:讀信號,低電平有效。與CPU的RD相連。(4)WR:寫信號,低電平有效。與CPU的WR相連。(5)A一、A0:端口選擇信號。別離接系統(tǒng)地址總線的低位A一、A0。本檢測儀的顯示器采納高亮度LED,由于顯示的數(shù)據(jù)多,因此選擇動態(tài)顯示。8279的掃描輸出線SL0-SL3經(jīng)74LS138譯碼后,動態(tài)掃描第一排LED顯示管的COM端。8279的掃描頻率設(shè)定為100KHz,而人眼的視覺暫留時刻為20mS(相當(dāng)于50Hz),因此,一行LED顯示管即便不是同時點(diǎn)亮,人的肉眼看起來仍然感覺是穩(wěn)固的。當(dāng)需要在指定位置顯示指定的內(nèi)容時,CPU只需向8279的顯示RAM寫入顯示段碼即可。顯示器的位掃描工作全數(shù)由8279來承擔(dān)。第一行的第一只顯示管為16段LED,相當(dāng)于2個“日”字管,但這16段共用一個COM端,為此,采納了2片74LS373解決了分半顯示16段LED的問題。系統(tǒng)中,上面的第一排(一個“米”字管和七個“日”字管)由8279來治理,要緊顯示檢測儀的工作狀態(tài)。被選擇某種工作狀態(tài)時,顯示提示符號。切換到數(shù)據(jù)顯示方式時,第一行LED顯示的是升程值。另外,系統(tǒng)編程時,指令字均由第一排LED來顯示。第二排和第三排LED都由2051CPU來治理,每排都是一個“米”字管和七個“日”字管,可是“米”字管不需要輸出操縱,電路中已經(jīng)接成固定狀態(tài),別離顯示“X”和“Z”。后面的七個“日”字管用來實時顯示工作臺在X軸和Y軸的坐標(biāo)位置。8279和2051與LED顯示管的具體連線參見附錄(檢測儀電路原理圖)。2.2.3四倍頻接口電路設(shè)計及計數(shù)器的選用四倍頻電路的設(shè)計本檢測儀選用的圓光柵和直線光柵,它們的輸出信號均有A、B兩路脈沖,且A、B相位差為90o。為了降低本錢,能夠選擇線數(shù)較少的光柵,然后將A、B兩路信號送到四倍頻電路,進(jìn)行4細(xì)分和辨向。詳細(xì)電路參見附錄。計數(shù)器的選用檢測儀的關(guān)鍵是獲取相位角和升程的數(shù)據(jù)。相位角采納圓光柵檢測,A、B相信號送到四倍頻電路后,輸出-B向和+B向旋轉(zhuǎn)脈沖,其中的-B向脈沖由AT89C52的T0計數(shù)器接收,+B向脈沖送到8253計數(shù)器的CLK0。升程的檢測由直線光柵完成,A、B兩路脈沖相信號通過四倍頻電路后,輸出-Y向和+Y向移動脈沖,其中的-Y向脈沖由8253的CLK1接收,+Y向脈沖送到8253計數(shù)器的CLK2。鑒于以上分析,本系統(tǒng)中的計數(shù)器采納AT89C52的T0和8253的CLK0—CLK2,一共需要4個計數(shù)器。其中CPU的T0計數(shù)器利用起來比較簡單,只要將四倍頻電路的輸出脈沖-B直接引到T0腳即可。下面重點(diǎn)看一下8253計數(shù)器的利用,8253含有以下幾個模塊:1)數(shù)據(jù)總線緩沖器:CPU對8253的讀/寫操作均要通過數(shù)據(jù)總線緩沖器。本系統(tǒng)中,8253的8根數(shù)據(jù)線直接掛在系統(tǒng)的數(shù)據(jù)總線上。2)讀/寫操縱邏輯: CS:片選信號,低電平有效。與74LS138的輸出端Y3相連。RD:讀信號,低電平有效。與CPU的RD相連。WR:寫信號,低電平有效。與CPU的WR相連。A0、A1:端口選擇信號。別離與系統(tǒng)地址總線的A0、A1相連。3)計數(shù)器0--2CLK0-CLK2:計數(shù)器0-2的計數(shù)脈沖引入端。別離接四倍頻電路的輸出端。OUT0-OUT2:計數(shù)器0-2的輸出端。本系統(tǒng)中,OUT0-2懸空不接。GATE0-GATE2:計數(shù)器0-2的計數(shù)許諾端。本系統(tǒng)均接高。計數(shù)器與CPU和光柵的詳細(xì)連接參見附錄。2.2.4步進(jìn)電機(jī)驅(qū)動接口電路設(shè)計步進(jìn)電機(jī)的走步是通過8255(1)輸出操縱信號來實現(xiàn)的。8255(1)的PB口輸出了DIRb、CPb、DIRx、CPx、DIRy、CPy共6個驅(qū)動信號,其中DIR表示步進(jìn)電機(jī)的方向信號,DIR=0,表示電機(jī)逆時針旋轉(zhuǎn),DIR=1表示電機(jī)順時針旋轉(zhuǎn);CP表示步進(jìn)脈沖信號,正脈沖有效,正脈沖的寬度為5個微秒,CP的個數(shù)決定了電機(jī)的轉(zhuǎn)角,每兩個CP之間的時刻距離決定了電機(jī)的轉(zhuǎn)速。步進(jìn)電機(jī)驅(qū)動接口詳細(xì)電路見附錄。2.2.5打印機(jī)驅(qū)動接口電路設(shè)計打印機(jī)的工作是通過8255(2)來實現(xiàn)操縱的,PB口作為數(shù)據(jù)輸出,PA口和PC口別離作為CPU和打印機(jī)的應(yīng)答信號。本系統(tǒng)能夠輸出操縱TPμP-16B系列微型打印機(jī),其要緊性能指標(biāo)有:打印系統(tǒng):點(diǎn)陣式(每行96點(diǎn)),采納Model-150II型機(jī)頭。打印速度:每點(diǎn)行約100ms,每行字符約1s。字符組成:5×7點(diǎn)陣(或6×8點(diǎn)陣)。打印字符:96個ASCII字符、16個用戶自概念字符、64個特殊符號、64個圖符等。打印命令:單字節(jié)打印命令,命令代碼為01H~0FH。接口:Centronic標(biāo)準(zhǔn)并行接口??康米⌒裕篗CBF(平均無端障行數(shù))500000行。開關(guān):復(fù)位/運(yùn)行開關(guān)、自測試開關(guān)、送紙按鈕開關(guān)。電源:直流+5V,。 TPμP-16B接口為Centronic標(biāo)準(zhǔn)并行接口,其操縱引線如下:DB0~DB7——數(shù)據(jù)傳輸總線,輸入;STB——數(shù)據(jù)選通信號,輸入,低有效;BUSY——“忙”信號,輸出,高有效;ACK——“應(yīng)答”信號,輸出,低有效;ERR——“犯錯”信號,輸出,低有效;GND——信號地。在本系統(tǒng)中TPμP-16B微型打印機(jī)通過8255(2)芯片與CPU連接,詳細(xì)電路見附錄。2.2.6串行通信接口電路設(shè)計由本檢測儀獲取的數(shù)據(jù)能夠通過CPU的Rxd和Txd引腳傳送給個人運(yùn)算機(jī),生成凸輪的實測模型,與存儲在PC機(jī)中的理想模型進(jìn)行比較,從而得出產(chǎn)品的合格情形。CPU的Rxd和Txd引腳通過標(biāo)準(zhǔn)的RS232C接口直接送到PC機(jī)的插座。2.3系統(tǒng)總電路原理圖的繪制系統(tǒng)總電路原理圖的繪制采納的是PROTEL99畫圖軟件,該軟件利用起來簡單、方便,軟件中可選的元件庫為隨意地選擇器件提供了專門大的方便。本系統(tǒng)的總電路原理圖參見附錄。2.4本章小結(jié)本章詳細(xì)地表達(dá)了凸輪綜合檢測儀系統(tǒng)的硬件部份設(shè)計,內(nèi)容包括:操縱面板的設(shè)計、CPU及其外圍電路的設(shè)計、鍵盤與顯示器的設(shè)計、四倍頻接口電路的設(shè)計、計數(shù)器的選用、步進(jìn)電機(jī)驅(qū)動接口電路的設(shè)計、打印機(jī)驅(qū)動接口電路的設(shè)計、串行數(shù)據(jù)傳送接口的設(shè)計,和系統(tǒng)的詳細(xì)電原理圖設(shè)計。凸輪綜合檢測儀軟件部份設(shè)計3.1接口芯片的初始化程序設(shè)計本節(jié)第一計算各個I/O接口芯片的編程地址,由圖2-2算得地址如表3-1所示。表3-1系統(tǒng)中所有I/O接口芯片的地址范圍名稱地址A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A027C5120000H~FFFFH0101010101010101010101010101010182791FFEH~1FFFH000000111111111111111111111111018255(1)3FFCH~3FFFH0000111111111111111111111111010162644000H~5FFFH0011000101010101010101010101010182537FFCH~7FFFH001111111111111111111111111101018255(2)5FFCH~5FFFH11000011111111111111111111110101依照上表得出I/O接口的編程地址如表3-2所示。表3-2I/O接口的具體地址8279控制口地址1FFFHA0=1數(shù)據(jù)口地址1FFEHA0=08255(1)/(2)PA口3FFCH/5FFCHA1,A0=0,0PB口3FFDH/5FFDHA1,A0=0,1PC口3FFEH/5FFEHA1,A0=1,0控制口3FFFH/5FFFHA1,A0=1,18253通道17FFCHA1,A0=0,0通道27FFDHA1,A0=0,1通道37FFEHA1,A0=1,0控制口7FFFHA1,A0=1,13.1.18279的初始化程序(1)8279的部份命令字情形如下:1)鍵盤/顯示方式設(shè)置命令字命令格式:D7D6D5D4D3D2D1D0000DDKKKD7D6D5=000為特點(diǎn)位。D4D3=DD:用來設(shè)置顯示方式。D2D1D0=KKK:用來設(shè)置鍵盤工作方式。2)寫顯示RAM命令命令格式:D7D6D5D4D3D2D1D0100AIAAAAD7D6D5=100為寫顯示RAM命令的特點(diǎn)字。D3D2D1D0=AAAA用來尋址顯示RAM的地址。D4=AI為自動增量特點(diǎn)位。當(dāng)AI=1時,每次寫入后,地址自動加1,指向下一個地址。AI=0時,寫入AAAA指定的RAM單元。(2)8279的初始化程序如下:B279:MOV DPTR,#1FFFH;指向控制口地址 MOV A,#0CFH;清FIFO與顯示RAM命令字MOVX@DPTR,A;寫入操縱端口WAIT:MOVXA,@DPTR;讀取8279狀態(tài)口內(nèi)容JB,WAIT ;檢測狀態(tài)口的最高位是否為0,;假設(shè)是,清除終止;不然,等待。MOV A,#08H ;鍵盤與顯示方式設(shè)置 MOVX@DPTR,A MOV A,#34H;分頻系數(shù)設(shè)定 MOVX@DPTR,A RET3.1.28255(1)的初始化程序(1)8255的操縱字格式如下:D7D6D5D4D3D2D1D0D7=1標(biāo)志位A組工作方式00方式001方式11X方式2A口I/O1輸入0輸出C口高4位I/O1輸入0輸出B組工作方式0方式01方式1B口I/O1輸入0輸出C口低4位I/O1輸入0輸出具體初始化程序:B2551:MOV DPTR,#3FFFH ;選擇控制口地址MOV A,#B;PA口方式0,輸出MOVX @DPTR,A ;PC口高4位輸入RET;PB口方式0,輸出;PC口低4位輸入 8255(1)的PA口用來輸出X軸和Y軸的顯示坐標(biāo),PB口輸出步進(jìn)電機(jī)的走步信號,PC口接收手動按鍵信號。3.1.38255(2)的初始化程序8255(2)與8255(1)初始化程序大體一樣,程序如下:B2552:MOV DPTR,#5FFFH ;選擇控制口地址 MOV A,#B;PA口方式0,輸出 MOVX @DPTR,A ;PC口高4位輸入 RET;PB口方式0,輸出;PC口低4位輸入 3.1.48253的初始化程序(1)工作方式操縱字的格式8253的操縱字格式如下:D7D6D5D4D3D2D1D0SC1SC0RL1RL0M2M1MBCD00:選擇通道000:計數(shù)器鎖存操作000方式01:BCD碼計數(shù)01:選擇通道101:只讀/寫計數(shù)器低字節(jié)001方式10:HEX碼計數(shù)10:選擇通道210:只讀/寫計數(shù)器高字節(jié)X10方式211:無效11:先讀/寫計數(shù)器低字節(jié)X11方式3后讀/寫計數(shù)器高字節(jié)100方式4101方式5(2)本檢測儀用到8253的三個計數(shù)器,系統(tǒng)上電后,需要對這三個通道別離進(jìn)行初始化。三個計數(shù)器均工作在方式0,對外部事件進(jìn)行計數(shù)。程序如下:CUNT:MOV DPTR,#7FFFH ;8253操縱口地址B2530:MOV A,#00110000B ;計數(shù)器0,工作方式0,;兩次讀/寫,HEX碼計數(shù) MOVX @DPTR,A MOV DPTR,#7FFCH ;計數(shù)器0的數(shù)據(jù)口地址 CLR A MOVX @DPTR,A MOVX @DPTR,A ;計數(shù)器0裝入初值65536B2531:MOV DPTR,#7FFFH ;8253操縱口地址 MOV A,#01110000B ;計數(shù)器1,工作方式0,;兩次讀/寫,HEX碼計數(shù) MOVX @DPTR,A MOV DPTR,#7FFDH ;計數(shù)器1的數(shù)據(jù)口地址 CLR A MOVX @DPTR,A MOVX @DPTR,A ;計數(shù)器1裝入初值65536B2532: MOV DPTR,#7FFFH ;8253操縱口地址MOV A,#B ;計數(shù)器2,工作方式0,;兩次讀/寫,HEX碼計數(shù) MOVX @DPTR,A MOV DPTR,#7FFEH ;計數(shù)器2數(shù)據(jù)口地址 CLR A MOVX @DPTR,A MOVX @DPTR,A ;計數(shù)器2裝入初值65536RET 3.2系統(tǒng)的監(jiān)控程序設(shè)計3.2.1監(jiān)控流程框圖檢測位功能參數(shù)設(shè)定手動調(diào)整自動測量顯示結(jié)果打印結(jié)果通訊功能子程序EDITMANUAUTODISPPRINTCOMMU系統(tǒng)上電后,進(jìn)行工作狀態(tài)的判定選擇。其流程圖如圖3-1所示。3.2.2監(jiān)控程序設(shè)計監(jiān)控程序為系統(tǒng)的主程序。系統(tǒng)上電復(fù)位后,對有關(guān)I/O接口芯片進(jìn)行初始化編程,隨后,檢測系統(tǒng)的狀態(tài)鍵處于某種功能狀態(tài),然后進(jìn)入該狀態(tài)進(jìn)行處置,在處置程序中等待有關(guān)按鍵的輸入,若是現(xiàn)在沒有按下任何鍵,那么系統(tǒng)又開始進(jìn)行功能狀態(tài)的查詢。如此,就形成了系統(tǒng)的監(jiān)控。 ORG 0000H JMP MAIN ;主程序從MAIN開始 ORG 0003H JMP ITR0 ;8279鍵盤中斷入口在ITR0ORG 0013H JMP ITR1 ;系統(tǒng)緊急停止中斷入口在ITR1ORG 0020HMAIN:MOV SP,#80H ;主程序開始 MOV PSW,#00H CALL B279;8279初始化 CALL B2551;8255(1)初始化 CALL B2552 ;8255(2)初始化CALL CUNT ;8253計數(shù)器初始化 MOV TMOD,#55H ;CPU的計數(shù)器初始化 CALL DIRP ;顯示系統(tǒng)提示符“P” AGAIN: JNB ,EDIT ;轉(zhuǎn)到EDIT入口進(jìn)行處置 JNB ,MANU ;轉(zhuǎn)到MANU入口進(jìn)行處理 JNB ,AUTO ;轉(zhuǎn)到AUTO入口進(jìn)行處置JNB ,DISP ;轉(zhuǎn)到DISP入口進(jìn)行處理JNB ,PRINT ;轉(zhuǎn)到PRINT入口進(jìn)行處置JNB ,COMMU;轉(zhuǎn)到COMMU入口進(jìn)行處置JMPAGAIN ;繼續(xù)查詢EDIT: …… ;參數(shù)設(shè)定處理 …… JMP AGAIN ;返回監(jiān)控MANU: …… ;手動調(diào)整處理 …… JMP AGAIN;返回監(jiān)控AUTO: …… ;自動檢測處理 …… JMP AGAIN;返回監(jiān)控DISP: …… ;數(shù)據(jù)顯示處理 …… JMP AGAIN;返回監(jiān)控PRINT: …… ;數(shù)據(jù)打印處置 …… JMP AGAIN;返回監(jiān)控COMMU: …… ;數(shù)據(jù)通信處置 ……JMP AGAIN;返回監(jiān)控系統(tǒng)上電復(fù)位,有關(guān)I/O接口芯片初始化系統(tǒng)上電復(fù)位,有關(guān)I/O接口芯片初始化=0?=0? N=0? N=0? =0? Y=0? N進(jìn)入EDIT入口設(shè)定檢測參數(shù)進(jìn)入EDIT入口設(shè)定檢測參數(shù)=0? Y=0? N進(jìn)入PRINT入口打印輸出測量結(jié)果進(jìn)入COMMU入口進(jìn)行通訊送到PC機(jī)=0?進(jìn)入DISP入口進(jìn)行數(shù)據(jù)顯示測量結(jié)果進(jìn)入MANU入口手動調(diào)整檢測儀進(jìn)入PRINT入口打印輸出測量結(jié)果進(jìn)入COMMU入口進(jìn)行通訊送到PC機(jī)=0?進(jìn)入DISP入口進(jìn)行數(shù)據(jù)顯示測量結(jié)果進(jìn)入MANU入口手動調(diào)整檢測儀進(jìn)入AUTO入口進(jìn)行自動測量Y N=0? YN=0? Y Y 圖3-1系統(tǒng)監(jiān)控流程圖3.3步進(jìn)電機(jī)的閉環(huán)操縱軟件設(shè)計3.3.1閉環(huán)操縱程序流程圖本檢測儀中,凸輪相位角的檢測采納B向步進(jìn)電機(jī)和B向圓光柵來實現(xiàn)。在本文第一章中,已經(jīng)選取B向電機(jī)的步距角為1′,B向電機(jī)每轉(zhuǎn)1′,CPU的T0或8253的CLK0計數(shù)器收到1個計數(shù)脈沖。檢測升程時,系統(tǒng)要操縱B向步進(jìn)電機(jī)每次準(zhǔn)確轉(zhuǎn)過1o,即操縱B向電機(jī)準(zhǔn)確轉(zhuǎn)動60步。如此,系統(tǒng)需要對B軸進(jìn)行閉環(huán)操縱。B向電機(jī)閉環(huán)操縱走60步的程序流程如圖3-2所示。(7CH)賦初值60步(7CH)賦初值60步控制B向電機(jī)順轉(zhuǎn)一步控制B向電機(jī)順轉(zhuǎn)一步采樣得到逆轉(zhuǎn)步數(shù)采樣得到逆轉(zhuǎn)步數(shù)(N-)和順轉(zhuǎn)步數(shù)(N+)(7CH)=(7CH)-C修改指令(7CH)←修改指令(7CH)←(7CH)+(N-)-(N+)(7CH)=0? N(7CH)=0? YB向60步B向60步結(jié)束圖3-2B向步進(jìn)電機(jī)閉環(huán)操縱走60步程序流程圖3.3.2閉環(huán)操縱程序設(shè)計B向步進(jìn)電機(jī)閉環(huán)操縱走60步的具體程序見附錄程序中的ONCE子程序。3.4凸輪的相位角和升程數(shù)據(jù)搜集軟件設(shè)計3.4.1相位角數(shù)據(jù)搜集軟件設(shè)計本檢測儀在檢測進(jìn)程中,系統(tǒng)閉環(huán)操縱B向電機(jī)每次準(zhǔn)確動1度,然后搜集升程數(shù)據(jù),如此,相位角就不需要專門設(shè)計軟件來檢測,或說,相位角每次遞增1度。3.4.2升程數(shù)據(jù)搜集軟件設(shè)計升程的數(shù)據(jù)搜集處置程序流程圖如圖3-3所示。具體程序參見附錄中的SHENG子程序。升程初值X清零升程初值X清零采樣8253計數(shù)器1得采樣8253計數(shù)器1得△X+采樣8253計數(shù)器2得采樣8253計數(shù)器2得△X-X=XX=X+(△X+)-(△X-) B向電機(jī)轉(zhuǎn)過1度 B向電機(jī)轉(zhuǎn)過1度 N圖3-3升程的數(shù)據(jù)搜集處置程序流程圖3.5檢測數(shù)據(jù)的顯示軟件設(shè)計進(jìn)入顯示狀態(tài)后,假設(shè)檢測到=0,系統(tǒng)將在LED數(shù)碼管顯示一組檢測值。其中,第一排數(shù)碼管前半部份顯示系統(tǒng)所處的狀態(tài),后半部份顯示相位角;第二排數(shù)碼管顯示升程值,具體魄式為:±。軟件流程如圖3-4所示。進(jìn)入顯示狀態(tài)進(jìn)入顯示狀態(tài)=0? N =0? Y對按鍵次數(shù)計數(shù),準(zhǔn)備送8279作為相位角顯示對按鍵次數(shù)計數(shù),準(zhǔn)備送8279作為相位角顯示讀取存儲升程的起始地址,賦給DPTR讀取存儲升程的起始地址,賦給DPTR從數(shù)據(jù)區(qū)讀取存儲的3字節(jié)16進(jìn)制升程從數(shù)據(jù)區(qū)讀取存儲的3字節(jié)16進(jìn)制升程將16進(jìn)制的升程轉(zhuǎn)換為BCD碼升程將16進(jìn)制的升程轉(zhuǎn)換為BCD碼升程將相位角送8279顯示,升程送2051顯示將相位角送8279顯示,升程送2051顯示修改升程指針DPTR修改升程指針DPTR←DPTR+3將DPTR存儲供下次使用將DPTR存儲供下次使用圖3-4顯示程序流程圖詳細(xì)的顯示程序參考附錄中的DISP程序入口。3.6檢測數(shù)據(jù)的存儲軟件設(shè)計相位角只要排序即可,升程值沒有存儲前暫存于(77H)(78H)(79H)三個字節(jié),此刻需要將這三個字節(jié)中的數(shù)據(jù)存到指定的位置。檢測數(shù)據(jù)存儲的流程圖如圖3-5所示。具體源程序參見附錄STORE入口。從(7AH)(7BH)中讀取數(shù)據(jù)存儲的起始地址,賦給DPTR從(7AH)(7BH)中讀取數(shù)據(jù)存儲的起始地址,賦給DPTR將(77H)的值送給DPTR當(dāng)前指向的地址單元將(77H)的值送給DPTR當(dāng)前指向的地址單元DPTRDPTR←DPTR+1 將(78H)的值送給DPTR當(dāng)前指向的地址單元將(78H)的值送給DPTR當(dāng)前指向的地址單元DPTRDPTR←DPTR+1將(79H)的值送給DPTR當(dāng)前指向的地址單元將(79H)的值送給DPTR當(dāng)前指向的地址單元DPTRDPTR←DPTR+1360組存儲完畢?360組存儲完畢? NY將DPTR的當(dāng)前值放入(7AH)(7BH)中保存將DPTR的當(dāng)前值放入(7AH)(7BH)中保存 結(jié)束結(jié)束圖3-5數(shù)據(jù)存儲流程圖3.7檢測數(shù)據(jù)的打印軟件設(shè)計3.7.1程序流程圖設(shè)計檢測數(shù)據(jù)的打印程序流程如圖3-6所示。檢測儀進(jìn)入打印狀態(tài)檢測儀進(jìn)入打印狀態(tài)啟動打印機(jī)?啟動打印機(jī)? N Y 先打印一排先打印一排“*” 按預(yù)定格式打印按預(yù)定格式打印相位角和升程360組打印完? N360組打印完? Y再打印一排再打印一排“*”結(jié)束結(jié)束圖3-6打印程序流程圖3.7.2打印程序設(shè)計當(dāng)系統(tǒng)切換到“數(shù)據(jù)打印”狀態(tài)時,按一下操作面板上的“啟動”鍵,系統(tǒng)通過TPμP-16B自動打印輸出被測凸輪從最高點(diǎn)開始每距離1度所記錄的升程值。源程序清單參見附錄PRT入口。打印格式如下: ************************ 相位角(度) 升程(毫米) 001 002 003 … …************************3.8本章小結(jié)本章是本次畢業(yè)設(shè)計的重點(diǎn)內(nèi)容。要緊進(jìn)行了以下軟件的編制工作:I/O接口芯片的初始化編程,系統(tǒng)的監(jiān)控程序,步進(jìn)電機(jī)的閉環(huán)操縱程序,檢測數(shù)據(jù)的搜集、顯示、存儲、打印程序等。第四章AT89C52和8253計數(shù)時存在的問題 及軟件解決方法4.1AT89C52計數(shù)器讀數(shù)時存在的問題及解決方案在高速計數(shù)時,AT89C52的16位加法計數(shù)器存在由低8位向高8位進(jìn)位的問題,而CPU的指令每次只能讀取8位計數(shù)值,如此,兩次讀取的數(shù)值拼在一路不必然是正確的計數(shù)值。在本系統(tǒng)中,AT89C52的T0計數(shù)器用來對旋轉(zhuǎn)編碼器通過四倍頻輸出的-B脈沖進(jìn)行計數(shù)。T0在高速計數(shù)時,讀取的計數(shù)值有可能犯錯。緣故是不可能在同一時刻既讀取TH0又讀取TL0的內(nèi)容。例如,先讀TL0,后讀TH0,正在讀TH0的時候,T0的低8位向高8位產(chǎn)生進(jìn)位,如此,適才讀取的(TH0)(TL0)就不是正確的計數(shù)值。,反過來,若是先讀TH0,后讀TL0,也存在類似的問題。一種可能解決問題的方式是:先讀TH0,后讀TL0,再讀TH0,將這次讀得的TH0與上一次的TH0相較較,假設(shè)數(shù)值相同,那么能夠確信讀得的TH0是正確的;假設(shè)兩次讀得的TH0不相同,那么說明在讀數(shù)的進(jìn)程中正好顯現(xiàn)了上述情形,需要從頭進(jìn)行上述的讀數(shù)進(jìn)程,直到兩次讀到的TH0相同為止。讀數(shù)程序如下:SAP1:MOV 1AH,TH0;讀TH0送1AH MOV 1BH,TL0;讀TL0送1BH MOVA,THO;再讀TH0送A CJNEA,1AH,SAP1;將兩次的TH0進(jìn)行比較,假設(shè)不同 ……那么從頭讀,假設(shè)相同,那么可用4.28253計數(shù)器存在的問題及解決方案在本系統(tǒng)中,8253計數(shù)器用來搜集+B向脈沖和凸輪的升程脈沖。8253是INTEL公司生產(chǎn)的具有三個獨(dú)立計數(shù)通道的16位減法計數(shù)器。8253芯片沒有復(fù)位引腳,因此,8253計數(shù)器沒有自動復(fù)位的功能,在被寫入操縱字之前,各計數(shù)通道的工作方式,和各計數(shù)通道的計數(shù)值,均是隨機(jī)的,因此系統(tǒng)上電后需要用軟件來對8253芯片進(jìn)行初始化編程。8253的初始化有兩個任務(wù),一個是寫入每一個通道的工作方式操縱字,另一個是寫入每一個通道的計數(shù)初值。在本系統(tǒng)中,8253的通道0用來對外部事件進(jìn)行計數(shù),操縱口地址為7FFFH,初始化程序如下:MOV DPTR,#7FFFH ;8253控制口地址MOV A,#00110000B ;通道0,工作方式0,HEX計數(shù)MOVX @DPTR,A MOV DPTR,#7FFCH ;通道0地址CLR A ;寫入計數(shù)初值65536MOVX @DPTR,A ;先寫低8位MOVX @DPTR,A ;后寫高8位當(dāng)初始化程序執(zhí)行后,8253明確了通道0的工作方式,但寫入的計數(shù)初值僅僅停留在計數(shù)初值寄放器,尚未裝入實際的計數(shù)器中,在計數(shù)初值寫入8253后,還要通過一個時鐘脈沖的上升沿和下降沿(稱作一個完整事件)才能將計數(shù)初值裝入實際的計數(shù)器,然后在門控信號GATE0的操縱下(對外部事件進(jìn)行計數(shù)時,通常將GATE引腳接+5V,本系統(tǒng)中GATE引腳接+5V),對從CLK0引腳輸入的脈沖進(jìn)行遞減計數(shù)。如此,就存在兩個問題:一個是有CLK信號到來(即有完整事件輸入)時,16位減法計數(shù)器實際計數(shù)值如何讀???另一個是在沒有CLK信號輸入(即零事件)時,發(fā)指令讀取8253的計數(shù)值會有什么結(jié)果? (1)完整事件輸入時,如何讀取計數(shù)值8253計數(shù)器初始化時假設(shè)只寫工作方式操縱字而不寫初值,那么有完整事件輸入時,8253不計數(shù);當(dāng)GATE引腳接高而CLK引腳懸空時,讀取8253的計數(shù)值那么為隨機(jī)數(shù);在向8253某通道寫入工作方式操縱字和計數(shù)初值以后,假設(shè)一直沒有CLK信號的到來(即零事件),那么讀取計數(shù)值時取得的內(nèi)容并非是初始化時寫入的初值,而是一個不定值,那個不定值又分為兩種情形,一種情形為,系統(tǒng)剛上電,現(xiàn)在不管寫入的初值是多少,那么零事件時,讀取的計數(shù)值總為FFFFH;另一種情形為,在8253初始化以前,通道中存有計數(shù)值,那么零事件時,讀取8253的計數(shù)值仍為初始化之前的留存值,它與初始化時寫入的計數(shù)初值毫無關(guān)系。以上述的初始化程序為例,設(shè)8253在初始化以后有完整事件輸入,那么第一個CLK0信號將0000H初值裝入通道0的計數(shù)器中,第二個CLK0使得0000H減1變成FFFFH,第三個CLK0使得FFFFH減1變成FFFEH,現(xiàn)在假設(shè)向8253的0通道發(fā)出飛讀命令,那么程序如下:MOV DPTR,#7FFFH ;8253控制口地址MOV A,#00001111B ;向通道0發(fā)飛讀命令MOVX @DPTR,AMOV DPTR,#7FFCH ;通道0地址MOVX A,@DPTR ;先讀低8位MOV 28H,AMOVX A,@DPTR ;再讀高8位MOV 29H,A程序執(zhí)行后(29H)(28H)=FFFEH,此值即為通道0的計數(shù)值,該值與外部事件個數(shù)3之間有什么關(guān)系呢?不難看出,將讀得的16位計數(shù)值FFFEH取反加2即得3:MOV A,28HCPL AADD A,#02HMOV 28H,AMOV A,29HCPL AADDC A,#00HMOV 29H,A因此,能夠得出結(jié)論,選用8253某一通道對外部事件進(jìn)行計數(shù)時,假設(shè)初值寫的是0000H,那么有完整事件輸入時,讀取16位減法計數(shù)值后應(yīng)該取反加2;假設(shè)初值寫入的是FFFFH,那么讀取的16位計數(shù)值應(yīng)該取反加1;假設(shè)初值寫入的是FFFEH,那么讀取的16位計數(shù)值直接取反即可。(2)零事件輸入時,如何讀取計數(shù)值此刻咱們再來看第二個問題,在第一個CLK來臨之前,讀計數(shù)器取得的值是沒成心義的,但通過實驗發(fā)覺,該值在第一個CLK信號來臨之前是維持不變的,這一結(jié)果超級重要。下面舉例來講明,在零事件和完整事件輸入時,如何讀取準(zhǔn)確的計數(shù)值。假定在本系統(tǒng)中擴(kuò)展一片8253,采納通道0對外部事件進(jìn)行計數(shù),所計脈沖數(shù)的總和記作Σx=(76H)(75H)(74H),用3字節(jié)寄存,上次計數(shù)值存于(27H)(26H)中,本次計數(shù)值存于(29H)(28H)中,兩次計數(shù)值之差存于(2BH)(2AH)中,8253初始化標(biāo)記=1,當(dāng)有CLK0來臨時,用軟件將清零,那么,采納8253對外部事件的計數(shù)顯示流程如以下圖4-1。ΣΣx←0,即(76)(75)(74)←0000008253通道0初始化(寫入控制字,寫入初值0000)置8253初始化標(biāo)記=1(27)(26)(27)(26)←飛讀8253通道0的實際計數(shù)值(29)(28)←(29)(28)←飛讀8253通道0的實際計數(shù)值(29)(28)=(29)(28)=(27)(26)?N=1?=1? N Y YΔx=Δx=(2B)(2A)←(29)(28)-(27)(26)(27)(26)←(29)(28)Δx=(2B)(2A)←(29)(28)(27)(26)←(29)(28)清初始化標(biāo)記←0ΣΣx←Σx+Δx(76)(75)(74)←(76)(75)(74)+(2B)(2A)送顯示送顯示圖4-18253飛讀程序流程圖4.3本章小結(jié)本章詳細(xì)地分析了AT89C52計數(shù)器和8253計數(shù)器在利用中存在的問題,并提出了軟件解決的方案。實驗說明,方案正確。第五章結(jié)論本文設(shè)計了一種平面凸輪外輪廓的綜合檢測儀,該檢測儀能夠用來對內(nèi)燃機(jī)凸輪軸凸輪的升程和相位角在制造進(jìn)程中進(jìn)行查驗,也能夠用來檢測內(nèi)燃機(jī)鋁活塞裙部的中凸變橢圓。升程采納直線光學(xué)尺來檢測,相位角采納圓光柵來檢測。檢測系統(tǒng)具有參數(shù)設(shè)定、手動調(diào)整、自動檢測、數(shù)據(jù)顯示、數(shù)據(jù)打印和數(shù)據(jù)通信等功能。由于兩個月的設(shè)計時刻過于緊張,因此,本檢測儀與PC機(jī)的通信部份沒有做,下一步能夠?qū)z測系統(tǒng)存儲的數(shù)據(jù)以串行通信的方式送到PC機(jī),在PC上生成實際測量的凸輪模型,從而與存儲在PC中的標(biāo)準(zhǔn)模型進(jìn)行比較,得出產(chǎn)品的合格情形,實現(xiàn)可視化測量,提高檢測效率。本設(shè)計的選題來自于生產(chǎn)實踐,該檢測儀性能價錢比高、操作方便、檢測效率高,適合在中、小型企業(yè)利用。因此,本檢測儀具有必然的推行和利用價值。謝辭在本次的畢業(yè)設(shè)計工作中,王玉琳教師對我熱心負(fù)責(zé)的指導(dǎo)為我順利地完成設(shè)計任務(wù)提供了強(qiáng)有力的保障。從開始的選題到整體方案的論證,教師都給予了詳細(xì)地指導(dǎo)。在軟件的綜合調(diào)試進(jìn)程中,教師為我提供了硬件平臺,使得調(diào)試得以順利進(jìn)行。在論文的撰寫進(jìn)程中,教師提出了很多寶貴意見。王教師一絲不茍、嚴(yán)謹(jǐn)治學(xué)的態(tài)度和高貴的敬業(yè)精神給我留下了深刻的印象。教師第一教會了我如何做人,然后教會了我如何做學(xué)問。在此畢業(yè)設(shè)計終止之際,我想對王教師說:謝謝您!我的畢業(yè)設(shè)計的選題與生產(chǎn)實踐結(jié)合得超級緊密,軟件的調(diào)試都是在實物連接的情形下完成的,在這進(jìn)程中合肥科林?jǐn)?shù)控科技給我提供了極大的方便,在此表示深深的謝意。同時在畢業(yè)設(shè)計中,機(jī)械與汽車工程學(xué)院機(jī)電教研室給了我大力的支持,許多教師對我的設(shè)計工作提出了很多寶貴意見。另外,設(shè)計組的同窗們也給了我熱心的幫忙,在此一并表示謝意。杜卯青。附錄附錄一:檢測儀電路總原理圖附錄二:凸輪檢測記錄存儲顯示與打印程序 ORG 0000H JMP MAIN ORG 0020HMAIN:MOV SP,#80H MOV PSW,#00H CALL B279 CALL B279 CALL B279 CALL B255 CALL B255 CALL DEIB CALL DEIB CALL DEIB CALL CUNT CALL CUNT CALL CUNT MOV 7AH,#00H MOV 7BH,#01H MOV 74H,#00H MOV 75H,#00H MOV 76H,#00H MOV 77H,#00H MOV 78H,#00H MOV 79H,#00H DISP: JB ,NEXT MOV DPTR,#0100HLOP0: MOVX A,@DPTR MOV 77H,A INC DPTR MOVX A,@DPTR MOV 78H,A INC DPTR MOVX A,@DPTR MOV 79H,A INC DPTR PUSH DPH PUSH DPL CALL ZXSD POP DPL POP DPH CALL DEIC JMP LOP0 NEXT: CALL XXSD CALL MEASURE JMP _END ;"E-99"MEASURE:MOV 7EH,#01H MOV 7DH,#68H ;360AGAIN: CALL ONCE CLR C MOV A,7DH SUBB A,#01H MOV 7DH,A MOV A,7EH SUBB A,#00H MOV 7EH,A ORL A,7DH JNZ AGAIN RET ONCE: MOV 7CH,#60D CALL BD7C ; MOV A,74H ADD A,#01H MOV 74H,A MOV A,75H ADDC A,#00H MOV 75H,A CALL XXSD CALL DEICSHENG: CALL SAP3 ;(37)(38) MOV 39H,#80H MOV R0,#77H MOV R1,#37H MOV R2,#03H CALL ADD1 ;(77)(78)(79)<==(77)(78)(79)+(37)(38)(39) CALL SAP4 ;(3D)(3E) MOV 3FH,#00H MOV R0,#77H MOV R1,#3DH MOV R2,#03H CALL ADD1 ;(77)(78)(79)<==(77)(78)(79)+(3D)(3E)(3F)STORE: MOV DPL,7AH MOV DPH,7BH MOV A,77H MOVX @DPTR,A INC DPTR MOV A,78H MOVX @DPTR,A INC DPTR MOV A,79H MOVX @DPTR,A INC DPTR MOV 7AH,DPL MOV 7BH,DPH CALL ZXSD RET BD7C: CALL BDCP CALL SAP1 ;(1C)(1D)--JIN CALL SAP2 ;(2A)(2B)--TUI MOV A,7CH ADD A,2AH CLR C SUBB A,1CH MOV 7CH,A JNZ BD7C RETBDCP: CALL_PPC CALL CPULSE MOV0EH,#03H MOV 0DH,#0E8H CALL DEL1 ;10000us RET_PPC:MOV DPTR,#2FFDH;POSITIVEDIRECTIONOFC MOVX A,@DPTR SETB MOVX @DPTR,A RETCPULSE: MOV DPTR,#2FFDHMOVX A,@DPTRSETB ;=1 CALL NNOP MOVX @DPTR,A;CPULSE-->DRIVER CALL _NNOP MOVX A,@DPTR CLR ;=0 MOVX @DPTR,A RET_NNOP:NOP NOP NOP RETNNOP: NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOPNOP NOP NOP NOP RETPROC CUNT,JSU,SAP1,SAP2,SAP3,SAP4CUNT:MOV DPTR,#7FFFHB2530:MOV A,#30H MOVX @DPTR,A MOV DPTR,#7FFCH CLR A MOVX @DPTR,A MOVX @DPTR,A ;8253/0QIN0000B2531:MOV DPTR,#7FFFH MOV A,#70H MOVX @DPTR,A MOV DPTR,#7FFDH CLR A MOVX @DPTR,A MOVX @DPTR,A ;8253/1QIN0000B2532: MOV DPTR,#7FFFHMOV A,#0B0H MOVX @DPTR,A MOV DPTR,#7FFEH CLR A MOVX @DPTR,A MOVX @DPTR,A ;8253/2QIN0000B0310: MOV TMOD,#15H MOV TH0,#00H MOV TL0,#00H ;8031T0QIN0000SETB TR0 MOV DPTR,#1FE5H MOV A,#00000111B MOVX @DPTR,A ;82530/1/2CHUSHIHUAJSU: MOV 4BH,TL0 MOV 4CH,TH0 ;(4B)(4C)<=== 8031T0 ------Z MOV DPTR,#7FFFH MOV A,#0FH MOVX @DPTR,A MOV DPTR,#7FFCH MOVX A,@DPTR CPL A ADD A,#02H MOV 4DH,A MOVX A,@DPTR CPL A ADDC A,#00H MOV 4EH,A ;(4D)(4E)<===82530-----+Z MOV DPTR,#7FFFH MOV A,#8FH MOVX @DPTR,A MOV DPTR,#7FFEH MOVX A,@DPTR CPL A ADD A,#02H MOV 4FH,A MOVX A,@DPTR CPL A ADDC A,#00H MOV 50H,A ;(4F)(50)<===82532------X MOV DPTR,#7FFFH MOV A,#4FH MOVX @DPTR,A MOV DPTR,#7FFDH MOVX A,@DPTR CPL A ADD A,#02H MOV 51H,A MOVX A,@DPTR CPL A ADDC A,#00H MOV 52H,A ;(51)(52)<===82531-----+X RETSAP1:MOV 1AH,TL0 MOV 1BH,TH0 MOV 1CH,1AH MOV 1DH,1BH MOV R0,#1CH MOV R1,#4BH MOV R2,#02H CALLSUB2 ;(1C)(1D)<===(1A)(1B)-(4B)(4C) MOV 4BH,1AH ;(1C)(1D)<===DELTA-Z MOV 4CH,1BH RETSAP2: MOV DPTR,#7FFFH MOVA,#0FH MOVX @DPTR,A MOV DPTR,#7FFCH MOVX A,@DPTR CPL A ADD A,#02H MOV 28H,A MOVX A,@DPTR CPL A ADDC A,#00H MOV 29H,A ;(29)(28)<===BENCIJISHU MOV A,4DH CJNE A,28H,SAP21 MOV A,4EH CJNE A,29H,SAP21 ;(29)(28).(4E)(4D)===>SAP21SAP22: MOV 2AH,28H MOV 2BH,29H MOV R0,#2AH MOV R1,#4DH MOV R2,#02H CALLSUB2 ;(2B)(2A)<===(29)(28)-(4E)(4D) MOV 4DH,28H MOV 4EH,29H ;(2A)(2B)<===DELTA+Z

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論