畢業(yè)設計--pic單片機實現衛(wèi)生間智能沖水系統(tǒng)的設計_第1頁
已閱讀1頁,還剩49頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  目 錄</b></p><p>  摘 要 ……………………………………………………………2</p><p>  第一章 系統(tǒng)方案設計與論證……………………………………3</p><p>  1.1 設計要求……………………………………………………………3</p><p>  1

2、.1.1 基本要求…………………………………………………………3</p><p>  1.1.2 發(fā)揮部分…………………………………………………………3</p><p>  1.2 總體設計方案………………………………………………………3</p><p>  1.2.1 單片機的選擇………………………………………………</p><p>  1

3、.2.2 電機選擇問題……………………………………………………3</p><p>  1.2.3 懸線長度測量方法………………………………………………4</p><p>  1.2.4 重物選擇問題……………………………………………………4</p><p>  1.2.5 步進電機驅動選擇………………………………………………4</p><p>

4、;  1.3 理論分析與計算…………………………………………………</p><p>  1.3.1 算法分析………………………………………………………</p><p>  1.3.2 重物運動形式的方案分析與比較……………………………</p><p>  第二章 單元電路設計……………………………………………</p><p>  2.1 鍵

5、盤輸入及數碼管顯示部分………………………………………</p><p>  2.1.1 8279芯片介紹……………………………………………………</p><p>  2.1.2 LED 顯示器接口…………………………………………………</p><p>  2.2步進電機原理及應用………………………………………………</p><p>  2.2.

6、1 步進電機參數……………………………………………………</p><p>  2.2.2 步進電機的特點………………………………………………</p><p>  2.2.3 步進電機要素…………………………………………………</p><p>  2.2.4 步進電機力矩與功率換算……………………………………</p><p>  2.2.5 步

7、進電機應用中的注意點……………………………………</p><p>  2.3 細分驅動器……………………………………………………</p><p>  2.4 89C52芯片介紹……………………………………………………</p><p>  2.5 編碼器結構與參數………………………………………………</p><p>  第三章 軟件設計部分…

8、………………………………………</p><p>  3.1 硬件連接及軟件…………………………………………………</p><p>  3.1.1硬件連接電路圖…………………………………………………</p><p>  3.1.2程序流程圖………………………………………………………</p><p>  3.2 儀器與測試方法…………………………

9、………………………</p><p>  3.2.1 芯片、儀器與用具……………………………………………</p><p>  3.2.2 測試方法………………………………………………………</p><p>  第四章 測試數據及測試結果分析……………………………2</p><p>  附錄 程序………………………………………………………2&

10、lt;/p><p>  參考文獻…………………………………………………………3</p><p>  外文資料………………………………………………………3</p><p>  中文譯文………………………………………………………3</p><p>  致謝……………………………………………………………35</p><p>&l

11、t;b>  摘 要</b></p><p>  本設計是應用PIC系列單片機(PIC16F877)開發(fā)各種院校、賓館的公共衛(wèi)生間的智能沖水系統(tǒng),可根據進入衛(wèi)生間的人數進行沖水時間、沖水方式進行設定和控制已達到節(jié)約用水之目的。要求實現鍵盤控制輸入、數碼顯示、聲光報警等功能。為了使系統(tǒng)工作更加智能化,模式選擇方面,分別對大便池和小便池進行設定,其中每一部分要分兩個模式:(1)按人次進行沖水,用戶可

12、根據當地的實際情況通過鍵盤進行設定。(2)按時間間隔沖水,以十分鐘為基數,用戶設定乘數,這樣盡可能少用按鍵,便于節(jié)省系統(tǒng)耗材,提高系統(tǒng)的整體特性。夜間,因為人很少的緣故,關掉紅外探測,以利于省電。就以小時為基準單位,用戶設定倍數,完成沖水任務。</p><p>  此時,就可以用單片機配以繼電器來控制電磁閥,從而進行自動放水。</p><p>  為了使系統(tǒng)更加完善,盡力加上聲光報警系統(tǒng)。

13、當衛(wèi)生間發(fā)生水溢出,或者電磁閥失靈的時候,報警系統(tǒng)開始工作。用紅色二極管閃爍,發(fā)聲器鳴叫來提醒人們</p><p>  關鍵詞: PIC單片機; 節(jié)水; 智能</p><p><b>  Abstract</b></p><p>  This design is for making use of a computer control to

14、 tread into the electrical engineering, which can make hang object accurate fixed position, and can complete some compare to act complicatedly. We adopted the coder to control the length of the walking line, carrying out

15、 the higher index sign of the fixed position accuracy, at the same time because of need control to hang the object to complete the circumference sport in the in a short time, and the other by oneself sets of higher actio

16、n of d</p><p>  Key words:Suspension motion control system; Thin enter the electrical engineering actuator at every step; coder; tread into the electrical engineering</p><p>  第一章 系統(tǒng)方案設計與論證<

17、/p><p><b>  1.1 設計要求</b></p><p>  1.1.1 基本要求</p><p> ?。?)正確使用PIC單片機(pic16f877)來實現實驗。</p><p> ?。?)控制系統(tǒng)能夠通過鍵盤輸入控制并能夠通過LCD顯示當時的狀態(tài)等數據。</p><p>  (3)系統(tǒng)可

18、以自己記數,自己完成功能模式的轉換,并且可以對一些不正常的現象做出報警。</p><p>  1.1.2 發(fā)揮部分</p><p> ?。?)分成兩種模式:按人次進行沖水,按時間間隔沖水</p><p> ?。?)按人數沖水可以通過鍵盤輸入進行設定,按時間的沖水也可以通過鍵盤來實現周期的設定。</p><p>  1.2 總體設計方案<

19、/p><p>  1.2.1 單片機的選擇</p><p>  方案:當今單片機廠商琳瑯滿目,產品性能各異,PIC最大的特點是不搞單純的功能堆積,而是從實際出發(fā),重視產品的性能與價格比,靠發(fā)展多種型號來滿足不同層次的應用要求。就實際而言,不同的應用對單片機功能和資源的需求也是不同的。PIC系列從低到高有幾十個型號,可以滿足各種需要。其中,PIC12C508單片機僅有8個引腳,是世界上最小的單片

20、機,PIC有優(yōu)越開發(fā)環(huán)境。OTP單片機開發(fā)系統(tǒng)的實時性是一個重要的指標,象普通51單片機的開發(fā)系統(tǒng)大都采用高檔型號仿真低檔型號,其實時性不盡理想。PIC在推出一款新型號的同時推出相應的仿真芯片,所有的開發(fā)系統(tǒng)由專用的仿真芯片支持,實時性非常好。所以我選擇PIC單片機來完成實驗。</p><p>  1.2.2 LCD選擇問題</p><p><b>  方案:</b>

21、</p><p>  1.2.3 懸線長度測量方法</p><p>  方案一:使用89C52定時器/計數器記錄電機轉過的圈數,根據圈數和電機轉一圈繩子運動的長度算出重物的位置,由此確定重物的坐標。</p><p>  方案二:使用編碼器記錄滑輪轉過的圈數,然后根據滑輪轉一圈繩子運動的長度算出重物的位置,由此確定重物的坐標。</p><p>

22、  比較兩個方案,由于本設計需要精確定位,方案一當繩子運動起來后,電機帶動定滑輪轉動,隨著繩子的纏繞,其直徑變大,誤差隨之增大。而方案二由于采用了編碼器,對此不會產生任何影響。因此我采用了方案二。</p><p>  1.2.4 重物選擇問題</p><p>  由于本設計需要≧100g重物,并且需要讓其畫出它的運動軌跡,考慮到摩擦力和環(huán)境等的影響,選定了密度大、體積小、穩(wěn)定度高的圓形,由

23、此避免了不必要的由顫抖、重心不穩(wěn)等造成的誤差。</p><p>  1.2.5 步進電機驅動選擇</p><p>  步進電機的運轉需要移位元元脈沖的輸入才能正常運轉,采用單片機進行驅動需要用跟電機線圈數相同的口線來進行信號的輸入,但是人機交換的鍵盤和顯示等要占用大部分的口線,這樣我們選擇了適用于步進電機專用的驅動芯片PD-0223M,只要輸入控制脈沖即可,操作方便,并且使程序大大簡化。

24、</p><p>  驅動器PD-0223M功能說明:</p><p>  (1)CW時鐘輸入。電機由5V脈沖輸入驅動,OFF=0~5V,ON=4~5V,上升沿動作。</p><p> ?。?)CCW時鐘輸入。輸入特性與CW端相同。</p><p> ?。?)M.F輸入。+-5V輸入時,切斷電機勵磁電流。</p><p&g

25、t; ?。?)RUN電流值。用于設定電機運行時的電流值。</p><p> ?。?)O.H輸出:外殼溫度為75℃以上時此端ON,同時電機降至停止電流設定值,O.H指示燈開始閃動,當溫度下降到10℃以后,恢復動作。</p><p>  1.3 理論分析與計算</p><p>  1.3.1 算法分析</p><p>  懸掛物體及步進電機如圖所

26、示:</p><p>  左滑輪 右滑輪</p><p>  左電機 右電機</p><p>  設橫軸為X軸,縱軸為Y軸,每個坐標點設為(x,y),懸掛物體中心到左滑輪中

27、心的距離為a,到右滑輪的距離為b。所以,知道懸掛物體中心的坐標,很容易求得a和b的值,通過公式:</p><p>  a²=(x+15)²+(115-y)²,</p><p>  b² =(95-x)²+(115-y)²,</p><p>  進而就能求得a和b的增量,通過a和b的增量大小的變化和方向,再加

28、上距離編碼器,就能控制步進電機轉動方向和轉動時間。使用的距離編碼器每轉一周產生500個脈沖信號,用左右兩個距離編碼器發(fā)出的脈沖分別作89C52單片機計數器1和計數器2的脈沖信號,根據a和b的增量設定兩個計數器的計數初值,就可以實現懸掛物體在坐標格上的定位,再通過補償校正就能實現準確定位。在其能夠準確定位的基礎上,再去實現懸掛物體做較為復雜的運動。</p><p>  1.3.2 重物運動形式的方案分析與比較<

29、;/p><p> ?。?)坐標位置的確定</p><p>  方案一:利用上述公式計算實現。這也是我所選擇的方案,可以將電機轉動的距離通過上述公式算出,然后通過鍵盤設定坐標,啟動程序后,電機就會帶動重物運動,并能較為準確的到達指定位置。但也會因硬件的原因,產生較大的誤差。</p><p>  方案二:先算出滑輪的周長,用定時計數器記錄發(fā)送脈沖次數,同時計算出轉一周所需脈

30、沖數,據此計算出電機需要轉動地距離距離。然后通過鍵盤設定坐標,啟動程序后,電機就會帶動重物運動,并能較為準確的到達指定位置。但是方案二需要計算的數太多,因此造成的誤差也會隨之加大,所以我選擇方案一。</p><p>  (2)圓周運動的實現</p><p>  方案一:采用逐次逼近法。將圓周分成許多段,每次運行一格,逐次逼近。</p><p>  方案二:采用畫多邊

31、形法。多邊形的邊數越多,畫出的圓就越接近圓。此法用軟件實現起來,比較煩瑣,因此沒有采取此方案。</p><p>  方案三:運用公式x=r*cosθ+x0,y=r*sinθ+y0。θ為圓心角,θ的范圍是[0,2∏],并根據路徑改變細分步的角度,r為圓的半徑,(x0,y0)為圓心。設定圓心后,通過單片機運算處理控制,步進電機可以精確地運行,運動軌跡基本接近圓形。由此以來,我采用方案三,并成功地實現了此項功能,可以畫

32、出一個較為完美的圓。</p><p>  (3)直線運動的實現</p><p>  直線比圓容易實現,根據公式:y=kx+b ,k為比例系數,b為x=0時Y軸向量,k值可由任意兩點的坐標值確定。兩電機的轉速快慢和方向由兩個脈沖分別控制 ,互不影響,從而提高了效率,縮短了時間。</p><p>  第二章 單元電路設計</p><p>  2

33、.1 鍵盤輸入及數碼管顯示部分</p><p>  2.1.1 8279芯片介紹</p><p>  8279是一種可編程的鍵盤/顯示接口芯片,8279能自動完成鍵盤的掃描輸入和LED掃描顯示輸出。鍵盤部分提供的掃描方式,可以與具有64個觸點鍵盤或傳感器相連,能自動清除按鍵抖動,并實現多鍵同時按下的保護。下圖為8279管腳圖。</p><p><b>  

34、8279管腳圖 </b></p><p>  8279具有40個引腳,采用雙列直插式封裝,引腳分布圖如上圖所示,其功能定義如下。</p><p> ?。?)DBo~7是雙向外部數據總線。用于傳送8279與CPU之間的命令、數據和狀態(tài)??芍苯优cMCS—51 系列芯片連接。</p><p> ?。?)CS為選片信號。當CS為低電平時,CPU才選中8279芯

35、片,并對其進行操作。</p><p> ?。?)A0區(qū)分信息的特性位。當A0為1時,CPU寫入8279的信息為命令,CPU從8279讀出的信息為8279的狀態(tài)。當A0為0時,I/O信息都為數據。</p><p> ?。?)RD、WR是讀、寫選通信號,低電平有效。</p><p> ?。?)IRQ為中斷請求輸出線。高電平有效。在鍵盤工作方式下,當FIFO/傳感器RAM

36、中有數據時,此中斷線變高電平。在FIFO/傳感器RAM每次讀出時,中斷線就下降為低電平,若在RAM 中還有信息,則此線又重新變?yōu)楦唠娖?。在傳感器工作方式中,每當傳感器信號變化時,中斷線就變?yōu)楦唠娖健?lt;/p><p> ?。?)RL0~RL7為反饋輸入線,作為鍵輸入線,由內部拉高電阻拉成高電平,也可由鍵盤上按鍵拉成低電平。</p><p>  (7)SL0~3為掃描輸出線,用于對鍵盤顯示器掃

37、描。</p><p>  (8)OUTB0~3,OUTA0~3為顯示段數據輸出線,可分別作為兩個半字節(jié)輸出,也可作為8位段數據輸出口,此時OUTB0為最低位,OUTA3為最高位。</p><p>  (9)BD為消隱輸出線,低電平有效,當顯示器切換時或使用顯示消隱命令時,將顯示消隱。</p><p>  (10)RESET為復位輸入線,高電平有效。當RESET 輸入

38、端出現高電平時,8279被復位,復位后8279被置于下列方式:</p><p>  A.16個8位字符顯示為左端輸入。</p><p>  B.編碼的掃描鍵為兩鍵連鎖、與此同時,程序時鐘前置分頻器被置為31。</p><p>  (11)SHIFT,CNTL/STB為控制鍵輸入線,由內部拉高電阻拉成高電平,也可由外部控制按鍵拉成低電子,SHIFT為換檔,CNTL為控

39、制,STB為選通。</p><p>  (12)CLK為外時鐘輸入端,CLK信號由外部振蕩器提供。需說明的一點是:CLK是系統(tǒng)來的外時鐘,8279靠設置定時器將外部時鐘變?yōu)閮葧r鐘。其內部基頻=外時鐘/定時器值。內部時鐘的高低控制著掃描時間和鍵盤去抖動時間的長短,若8279內部時鐘為100kHz,則掃描時間為5.1ms,去抖動時間為10.3ms。功能說明:由于數據輸入和顯示乃是許多微處理機外設的一個不可分離部分。系

40、統(tǒng)設計者需要—種能夠控制這些功能,而又不致于使CPU負載過重的接口。8279為8位微處理機提供這種功能。8279有兩個部分,鍵盤部分和顯示器部分。鍵盤部分能夠與通常的打字機型鍵盤或隨機乒乓開關,或鈕子開關相聯接。顯示部分驅動字母數字顯示或一排指示燈。從而減輕了CPU在掃描鍵盤和刷新顯示時的負擔。8279按設計直接連到微處理機總線,CPU能夠為8279的所有操作方式編制程序,這些方式包括:</p><p><

41、b>  輸入方式:</b></p><p>  a.掃描鍵盤——帶有編碼掃描線(8×8鍵鍵盤)或譯碼掃描線(4×8鍵鍵盤)。每按—下按鍵,就產生一個表示按鍵位置的6 位編碼。按鍵的位置信息以及字型變換和控制狀態(tài),都被存儲在FIFO中。</p><p>  所有按鍵都以兩鍵連鎖或N 鍵巡回的方式自動回跳。</p><p>  b.

42、掃描傳感器陣列——帶有編碼掃描線(8×8陣列開關)或譯碼掃描線(4×8陣列開關)。</p><p>  c.按鍵的狀態(tài)(打開或閉合)被存儲在可由CPU尋址的RAM 中。</p><p>  d.選通輸入——在控制線選通時,回送線上數據被傳送到FIFO中。</p><p><b>  輸出方式:</b></p>

43、<p>  a.8字符或16字符的多路切換式顯示器。該顯示器可被組合成雙排4位或單排8位形式</p><p>  (B0=D0,A3=D7)。</p><p>  b.右端輸入或左端輸入的顯示格式。</p><p>  下表為8279控制命令字:</p><p>  2.1.2 LED顯示器接口</p><p&g

44、t;  LED顯示器是最常用的輸出設備。由于結構簡單、價格廉價和接口容易,而得到廣乏應用。尤其是在單片機系統(tǒng)中大量應用。</p><p>  (1)LED結構與原理</p><p>  發(fā)光二極管顯示器是單片機應用產品中常用的廉價輸出設備。它是由若干個發(fā)光二極管組成顯示的字段。當二極管導通時相應的一個點或一個筆劃發(fā)光,就能顯示出各種字符,常用的七段LED顯示器的結構如圖(a)所示。

45、 </p><p>  LED數碼顯示器有兩種結構:將所有發(fā)光二極管的陽極連在一起,稱為共陽接法,公共端comm接高電平,當某個字段的陰極接低電平時,對應的字段就點亮;而將所有發(fā)光二極管的陰極連在一起,稱為共陰接法,公共端comm接低電平,當某個字段的陽極接高電平時,對應的字段就點亮。每段所需電流一般為5~15mA,實際電流視具體的LED數碼顯示器而定。其圖如(b)、(C)所示。

46、</p><p>  LED有靜態(tài)和動態(tài)兩種顯示方法。所謂靜態(tài)顯示,就是顯示某一字符時,相應的發(fā)光二極管恒定得導通或截止,這種方法,每一顯示位都需要一個8位的輸出口控制,占用的硬件較多,一般僅用于顯示位數較少的場合。而動態(tài)就是一位一位地輪流點亮各位顯示器,對每一位顯示器而言,每隔一段時間點亮一次,利用人的視覺留感達到顯示的目的。顯示器的亮度跟導通的電流有關,也和點亮的時間與間隔的比例有關。動態(tài)顯示器因其硬件成本較

47、低,而得到廣泛的應用。</p><p>  為了顯示字符和數字,要為LED顯示器提供顯示段碼(或稱字形代碼),組成一個“8”字形的7段,再加上一個小數點位,共計8段,因此提供LED顯示器的顯示段碼為1個字節(jié)。各段碼的對應關系如表2.1所示:</p><p>  表2.1 各段碼的對應關系</p><p>  用LED顯示器顯示十六進制數和空白及P 的顯示段碼,如表2

48、.2所示。</p><p>  從LED顯示器的顯示原理可知,為了顯示字母數字,必須最終轉換成相應段選碼。這種轉換可以通過硬件譯碼器或軟件進行譯碼。</p><p>  表2.2十六進制數及空白與P 的顯示段碼</p><p>  (2)最小系統(tǒng)板LED顯示</p><p>  該最小系統(tǒng)板數碼管采用的是共陽極接法,采用動態(tài)顯示。</p

49、><p>  2.2 步進電機原理及應用</p><p>  步進電機是將電脈沖信號轉變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件。在非超載的情況下,電機的轉速、停止的位置只取決于脈沖信號的頻率和脈沖數,而不受負載變化的影響,即給電機加一個脈沖信號,電機則轉過一個步距角。這一線性關系的存在,加上步進電機只有周期性的誤差而無累積誤差等特點。使得在速度、位置等控制領域用步進電機來控制變的非常的簡單。雖然步進電

50、機已被廣泛地應用,但步進電機并不能象普通的直流電機,交流電機在常規(guī)下使用。它必須由雙環(huán)形脈沖信號、功率驅動電路等組成控制系統(tǒng)方可使用。步機原理由于反應式步進電機工作原理比較簡單。步進電機是一種將電脈沖轉化為角位移的執(zhí)行機構。當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(稱為“步距角”),它的旋轉是以固定的角度一步一步運行的。可以通過控制脈沖個數來控制角位移量,從而達到準確定位的目的;同時可以通過控制脈沖

51、頻率來控制電機轉動的速度和加速度,從而達到調速的目的。步進電機可以作為一種控制用的特種電機,利用其沒有積累誤差(精度為100%)的特點,廣泛應用于各種開環(huán)控制。 </p><p>  混合式步進電機是指混合了永磁式和反應式的優(yōu)點。它又分為兩相和五相:兩相步進角一般為1.8度而五相步進角一般為0.72度。這種步進電機的應用最為廣泛,也是本次細分驅動方案所選用的步進電機。</p><p>  

52、2.2.1 步進電機參數</p><p> ?。?)電機固有步距角:它表示控制系統(tǒng)每發(fā)一個步進脈沖信號,電機所轉動的角度。電機出廠時給出了一個步距角的值,如86BYG250A型電機給出的值為0.9°/1.8°(表示半步工作時為0.9°、整步工作時為1.8°),這個步距角可以稱之為‘電機固有步距角’,它不一定是電機實際工作時的真正步距角,真正的步距角和驅動器有關。</p

53、><p> ?。?)步進電機的相數:是指電機內部的線圈組數,目前常用的有二相、三相、四相、五相步進電機。電機相數不同,其步距角也不同,一般二相電機的步距角為0.9°/1.8°、三相的為0.75°/1.5°、五相的為0.36°/0.72° 。在沒有細分驅動器時,用戶主要靠選擇不同相數的步進電機來滿足自己步距角的要求。如果使用細分驅動器,則‘相數’將變得沒有意義

54、,用戶只需在驅動器上改變細分數,就可以改變步距角。</p><p> ?。?)保持轉矩(HOLDING TORQUE):是指步進電機通電但沒有轉動時,定子鎖住轉子的力矩。它是步進電機最重要的參數之一,通常步進電機在低速時的力矩接近保持轉矩。由于步進電機的輸出力矩隨速度的增大而不斷衰減,輸出功率也隨速度的增大而變化,所以保持轉矩就成為了衡量步進電機最重要的參數之一。比如,當人們說2N.m的步進電機,在沒有特殊說明的

55、情況下是指保持轉矩為2N.m的步進電機。</p><p> ?。?)DETENT TORQUE:是指步進電機沒有通電的情況下,定子鎖住轉子的力矩。DETENT TORQUE 在國內沒有統(tǒng)一的翻譯方式,容易使大家產生誤解;由于反應式步進電機的轉子不是永磁材料,所以它沒有DETENT TORQUE。</p><p> ?。?)步進電機還有一個技術參數:空載啟動頻率,即步進電機在空載情況下能夠正

56、常啟動的脈沖頻率,如果脈沖頻率高于該值,電機不能正常啟動,可能發(fā)生丟步或堵轉。在有負載的情況下,啟動頻率應更低。如果要使電機達到高速轉動,脈沖頻率應該有加速過程,即啟動頻率較低,然后按一定加速度升到所希望的高頻(電機轉速從低速升到高速)。步進電動機以其顯著的特點,在數字化制造時代發(fā)揮著重大的用途。伴隨著不同的數字化技術的發(fā)展以及步進電機本身技術的提高,步進電機將會在更多的領域得到應用。</p><p>  2.2

57、.2 步進電機的特點</p><p> ?。?)一般步進電機的精度為步進角的3-5%,且不累積。</p><p> ?。?)步進電機外表允許的最高溫度。步進電機溫度過高首先會使電機的磁性材料退磁,從而導致力矩下降乃至于失步,因此電機外表允許的最高溫度應取決于不同電機磁性材料的退磁點;一般來講,磁性材料的退磁點都在攝氏130度以上,有的甚至高達攝氏200度以上,所以步進電機外表溫度在攝氏80

58、-90度完全正常。</p><p>  (3)步進電機的力矩會隨轉速的升高而下降。當步進電機轉動時,電機各相繞組的電感將形成一個反向電動勢;頻率越高,反向電動勢越大。在它的作用下,電機隨頻率(或速度)的增大而相電流減小,從而導致力矩下降。</p><p>  (4)步進電機低速時可以正常運轉,但若高于一定速度就無法啟動,并伴有嘯叫聲。</p><p>  2.2.3

59、 步進電機要素</p><p>  步進電機有步距角(涉及到相數)、靜轉矩、及電流三大要素組成。一旦三大要素確定,步進電機的型號便確定下來了。</p><p> ?。?)步距角的選擇 電機的步距角取決于負載精度的要求,將負載的最小分辨率(當量)換算到電機軸上,每個當量電機應走多少角度(包括減速)。電機的步距角應等于或小于此角度。目前市場上步進電機的步距角一般有0.36度/0.72度(五相電

60、機)、0.9度/1.8度(二、四相電機)、1.5度/3度 (三相電機)等。</p><p> ?。?)靜力矩的選擇 步進電機的動態(tài)力矩一下子很難確定,我們往往先確定電機的靜力矩。靜力矩選擇的依據是電機工作的負載,而負載可分為慣性負載和摩擦負載二種。單一的慣性負載和單一的摩擦負載是不存在的。直接起動時(一般由低速)時二種負載均要考慮,加速起動時主要考慮慣性負載,恒速運行進只要考慮摩擦負載。一般情況下,靜力矩應為摩擦

61、負載的2-3倍內好,靜力矩一旦選定,電機的機座及長度便能確定下來(幾何尺寸)。</p><p>  (3)、電流的選擇 靜力矩一樣的電機,由于電流參數不同,其運行特性差別很大,可依據矩頻特性曲線圖,判斷電機的電流(參考驅動電源、及驅動電壓)。</p><p>  2.2.4 步進電機力矩與功率換算 </p><p>  步進電機一般在較大范圍內調速使用、其功率是變化

62、的,一般只用力矩來衡量,力矩與功率換算如下:P= Ω·M Ω=2π·n/60 P=2πnM/60 其P為功率單位為瓦,Ω為每秒角速度,單位為弧度,n為每分鐘轉速,M為力矩單位為牛頓·米 P=2πfM/400(半步工作)其中f為每秒脈沖數(簡稱PPS)</p><p>  其它特性還有慣頻特性、起動頻率特性等。電機一旦選定,電機的靜力矩確定,而動態(tài)力矩卻不然,電機的動態(tài)力矩取決于電機運

63、行時的平均電流(而非靜態(tài)電流),平均電流越大,電機輸出力矩越大,即電機的頻率特性越硬。</p><p>  2.2.5步進電機應用中的注意點</p><p>  (1)步進電機應用于低速場合---每分鐘轉速不超過1000轉,(0.9度時6666PPS),最好在1000-3000PPS(0.9度)間使用,可通過減速裝置使其在此間工作,此時電機工作效率高,噪音低。 </p>&l

64、t;p> ?。?)步進電機最好不使用整步狀態(tài),整步狀態(tài)時振動大。 </p><p> ?。?)由于歷史原因,只有標稱為12V電壓的電機使用12V外,其他電機的電壓值不是驅動電壓伏值 ,可根據驅動器選擇驅動電壓(建議:57BYG采用直流24V-36V,86BYG采用直流50V,110BYG采用高于直流80V),當然12伏的電壓除12V恒壓驅動外也可以采用其他驅動電源, 不過要考慮溫升。 </p>

65、<p> ?。?)轉動慣量大的負載應選擇大機座號電機。 </p><p> ?。?)電機在較高速或大慣量負載時,一般不在工作速度起動,而采用逐漸升頻提速,一電機不失步,二可以減少噪音同時可以提高停止的定位精度。 </p><p>  (6)高精度時,應通過機械減速、提高電機速度,或采用高細分數的驅動器來解決,也可以采用5相電機,不過其整個系統(tǒng)的價格較貴,生產廠家少,其被淘汰的說

66、法是外行話。 </p><p> ?。?)電機不應在振動區(qū)內工作,如若必須可通過改變電壓、電流或加一些阻尼的解決。 </p><p> ?。?)電機在600PPS(0.9度)以下工作,應采用小電流、大電感、低電壓來驅動。 </p><p><b>  2.3 細分驅動器</b></p><p>  在步進電機步距角不能滿

67、足使用的條件下,可采用細分驅動器來驅動步進電機,細分驅動器的原理是通過改變相鄰(A,B)電流的大小,以改變合成磁場的夾角來控制步進電機運轉的。</p><p>  2.4 89C52芯片介紹</p><p>  本設計采用89C52芯片來進行微機控制。89C52單片機是美國Intel公司推出的高性能8位單片微型計算機,它的指令系統(tǒng)與芯片引腳完全兼容,下面介紹一下89C52的引腳功能:<

68、;/p><p>  Vcc:+5V電源電壓。</p><p>  Vss:電路接地端。</p><p>  P0.0~P0.7:通道0,它是8位漏極開路的雙向I/O通道,當擴展外部存貯器時,這也是低八位</p><p>  P1.0~P1.7:通道1是8位擬雙向I/O通道,在編程和校驗時,它發(fā)出低8位地址。 通道1吸收/發(fā)出一個TTL負載。<

69、;/p><p>  P2.0~P2.7:通道2是8位擬雙向I/O通道,當訪問外部存貯器時,用作高8位地址總線。通道2能吸收/發(fā)出一個TTL負載。</p><p>  P3.0~P3.7:通道3準雙向I/O通道。通道3能吸收/發(fā)出一個TTL負載,P3通道的每一根線還有另一種功能:</p><p>  P3.2:INT0,外部中斷0輸入口。</p><p

70、>  P3.3:INT1,外部中斷1輸入口。</p><p>  P3.4:T0,定時器/計數器0外部事件脈沖輸入端。</p><p>  P3.5:T1,定時器/計數器1外部事件脈沖輸入端</p><p>  P3.6:WR,外部數據存貯器寫脈沖。</p><p>  P3.7:RD,外部數據存貯器讀脈沖。</p>&l

71、t;p>  RST/VpD:引腳9,復位輸入信號,振蕩器工作時,該引腳上2個機器周期的高電平可以實現復</p><p>  ALE/PROG:引腳30,地址鎖存有效信號,其主要作用是提供一個適當的定時信號,在它的下降沿用于外部程序存儲器或外部數據存貯器的低8位地址鎖存,使總線P0輸出/輸入口分時用作</p><p>  地址總線(低8位)和數據總線,此信號每個機器出現2次,只是在訪問

72、外部數據存儲器期間才不輸出ALE。所以,在任何不使用外部數據存貯器的系統(tǒng)中,ALE以1/6振蕩頻率的固定速率 輸出,因而它能用作外部時鐘或定時,8751內的EPROM編程時,此端輸編程脈沖信號。</p><p>  PSEN:引腳29,程序選通有效信號,當從外部程序存貯器讀取指令時產生,低電平時,指令寄存器的內容讀到數據總線上。</p><p>  EA/VPP:引腳31,當保持TTL高電

73、平時,如果指令計數器小于4096,8051執(zhí)行內部ROM的指令, 8751執(zhí)行內部EPROM的指令,當使TTL為低電平時, 從外部程序存貯器取出所有指令,在8751內的EPROM編程時,此端為21V編程電源輸入端。</p><p>  XTAL1:引腳18,內部振蕩器外接晶振的一個輸入端,HMOS芯片使用外部振蕩源時,此端必須接地。</p><p>  XTAL2:引腳19,內部振蕩器外接

74、晶振的另一個輸入端,HMOS芯片使用外部振蕩器時,此端用于輸入外部振蕩信號。</p><p><b>  管腳圖如下所示: </b></p><p>  89C52管腳分步圖 </p><p>  2.5 編碼器結構與參數</p><p><b> ?。?)結構</b></p><

75、;p><b> ?。?)相關參數</b></p><p>  第三章 軟件設計部分</p><p>  3.1 硬件連接及軟件</p><p>  3.1.1 硬件連接電路圖</p><p>  3.1.2 程序流程圖</p><p><b>  N</b></

76、p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  Y</b></p><p>  3.2 儀器與測試方法</p><p>  3.2.1 芯片、儀器與用具</p><p>  日本

77、公司生產RM2690S步進電機兩個(配有專門的驅動控制器), 上海藿德光電科技有限公司MODEL編碼器兩個,米尺、編碼器、天平、89C52、8279、74LS244、74LS138、74HC373、共陽極極數碼管、細步驅動器、直尺、示波器等。</p><p>  3.2.2 測試方法</p><p>  根據試驗測試一定的距離測量不同的的脈沖,取多組數據,經過取舍后,然后計算平均值來求出單

78、位距離需要的脈沖數,進而根據編碼器的脈沖數測出重物移動的距離,將重物的運動軌跡記錄下來,進行誤差分析,進而進行相應補償。</p><p>  第四章 測試數據及測試結果分析(cm)</p><p>  分析上述結果,在工作區(qū)域內大部分還是比較準的,但是到了邊框部分就出現了較大的失誤,有時甚至出現電機不停轉的情況,在這過程中,我們發(fā)現并分析了不夠準確的原因:是電機的的速度不夠協(xié)調,重物的質

79、量太小,角度太小時繩上的分力小,加上傳感器上有一定的摩擦力使得繩子松動,不能帶動傳感器計數,使得單片機不能完成動作,尤其是到了邊框和右下角這種情況最嚴重,由于這部分的機械構造,在實驗過程中有電機不停轉再所難免的。</p><p>  對于畫圓的情況,重物的運動軌跡并不是很固定,這要取決于現場的情況跟機械部分是否運轉正常,主要原因是繩跟傳感器的打滑是一個未知量,也是一個不固定量,造成了運動軌跡的不確定性。</

80、p><p><b>  參考文獻</b></p><p>  A. 黃智偉. 全國大學生電子設計競賽訓練教程[M]. 電子工業(yè)出版社, 2005.01</p><p>  B. 余永權,李小青,陳林康. 單片機應用系統(tǒng)的功率接口技術[M]. 北航出版社,1992.9</p><p>  C. 范立南. 單片微型計算機控制系統(tǒng)

81、設計[M]. 人民郵電出版社, 2004.3</p><p>  D. 付家才. 單片機控制工程實踐技術[M]. 化學工業(yè)出版社,2003.8</p><p><b>  附 錄</b></p><p><b>  程序</b></p><p>  #include <reg52.h>

82、</p><p>  #include <absacc.h></p><p>  #include <math.h></p><p>  #define COM XBYTE [0x3fff]</p><p>  #define DAT XBYTE [0x3ffe]</p><p>  #defi

83、ne uchar unsigned char</p><p>  uchar code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};</p><p>  uchar code table2[]={0x03,0x02,0x0a,0x12,0x01,0x09

84、,0x11,0x00,0x08,0x10,0x1b,0x1a,0x19,0x18,0x13,0x0b};</p><p>  uchar code table3[]={0x00,0x00,0x79,0x31,0x31,0x3f,0x31,0x00};</p><p>  sbit flag=ACC^7;</p><p>  sbit p1_0=P1^0;</p

85、><p>  sbit p1_1=P1^1;</p><p>  sbit p1_2=P1^2;</p><p>  sbit p1_3=P1^3;</p><p>  sbit p1_4=P1^4;</p><p>  sbit p1_5=P1^5;</p><p>  bit idata p10

86、flag;</p><p>  bit idata p13flag;</p><p>  bit idata m_flag0=0;</p><p>  bit idata m_flag1=0;</p><p>  bit idata flag1=0;</p><p>  bit idata flag2=0;</p

87、><p>  bit idata flag3=0;</p><p>  uchar idata temp[8];</p><p>  uchar idata wemp[8];</p><p>  uchar idata a=0;</p><p>  uchar idata b=0;</p><p>

88、  uchar idata c=0;</p><p>  uchar idata w;</p><p>  uchar idata p=0;</p><p>  uchar idata counter_x=0;</p><p>  uchar idata counter_y=0;</p><p>  uchar ida

89、ta counter_x1=0;</p><p>  uchar idata counter_y1=0;</p><p>  float idata counter_a;</p><p>  float idata counter_b;</p><p>  float idata counter_a_second;</p>&l

90、t;p>  float idata counter_b_second;</p><p>  float idata counter_a_first=115.9741;</p><p>  float idata counter_b_first=1.491643e+002;</p><p>  float idata angle;</p><

91、p>  void intial();</p><p>  void clear();</p><p>  void finish(); </p><p>  void error();</p><p>  void equ();</p><p>  void gk();</p><p> 

92、 void wwww();</p><p>  unsigned long math(uchar i); </p><p>  void move_m(float counter_a,float counter_b);</p><p>  uchar keyin();</p><p>  void kkk() interrupt 0 u

93、sing 1 //程序1</p><p>  { p=keyin(); // 讀鍵值子程序 </p><p>  if(p>=10&&p<=13)</p><p><b>  {</b></p><p>  wwww();

94、 // + - * / 功能鍵處理子程序</p><p><b>  }</b></p><p>  else if(p==14) </p><p><b>  { </b></p><p>  equ(); // =號鍵處理子程序&l

95、t;/p><p><b>  }</b></p><p>  else if(p==15) </p><p><b>  { </b></p><p>  clear(); // 清屏鍵處理子程序</p><p><b>  }</b><

96、;/p><p><b>  else</b></p><p><b>  { </b></p><p>  gk(); // 數字鍵處理子程序</p><p><b>  } </b></p><p><b>  }<

97、/b></p><p>  void count0() interrupt 1 using 2 //程序2</p><p><b>  {</b></p><p>  m_flag0=1;</p><p><b>  TR0=0;</b></p>

98、<p>  if(m_flag1==1)</p><p><b>  {</b></p><p><b>  TR2=0;</b></p><p>  m_flag0=0;</p><p>  m_flag1=0;</p><p><b>  } <

99、/b></p><p><b>  }</b></p><p>  void count4() interrupt 3 using 2 //程序3</p><p><b>  {</b></p><p><b>  ET0=0;</b><

100、;/p><p>  m_flag1=1;</p><p><b>  TR1=0;</b></p><p>  if(m_flag0==1)</p><p><b>  {</b></p><p><b>  TR2=0;</b></p>&l

101、t;p>  m_flag0=0;</p><p>  m_flag1=0;</p><p><b>  }</b></p><p><b>  ET0=1;</b></p><p><b>  }</b></p><p>  void delays

102、 () interrupt 5 using 3 //程序4</p><p><b>  {</b></p><p><b>  ET0=0;</b></p><p><b>  ET1=0;</b></p><p>  if(m_flag0==0

103、)</p><p><b>  {</b></p><p>  p10flag=!p10flag;</p><p>  p1_0=p10flag;</p><p><b>  }</b></p><p>  if(m_flag1==0) </p><p&g

104、t;<b>  {</b></p><p>  p13flag=!p13flag;</p><p>  p1_3=p13flag;</p><p><b>  } </b></p><p>  TH2=(65536-4000)/256;</p><p>  TL2=(6553

105、6-4000)%256;</p><p><b>  TF2=0;</b></p><p><b>  ET0=1;</b></p><p><b>  ET1=1;</b></p><p><b>  }</b></p><p>

106、  void main() //程序5</p><p><b>  {</b></p><p>  uchar idata i,j;</p><p>  float idata x,y;</p><p>  for(i=0;i<255;i++)</p>

107、<p><b>  {</b></p><p>  for(j=0;j<255;j++)</p><p><b>  {</b></p><p><b>  ;</b></p><p><b>  } </b></p><

108、;p><b>  } </b></p><p>  intial(); //初始化子程序</p><p><b>  DAT=0x71;</b></p><p><b>  DAT=0x71;</b></p><p><

109、b>  DAT=0x71;</b></p><p><b>  DAT=0x71;</b></p><p>  TH2=(65536-4000)/256;</p><p>  TL2=(65536-4000)%256;</p><p>  p10flag=p1_0;</p><p&g

110、t;  p13flag=p1_3;</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  if(flag1==1)</p><p><b>  {</b></p><p>  move_m(co

111、unter_a,counter_b);</p><p><b>  flag1=0;</b></p><p><b>  DAT=0x71;</b></p><p><b>  DAT=0x71;</b></p><p><b>  } </b><

112、;/p><p>  else if(flag2==1)</p><p><b>  {</b></p><p>  move_m(counter_a,counter_b);</p><p><b>  flag2=0;</b></p><p><b>  DAT=0x7

113、1;</b></p><p><b>  DAT=0x71;</b></p><p>  while(TR2==1)</p><p><b>  {; }</b></p><p><b>  DAT=0x71;</b></p><p>  f

114、or(angle=6.3029852/120;angle<=6.3029852;) //畫圓</p><p><b>  {</b></p><p>  x=25*cos(angle)+counter_x1;</p><p>  y=25*sin(angle)+counter_y1;</p><p>  

115、counter_a=sqrt((x+15)*(x+15)+(115-y)*(115-y)); </p><p>  counter_b=sqrt((95-x)*(95-x)+(115-y)*(115-y)); </p><p>  angle=angle+6.3029852/120;</p><p><b>  DAT=0x71;</b><

116、;/p><p>  move_m(counter_a,counter_b);</p><p>  for(i=0;i<200;i++)</p><p><b>  {</b></p><p>  for(j=0;j<200;j++)</p><p><b>  {</b&g

117、t;</p><p><b>  ;</b></p><p><b>  } </b></p><p><b>  } </b></p><p>  while(TR2==1) </p><p><b>  {</b>

118、</p><p><b>  ;</b></p><p><b>  } </b></p><p><b>  } </b></p><p><b>  } </b></p><p>  else if(flag3==1)<

119、/p><p><b>  {</b></p><p>  move_m(counter_a,counter_b);</p><p><b>  flag1=0;</b></p><p><b>  DAT=0x71;</b></p><p><b>

120、;  DAT=0x71;</b></p><p>  while(TR2==1) </p><p><b>  {</b></p><p><b>  ;</b></p><p><b>  } </b></p><p>  for(

121、angle=6.3029852/120;angle<=6.3029852;) //畫圓</p><p><b>  {</b></p><p>  x=25*cos(angle)+counter_x1-25;</p><p>  y=25*sin(angle)+counter_y1;</p><p>  

溫馨提示

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

評論

0/150

提交評論