版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p> 摘 要 ……………………………………………………………2</p><p> 第一章 系統(tǒng)方案設(shè)計(jì)與論證……………………………………3</p><p> 1.1 設(shè)計(jì)要求……………………………………………………………3</p><p> 1
2、.1.1 基本要求…………………………………………………………3</p><p> 1.1.2 發(fā)揮部分…………………………………………………………3</p><p> 1.2 總體設(shè)計(jì)方案………………………………………………………3</p><p> 1.2.1 單片機(jī)的選擇………………………………………………</p><p> 1
3、.2.2 電機(jī)選擇問題……………………………………………………3</p><p> 1.2.3 懸線長度測量方法………………………………………………4</p><p> 1.2.4 重物選擇問題……………………………………………………4</p><p> 1.2.5 步進(jìn)電機(jī)驅(qū)動選擇………………………………………………4</p><p>
4、; 1.3 理論分析與計(jì)算…………………………………………………</p><p> 1.3.1 算法分析………………………………………………………</p><p> 1.3.2 重物運(yùn)動形式的方案分析與比較……………………………</p><p> 第二章 單元電路設(shè)計(jì)……………………………………………</p><p> 2.1 鍵
5、盤輸入及數(shù)碼管顯示部分………………………………………</p><p> 2.1.1 8279芯片介紹……………………………………………………</p><p> 2.1.2 LED 顯示器接口…………………………………………………</p><p> 2.2步進(jìn)電機(jī)原理及應(yīng)用………………………………………………</p><p> 2.2.
6、1 步進(jìn)電機(jī)參數(shù)……………………………………………………</p><p> 2.2.2 步進(jìn)電機(jī)的特點(diǎn)………………………………………………</p><p> 2.2.3 步進(jìn)電機(jī)要素…………………………………………………</p><p> 2.2.4 步進(jìn)電機(jī)力矩與功率換算……………………………………</p><p> 2.2.5 步
7、進(jìn)電機(jī)應(yīng)用中的注意點(diǎn)……………………………………</p><p> 2.3 細(xì)分驅(qū)動器……………………………………………………</p><p> 2.4 89C52芯片介紹……………………………………………………</p><p> 2.5 編碼器結(jié)構(gòu)與參數(shù)………………………………………………</p><p> 第三章 軟件設(shè)計(jì)部分…
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> 第四章 測試數(shù)據(jù)及測試結(jié)果分析……………………………2</p><p> 附錄 程序………………………………………………………2&
10、lt;/p><p> 參考文獻(xiàn)…………………………………………………………3</p><p> 外文資料………………………………………………………3</p><p> 中文譯文………………………………………………………3</p><p> 致謝……………………………………………………………35</p><p>&l
11、t;b> 摘 要</b></p><p> 本設(shè)計(jì)是應(yīng)用PIC系列單片機(jī)(PIC16F877)開發(fā)各種院校、賓館的公共衛(wèi)生間的智能沖水系統(tǒng),可根據(jù)進(jìn)入衛(wèi)生間的人數(shù)進(jìn)行沖水時(shí)間、沖水方式進(jìn)行設(shè)定和控制已達(dá)到節(jié)約用水之目的。要求實(shí)現(xiàn)鍵盤控制輸入、數(shù)碼顯示、聲光報(bào)警等功能。為了使系統(tǒng)工作更加智能化,模式選擇方面,分別對大便池和小便池進(jìn)行設(shè)定,其中每一部分要分兩個(gè)模式:(1)按人次進(jìn)行沖水,用戶可
12、根據(jù)當(dāng)?shù)氐膶?shí)際情況通過鍵盤進(jìn)行設(shè)定。(2)按時(shí)間間隔沖水,以十分鐘為基數(shù),用戶設(shè)定乘數(shù),這樣盡可能少用按鍵,便于節(jié)省系統(tǒng)耗材,提高系統(tǒng)的整體特性。夜間,因?yàn)槿撕苌俚木壒?,關(guān)掉紅外探測,以利于省電。就以小時(shí)為基準(zhǔn)單位,用戶設(shè)定倍數(shù),完成沖水任務(wù)。</p><p> 此時(shí),就可以用單片機(jī)配以繼電器來控制電磁閥,從而進(jìn)行自動放水。</p><p> 為了使系統(tǒng)更加完善,盡力加上聲光報(bào)警系統(tǒng)。
13、當(dāng)衛(wèi)生間發(fā)生水溢出,或者電磁閥失靈的時(shí)候,報(bào)警系統(tǒng)開始工作。用紅色二極管閃爍,發(fā)聲器鳴叫來提醒人們</p><p> 關(guān)鍵詞: PIC單片機(jī); 節(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)方案設(shè)計(jì)與論證<
17、/p><p><b> 1.1 設(shè)計(jì)要求</b></p><p> 1.1.1 基本要求</p><p> ?。?)正確使用PIC單片機(jī)(pic16f877)來實(shí)現(xiàn)實(shí)驗(yàn)。</p><p> ?。?)控制系統(tǒng)能夠通過鍵盤輸入控制并能夠通過LCD顯示當(dāng)時(shí)的狀態(tài)等數(shù)據(jù)。</p><p> ?。?)系統(tǒng)可
18、以自己記數(shù),自己完成功能模式的轉(zhuǎn)換,并且可以對一些不正常的現(xiàn)象做出報(bào)警。</p><p> 1.1.2 發(fā)揮部分</p><p> ?。?)分成兩種模式:按人次進(jìn)行沖水,按時(shí)間間隔沖水</p><p> ?。?)按人數(shù)沖水可以通過鍵盤輸入進(jìn)行設(shè)定,按時(shí)間的沖水也可以通過鍵盤來實(shí)現(xiàn)周期的設(shè)定。</p><p> 1.2 總體設(shè)計(jì)方案<
19、/p><p> 1.2.1 單片機(jī)的選擇</p><p> 方案:當(dāng)今單片機(jī)廠商琳瑯滿目,產(chǎn)品性能各異,PIC最大的特點(diǎn)是不搞單純的功能堆積,而是從實(shí)際出發(fā),重視產(chǎn)品的性能與價(jià)格比,靠發(fā)展多種型號來滿足不同層次的應(yīng)用要求。就實(shí)際而言,不同的應(yīng)用對單片機(jī)功能和資源的需求也是不同的。PIC系列從低到高有幾十個(gè)型號,可以滿足各種需要。其中,PIC12C508單片機(jī)僅有8個(gè)引腳,是世界上最小的單片
20、機(jī),PIC有優(yōu)越開發(fā)環(huán)境。OTP單片機(jī)開發(fā)系統(tǒng)的實(shí)時(shí)性是一個(gè)重要的指標(biāo),象普通51單片機(jī)的開發(fā)系統(tǒng)大都采用高檔型號仿真低檔型號,其實(shí)時(shí)性不盡理想。PIC在推出一款新型號的同時(shí)推出相應(yīng)的仿真芯片,所有的開發(fā)系統(tǒng)由專用的仿真芯片支持,實(shí)時(shí)性非常好。所以我選擇PIC單片機(jī)來完成實(shí)驗(yàn)。</p><p> 1.2.2 LCD選擇問題</p><p><b> 方案:</b>
21、</p><p> 1.2.3 懸線長度測量方法</p><p> 方案一:使用89C52定時(shí)器/計(jì)數(shù)器記錄電機(jī)轉(zhuǎn)過的圈數(shù),根據(jù)圈數(shù)和電機(jī)轉(zhuǎn)一圈繩子運(yùn)動的長度算出重物的位置,由此確定重物的坐標(biāo)。</p><p> 方案二:使用編碼器記錄滑輪轉(zhuǎn)過的圈數(shù),然后根據(jù)滑輪轉(zhuǎn)一圈繩子運(yùn)動的長度算出重物的位置,由此確定重物的坐標(biāo)。</p><p>
22、 比較兩個(gè)方案,由于本設(shè)計(jì)需要精確定位,方案一當(dāng)繩子運(yùn)動起來后,電機(jī)帶動定滑輪轉(zhuǎn)動,隨著繩子的纏繞,其直徑變大,誤差隨之增大。而方案二由于采用了編碼器,對此不會產(chǎn)生任何影響。因此我采用了方案二。</p><p> 1.2.4 重物選擇問題</p><p> 由于本設(shè)計(jì)需要≧100g重物,并且需要讓其畫出它的運(yùn)動軌跡,考慮到摩擦力和環(huán)境等的影響,選定了密度大、體積小、穩(wěn)定度高的圓形,由
23、此避免了不必要的由顫抖、重心不穩(wěn)等造成的誤差。</p><p> 1.2.5 步進(jìn)電機(jī)驅(qū)動選擇</p><p> 步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)需要移位元元脈沖的輸入才能正常運(yùn)轉(zhuǎn),采用單片機(jī)進(jìn)行驅(qū)動需要用跟電機(jī)線圈數(shù)相同的口線來進(jìn)行信號的輸入,但是人機(jī)交換的鍵盤和顯示等要占用大部分的口線,這樣我們選擇了適用于步進(jìn)電機(jī)專用的驅(qū)動芯片PD-0223M,只要輸入控制脈沖即可,操作方便,并且使程序大大簡化。
24、</p><p> 驅(qū)動器PD-0223M功能說明:</p><p> ?。?)CW時(shí)鐘輸入。電機(jī)由5V脈沖輸入驅(qū)動,OFF=0~5V,ON=4~5V,上升沿動作。</p><p> ?。?)CCW時(shí)鐘輸入。輸入特性與CW端相同。</p><p> ?。?)M.F輸入。+-5V輸入時(shí),切斷電機(jī)勵(lì)磁電流。</p><p&g
25、t; ?。?)RUN電流值。用于設(shè)定電機(jī)運(yùn)行時(shí)的電流值。</p><p> ?。?)O.H輸出:外殼溫度為75℃以上時(shí)此端ON,同時(shí)電機(jī)降至停止電流設(shè)定值,O.H指示燈開始閃動,當(dāng)溫度下降到10℃以后,恢復(fù)動作。</p><p> 1.3 理論分析與計(jì)算</p><p> 1.3.1 算法分析</p><p> 懸掛物體及步進(jìn)電機(jī)如圖所
26、示:</p><p> 左滑輪 右滑輪</p><p> 左電機(jī) 右電機(jī)</p><p> 設(shè)橫軸為X軸,縱軸為Y軸,每個(gè)坐標(biāo)點(diǎn)設(shè)為(x,y),懸掛物體中心到左滑輪中
27、心的距離為a,到右滑輪的距離為b。所以,知道懸掛物體中心的坐標(biāo),很容易求得a和b的值,通過公式:</p><p> a²=(x+15)²+(115-y)²,</p><p> b² =(95-x)²+(115-y)²,</p><p> 進(jìn)而就能求得a和b的增量,通過a和b的增量大小的變化和方向,再加
28、上距離編碼器,就能控制步進(jìn)電機(jī)轉(zhuǎn)動方向和轉(zhuǎn)動時(shí)間。使用的距離編碼器每轉(zhuǎn)一周產(chǎn)生500個(gè)脈沖信號,用左右兩個(gè)距離編碼器發(fā)出的脈沖分別作89C52單片機(jī)計(jì)數(shù)器1和計(jì)數(shù)器2的脈沖信號,根據(jù)a和b的增量設(shè)定兩個(gè)計(jì)數(shù)器的計(jì)數(shù)初值,就可以實(shí)現(xiàn)懸掛物體在坐標(biāo)格上的定位,再通過補(bǔ)償校正就能實(shí)現(xiàn)準(zhǔn)確定位。在其能夠準(zhǔn)確定位的基礎(chǔ)上,再去實(shí)現(xiàn)懸掛物體做較為復(fù)雜的運(yùn)動。</p><p> 1.3.2 重物運(yùn)動形式的方案分析與比較<
29、;/p><p> ?。?)坐標(biāo)位置的確定</p><p> 方案一:利用上述公式計(jì)算實(shí)現(xiàn)。這也是我所選擇的方案,可以將電機(jī)轉(zhuǎn)動的距離通過上述公式算出,然后通過鍵盤設(shè)定坐標(biāo),啟動程序后,電機(jī)就會帶動重物運(yùn)動,并能較為準(zhǔn)確的到達(dá)指定位置。但也會因硬件的原因,產(chǎn)生較大的誤差。</p><p> 方案二:先算出滑輪的周長,用定時(shí)計(jì)數(shù)器記錄發(fā)送脈沖次數(shù),同時(shí)計(jì)算出轉(zhuǎn)一周所需脈
30、沖數(shù),據(jù)此計(jì)算出電機(jī)需要轉(zhuǎn)動地距離距離。然后通過鍵盤設(shè)定坐標(biāo),啟動程序后,電機(jī)就會帶動重物運(yùn)動,并能較為準(zhǔn)確的到達(dá)指定位置。但是方案二需要計(jì)算的數(shù)太多,因此造成的誤差也會隨之加大,所以我選擇方案一。</p><p> ?。?)圓周運(yùn)動的實(shí)現(xiàn)</p><p> 方案一:采用逐次逼近法。將圓周分成許多段,每次運(yùn)行一格,逐次逼近。</p><p> 方案二:采用畫多邊
31、形法。多邊形的邊數(shù)越多,畫出的圓就越接近圓。此法用軟件實(shí)現(xiàn)起來,比較煩瑣,因此沒有采取此方案。</p><p> 方案三:運(yùn)用公式x=r*cosθ+x0,y=r*sinθ+y0。θ為圓心角,θ的范圍是[0,2∏],并根據(jù)路徑改變細(xì)分步的角度,r為圓的半徑,(x0,y0)為圓心。設(shè)定圓心后,通過單片機(jī)運(yùn)算處理控制,步進(jìn)電機(jī)可以精確地運(yùn)行,運(yùn)動軌跡基本接近圓形。由此以來,我采用方案三,并成功地實(shí)現(xiàn)了此項(xiàng)功能,可以畫
32、出一個(gè)較為完美的圓。</p><p> ?。?)直線運(yùn)動的實(shí)現(xiàn)</p><p> 直線比圓容易實(shí)現(xiàn),根據(jù)公式:y=kx+b ,k為比例系數(shù),b為x=0時(shí)Y軸向量,k值可由任意兩點(diǎn)的坐標(biāo)值確定。兩電機(jī)的轉(zhuǎn)速快慢和方向由兩個(gè)脈沖分別控制 ,互不影響,從而提高了效率,縮短了時(shí)間。</p><p> 第二章 單元電路設(shè)計(jì)</p><p> 2
33、.1 鍵盤輸入及數(shù)碼管顯示部分</p><p> 2.1.1 8279芯片介紹</p><p> 8279是一種可編程的鍵盤/顯示接口芯片,8279能自動完成鍵盤的掃描輸入和LED掃描顯示輸出。鍵盤部分提供的掃描方式,可以與具有64個(gè)觸點(diǎn)鍵盤或傳感器相連,能自動清除按鍵抖動,并實(shí)現(xiàn)多鍵同時(shí)按下的保護(hù)。下圖為8279管腳圖。</p><p><b>
34、8279管腳圖 </b></p><p> 8279具有40個(gè)引腳,采用雙列直插式封裝,引腳分布圖如上圖所示,其功能定義如下。</p><p> ?。?)DBo~7是雙向外部數(shù)據(jù)總線。用于傳送8279與CPU之間的命令、數(shù)據(jù)和狀態(tài)??芍苯优cMCS—51 系列芯片連接。</p><p> ?。?)CS為選片信號。當(dāng)CS為低電平時(shí),CPU才選中8279芯
35、片,并對其進(jìn)行操作。</p><p> (3)A0區(qū)分信息的特性位。當(dāng)A0為1時(shí),CPU寫入8279的信息為命令,CPU從8279讀出的信息為8279的狀態(tài)。當(dāng)A0為0時(shí),I/O信息都為數(shù)據(jù)。</p><p> (4)RD、WR是讀、寫選通信號,低電平有效。</p><p> ?。?)IRQ為中斷請求輸出線。高電平有效。在鍵盤工作方式下,當(dāng)FIFO/傳感器RAM
36、中有數(shù)據(jù)時(shí),此中斷線變高電平。在FIFO/傳感器RAM每次讀出時(shí),中斷線就下降為低電平,若在RAM 中還有信息,則此線又重新變?yōu)楦唠娖?。在傳感器工作方式中,每?dāng)傳感器信號變化時(shí),中斷線就變?yōu)楦唠娖健?lt;/p><p> ?。?)RL0~RL7為反饋輸入線,作為鍵輸入線,由內(nèi)部拉高電阻拉成高電平,也可由鍵盤上按鍵拉成低電平。</p><p> ?。?)SL0~3為掃描輸出線,用于對鍵盤顯示器掃
37、描。</p><p> (8)OUTB0~3,OUTA0~3為顯示段數(shù)據(jù)輸出線,可分別作為兩個(gè)半字節(jié)輸出,也可作為8位段數(shù)據(jù)輸出口,此時(shí)OUTB0為最低位,OUTA3為最高位。</p><p> ?。?)BD為消隱輸出線,低電平有效,當(dāng)顯示器切換時(shí)或使用顯示消隱命令時(shí),將顯示消隱。</p><p> ?。?0)RESET為復(fù)位輸入線,高電平有效。當(dāng)RESET 輸入
38、端出現(xiàn)高電平時(shí),8279被復(fù)位,復(fù)位后8279被置于下列方式:</p><p> A.16個(gè)8位字符顯示為左端輸入。</p><p> B.編碼的掃描鍵為兩鍵連鎖、與此同時(shí),程序時(shí)鐘前置分頻器被置為31。</p><p> ?。?1)SHIFT,CNTL/STB為控制鍵輸入線,由內(nèi)部拉高電阻拉成高電平,也可由外部控制按鍵拉成低電子,SHIFT為換檔,CNTL為控
39、制,STB為選通。</p><p> ?。?2)CLK為外時(shí)鐘輸入端,CLK信號由外部振蕩器提供。需說明的一點(diǎn)是:CLK是系統(tǒng)來的外時(shí)鐘,8279靠設(shè)置定時(shí)器將外部時(shí)鐘變?yōu)閮?nèi)時(shí)鐘。其內(nèi)部基頻=外時(shí)鐘/定時(shí)器值。內(nèi)部時(shí)鐘的高低控制著掃描時(shí)間和鍵盤去抖動時(shí)間的長短,若8279內(nèi)部時(shí)鐘為100kHz,則掃描時(shí)間為5.1ms,去抖動時(shí)間為10.3ms。功能說明:由于數(shù)據(jù)輸入和顯示乃是許多微處理機(jī)外設(shè)的一個(gè)不可分離部分。系
40、統(tǒng)設(shè)計(jì)者需要—種能夠控制這些功能,而又不致于使CPU負(fù)載過重的接口。8279為8位微處理機(jī)提供這種功能。8279有兩個(gè)部分,鍵盤部分和顯示器部分。鍵盤部分能夠與通常的打字機(jī)型鍵盤或隨機(jī)乒乓開關(guān),或鈕子開關(guān)相聯(lián)接。顯示部分驅(qū)動字母數(shù)字顯示或一排指示燈。從而減輕了CPU在掃描鍵盤和刷新顯示時(shí)的負(fù)擔(dān)。8279按設(shè)計(jì)直接連到微處理機(jī)總線,CPU能夠?yàn)?279的所有操作方式編制程序,這些方式包括:</p><p><
41、b> 輸入方式:</b></p><p> a.掃描鍵盤——帶有編碼掃描線(8×8鍵鍵盤)或譯碼掃描線(4×8鍵鍵盤)。每按—下按鍵,就產(chǎn)生一個(gè)表示按鍵位置的6 位編碼。按鍵的位置信息以及字型變換和控制狀態(tài),都被存儲在FIFO中。</p><p> 所有按鍵都以兩鍵連鎖或N 鍵巡回的方式自動回跳。</p><p> b.
42、掃描傳感器陣列——帶有編碼掃描線(8×8陣列開關(guān))或譯碼掃描線(4×8陣列開關(guān))。</p><p> c.按鍵的狀態(tài)(打開或閉合)被存儲在可由CPU尋址的RAM 中。</p><p> d.選通輸入——在控制線選通時(shí),回送線上數(shù)據(jù)被傳送到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顯示器是最常用的輸出設(shè)備。由于結(jié)構(gòu)簡單、價(jià)格廉價(jià)和接口容易,而得到廣乏應(yīng)用。尤其是在單片機(jī)系統(tǒng)中大量應(yīng)用。</p><p> (1)LED結(jié)構(gòu)與原理</p><p> 發(fā)光二極管顯示器是單片機(jī)應(yīng)用產(chǎn)品中常用的廉價(jià)輸出設(shè)備。它是由若干個(gè)發(fā)光二極管組成顯示的字段。當(dāng)二極管導(dǎo)通時(shí)相應(yīng)的一個(gè)點(diǎn)或一個(gè)筆劃發(fā)光,就能顯示出各種字符,常用的七段LED顯示器的結(jié)構(gòu)如圖(a)所示。
45、 </p><p> LED數(shù)碼顯示器有兩種結(jié)構(gòu):將所有發(fā)光二極管的陽極連在一起,稱為共陽接法,公共端comm接高電平,當(dāng)某個(gè)字段的陰極接低電平時(shí),對應(yīng)的字段就點(diǎn)亮;而將所有發(fā)光二極管的陰極連在一起,稱為共陰接法,公共端comm接低電平,當(dāng)某個(gè)字段的陽極接高電平時(shí),對應(yīng)的字段就點(diǎn)亮。每段所需電流一般為5~15mA,實(shí)際電流視具體的LED數(shù)碼顯示器而定。其圖如(b)、(C)所示。
46、</p><p> LED有靜態(tài)和動態(tài)兩種顯示方法。所謂靜態(tài)顯示,就是顯示某一字符時(shí),相應(yīng)的發(fā)光二極管恒定得導(dǎo)通或截止,這種方法,每一顯示位都需要一個(gè)8位的輸出口控制,占用的硬件較多,一般僅用于顯示位數(shù)較少的場合。而動態(tài)就是一位一位地輪流點(diǎn)亮各位顯示器,對每一位顯示器而言,每隔一段時(shí)間點(diǎn)亮一次,利用人的視覺留感達(dá)到顯示的目的。顯示器的亮度跟導(dǎo)通的電流有關(guān),也和點(diǎn)亮的時(shí)間與間隔的比例有關(guān)。動態(tài)顯示器因其硬件成本較
47、低,而得到廣泛的應(yīng)用。</p><p> 為了顯示字符和數(shù)字,要為LED顯示器提供顯示段碼(或稱字形代碼),組成一個(gè)“8”字形的7段,再加上一個(gè)小數(shù)點(diǎn)位,共計(jì)8段,因此提供LED顯示器的顯示段碼為1個(gè)字節(jié)。各段碼的對應(yīng)關(guān)系如表2.1所示:</p><p> 表2.1 各段碼的對應(yīng)關(guān)系</p><p> 用LED顯示器顯示十六進(jìn)制數(shù)和空白及P 的顯示段碼,如表2
48、.2所示。</p><p> 從LED顯示器的顯示原理可知,為了顯示字母數(shù)字,必須最終轉(zhuǎn)換成相應(yīng)段選碼。這種轉(zhuǎn)換可以通過硬件譯碼器或軟件進(jìn)行譯碼。</p><p> 表2.2十六進(jìn)制數(shù)及空白與P 的顯示段碼</p><p> (2)最小系統(tǒng)板LED顯示</p><p> 該最小系統(tǒng)板數(shù)碼管采用的是共陽極接法,采用動態(tài)顯示。</p
49、><p> 2.2 步進(jìn)電機(jī)原理及應(yīng)用</p><p> 步進(jìn)電機(jī)是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負(fù)載變化的影響,即給電機(jī)加一個(gè)脈沖信號,電機(jī)則轉(zhuǎn)過一個(gè)步距角。這一線性關(guān)系的存在,加上步進(jìn)電機(jī)只有周期性的誤差而無累積誤差等特點(diǎn)。使得在速度、位置等控制領(lǐng)域用步進(jìn)電機(jī)來控制變的非常的簡單。雖然步進(jìn)電
50、機(jī)已被廣泛地應(yīng)用,但步進(jìn)電機(jī)并不能象普通的直流電機(jī),交流電機(jī)在常規(guī)下使用。它必須由雙環(huán)形脈沖信號、功率驅(qū)動電路等組成控制系統(tǒng)方可使用。步機(jī)原理由于反應(yīng)式步進(jìn)電機(jī)工作原理比較簡單。步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。當(dāng)步進(jìn)驅(qū)動器接收到一個(gè)脈沖信號,它就驅(qū)動步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動一個(gè)固定的角度(稱為“步距角”),它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的??梢酝ㄟ^控制脈沖個(gè)數(shù)來控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)可以通過控制脈沖
51、頻率來控制電機(jī)轉(zhuǎn)動的速度和加速度,從而達(dá)到調(diào)速的目的。步進(jìn)電機(jī)可以作為一種控制用的特種電機(jī),利用其沒有積累誤差(精度為100%)的特點(diǎn),廣泛應(yīng)用于各種開環(huán)控制。 </p><p> 混合式步進(jìn)電機(jī)是指混合了永磁式和反應(yīng)式的優(yōu)點(diǎn)。它又分為兩相和五相:兩相步進(jìn)角一般為1.8度而五相步進(jìn)角一般為0.72度。這種步進(jìn)電機(jī)的應(yīng)用最為廣泛,也是本次細(xì)分驅(qū)動方案所選用的步進(jìn)電機(jī)。</p><p>
52、2.2.1 步進(jìn)電機(jī)參數(shù)</p><p> ?。?)電機(jī)固有步距角:它表示控制系統(tǒng)每發(fā)一個(gè)步進(jìn)脈沖信號,電機(jī)所轉(zhuǎn)動的角度。電機(jī)出廠時(shí)給出了一個(gè)步距角的值,如86BYG250A型電機(jī)給出的值為0.9°/1.8°(表示半步工作時(shí)為0.9°、整步工作時(shí)為1.8°),這個(gè)步距角可以稱之為‘電機(jī)固有步距角’,它不一定是電機(jī)實(shí)際工作時(shí)的真正步距角,真正的步距角和驅(qū)動器有關(guān)。</p
53、><p> (2)步進(jìn)電機(jī)的相數(shù):是指電機(jī)內(nèi)部的線圈組數(shù),目前常用的有二相、三相、四相、五相步進(jìn)電機(jī)。電機(jī)相數(shù)不同,其步距角也不同,一般二相電機(jī)的步距角為0.9°/1.8°、三相的為0.75°/1.5°、五相的為0.36°/0.72° 。在沒有細(xì)分驅(qū)動器時(shí),用戶主要靠選擇不同相數(shù)的步進(jìn)電機(jī)來滿足自己步距角的要求。如果使用細(xì)分驅(qū)動器,則‘相數(shù)’將變得沒有意義
54、,用戶只需在驅(qū)動器上改變細(xì)分?jǐn)?shù),就可以改變步距角。</p><p> ?。?)保持轉(zhuǎn)矩(HOLDING TORQUE):是指步進(jìn)電機(jī)通電但沒有轉(zhuǎn)動時(shí),定子鎖住轉(zhuǎn)子的力矩。它是步進(jìn)電機(jī)最重要的參數(shù)之一,通常步進(jìn)電機(jī)在低速時(shí)的力矩接近保持轉(zhuǎn)矩。由于步進(jìn)電機(jī)的輸出力矩隨速度的增大而不斷衰減,輸出功率也隨速度的增大而變化,所以保持轉(zhuǎn)矩就成為了衡量步進(jìn)電機(jī)最重要的參數(shù)之一。比如,當(dāng)人們說2N.m的步進(jìn)電機(jī),在沒有特殊說明的
55、情況下是指保持轉(zhuǎn)矩為2N.m的步進(jìn)電機(jī)。</p><p> ?。?)DETENT TORQUE:是指步進(jìn)電機(jī)沒有通電的情況下,定子鎖住轉(zhuǎn)子的力矩。DETENT TORQUE 在國內(nèi)沒有統(tǒng)一的翻譯方式,容易使大家產(chǎn)生誤解;由于反應(yīng)式步進(jìn)電機(jī)的轉(zhuǎn)子不是永磁材料,所以它沒有DETENT TORQUE。</p><p> (5)步進(jìn)電機(jī)還有一個(gè)技術(shù)參數(shù):空載啟動頻率,即步進(jìn)電機(jī)在空載情況下能夠正
56、常啟動的脈沖頻率,如果脈沖頻率高于該值,電機(jī)不能正常啟動,可能發(fā)生丟步或堵轉(zhuǎn)。在有負(fù)載的情況下,啟動頻率應(yīng)更低。如果要使電機(jī)達(dá)到高速轉(zhuǎn)動,脈沖頻率應(yīng)該有加速過程,即啟動頻率較低,然后按一定加速度升到所希望的高頻(電機(jī)轉(zhuǎn)速從低速升到高速)。步進(jìn)電動機(jī)以其顯著的特點(diǎn),在數(shù)字化制造時(shí)代發(fā)揮著重大的用途。伴隨著不同的數(shù)字化技術(shù)的發(fā)展以及步進(jìn)電機(jī)本身技術(shù)的提高,步進(jìn)電機(jī)將會在更多的領(lǐng)域得到應(yīng)用。</p><p> 2.2
57、.2 步進(jìn)電機(jī)的特點(diǎn)</p><p> ?。?)一般步進(jìn)電機(jī)的精度為步進(jìn)角的3-5%,且不累積。</p><p> ?。?)步進(jìn)電機(jī)外表允許的最高溫度。步進(jìn)電機(jī)溫度過高首先會使電機(jī)的磁性材料退磁,從而導(dǎo)致力矩下降乃至于失步,因此電機(jī)外表允許的最高溫度應(yīng)取決于不同電機(jī)磁性材料的退磁點(diǎn);一般來講,磁性材料的退磁點(diǎn)都在攝氏130度以上,有的甚至高達(dá)攝氏200度以上,所以步進(jìn)電機(jī)外表溫度在攝氏80
58、-90度完全正常。</p><p> (3)步進(jìn)電機(jī)的力矩會隨轉(zhuǎn)速的升高而下降。當(dāng)步進(jìn)電機(jī)轉(zhuǎn)動時(shí),電機(jī)各相繞組的電感將形成一個(gè)反向電動勢;頻率越高,反向電動勢越大。在它的作用下,電機(jī)隨頻率(或速度)的增大而相電流減小,從而導(dǎo)致力矩下降。</p><p> ?。?)步進(jìn)電機(jī)低速時(shí)可以正常運(yùn)轉(zhuǎn),但若高于一定速度就無法啟動,并伴有嘯叫聲。</p><p> 2.2.3
59、 步進(jìn)電機(jī)要素</p><p> 步進(jìn)電機(jī)有步距角(涉及到相數(shù))、靜轉(zhuǎn)矩、及電流三大要素組成。一旦三大要素確定,步進(jìn)電機(jī)的型號便確定下來了。</p><p> ?。?)步距角的選擇 電機(jī)的步距角取決于負(fù)載精度的要求,將負(fù)載的最小分辨率(當(dāng)量)換算到電機(jī)軸上,每個(gè)當(dāng)量電機(jī)應(yīng)走多少角度(包括減速)。電機(jī)的步距角應(yīng)等于或小于此角度。目前市場上步進(jìn)電機(jī)的步距角一般有0.36度/0.72度(五相電
60、機(jī))、0.9度/1.8度(二、四相電機(jī))、1.5度/3度 (三相電機(jī))等。</p><p> ?。?)靜力矩的選擇 步進(jìn)電機(jī)的動態(tài)力矩一下子很難確定,我們往往先確定電機(jī)的靜力矩。靜力矩選擇的依據(jù)是電機(jī)工作的負(fù)載,而負(fù)載可分為慣性負(fù)載和摩擦負(fù)載二種。單一的慣性負(fù)載和單一的摩擦負(fù)載是不存在的。直接起動時(shí)(一般由低速)時(shí)二種負(fù)載均要考慮,加速起動時(shí)主要考慮慣性負(fù)載,恒速運(yùn)行進(jìn)只要考慮摩擦負(fù)載。一般情況下,靜力矩應(yīng)為摩擦
61、負(fù)載的2-3倍內(nèi)好,靜力矩一旦選定,電機(jī)的機(jī)座及長度便能確定下來(幾何尺寸)。</p><p> ?。?)、電流的選擇 靜力矩一樣的電機(jī),由于電流參數(shù)不同,其運(yùn)行特性差別很大,可依據(jù)矩頻特性曲線圖,判斷電機(jī)的電流(參考驅(qū)動電源、及驅(qū)動電壓)。</p><p> 2.2.4 步進(jìn)電機(jī)力矩與功率換算 </p><p> 步進(jìn)電機(jī)一般在較大范圍內(nèi)調(diào)速使用、其功率是變化
62、的,一般只用力矩來衡量,力矩與功率換算如下:P= Ω·M Ω=2π·n/60 P=2πnM/60 其P為功率單位為瓦,Ω為每秒角速度,單位為弧度,n為每分鐘轉(zhuǎn)速,M為力矩單位為牛頓·米 P=2πfM/400(半步工作)其中f為每秒脈沖數(shù)(簡稱PPS)</p><p> 其它特性還有慣頻特性、起動頻率特性等。電機(jī)一旦選定,電機(jī)的靜力矩確定,而動態(tài)力矩卻不然,電機(jī)的動態(tài)力矩取決于電機(jī)運(yùn)
63、行時(shí)的平均電流(而非靜態(tài)電流),平均電流越大,電機(jī)輸出力矩越大,即電機(jī)的頻率特性越硬。</p><p> 2.2.5步進(jìn)電機(jī)應(yīng)用中的注意點(diǎn)</p><p> ?。?)步進(jìn)電機(jī)應(yīng)用于低速場合---每分鐘轉(zhuǎn)速不超過1000轉(zhuǎn),(0.9度時(shí)6666PPS),最好在1000-3000PPS(0.9度)間使用,可通過減速裝置使其在此間工作,此時(shí)電機(jī)工作效率高,噪音低。 </p>&l
64、t;p> ?。?)步進(jìn)電機(jī)最好不使用整步狀態(tài),整步狀態(tài)時(shí)振動大。 </p><p> ?。?)由于歷史原因,只有標(biāo)稱為12V電壓的電機(jī)使用12V外,其他電機(jī)的電壓值不是驅(qū)動電壓伏值 ,可根據(jù)驅(qū)動器選擇驅(qū)動電壓(建議:57BYG采用直流24V-36V,86BYG采用直流50V,110BYG采用高于直流80V),當(dāng)然12伏的電壓除12V恒壓驅(qū)動外也可以采用其他驅(qū)動電源, 不過要考慮溫升。 </p>
65、<p> ?。?)轉(zhuǎn)動慣量大的負(fù)載應(yīng)選擇大機(jī)座號電機(jī)。 </p><p> ?。?)電機(jī)在較高速或大慣量負(fù)載時(shí),一般不在工作速度起動,而采用逐漸升頻提速,一電機(jī)不失步,二可以減少噪音同時(shí)可以提高停止的定位精度。 </p><p> (6)高精度時(shí),應(yīng)通過機(jī)械減速、提高電機(jī)速度,或采用高細(xì)分?jǐn)?shù)的驅(qū)動器來解決,也可以采用5相電機(jī),不過其整個(gè)系統(tǒng)的價(jià)格較貴,生產(chǎn)廠家少,其被淘汰的說
66、法是外行話。 </p><p> (7)電機(jī)不應(yīng)在振動區(qū)內(nèi)工作,如若必須可通過改變電壓、電流或加一些阻尼的解決。 </p><p> ?。?)電機(jī)在600PPS(0.9度)以下工作,應(yīng)采用小電流、大電感、低電壓來驅(qū)動。 </p><p><b> 2.3 細(xì)分驅(qū)動器</b></p><p> 在步進(jìn)電機(jī)步距角不能滿
67、足使用的條件下,可采用細(xì)分驅(qū)動器來驅(qū)動步進(jìn)電機(jī),細(xì)分驅(qū)動器的原理是通過改變相鄰(A,B)電流的大小,以改變合成磁場的夾角來控制步進(jìn)電機(jī)運(yùn)轉(zhuǎn)的。</p><p> 2.4 89C52芯片介紹</p><p> 本設(shè)計(jì)采用89C52芯片來進(jìn)行微機(jī)控制。89C52單片機(jī)是美國Intel公司推出的高性能8位單片微型計(jì)算機(jī),它的指令系統(tǒng)與芯片引腳完全兼容,下面介紹一下89C52的引腳功能:<
68、;/p><p> Vcc:+5V電源電壓。</p><p> Vss:電路接地端。</p><p> P0.0~P0.7:通道0,它是8位漏極開路的雙向I/O通道,當(dāng)擴(kuò)展外部存貯器時(shí),這也是低八位</p><p> P1.0~P1.7:通道1是8位擬雙向I/O通道,在編程和校驗(yàn)時(shí),它發(fā)出低8位地址。 通道1吸收/發(fā)出一個(gè)TTL負(fù)載。<
69、;/p><p> P2.0~P2.7:通道2是8位擬雙向I/O通道,當(dāng)訪問外部存貯器時(shí),用作高8位地址總線。通道2能吸收/發(fā)出一個(gè)TTL負(fù)載。</p><p> P3.0~P3.7:通道3準(zhǔn)雙向I/O通道。通道3能吸收/發(fā)出一個(gè)TTL負(fù)載,P3通道的每一根線還有另一種功能:</p><p> P3.2:INT0,外部中斷0輸入口。</p><p
70、> P3.3:INT1,外部中斷1輸入口。</p><p> P3.4:T0,定時(shí)器/計(jì)數(shù)器0外部事件脈沖輸入端。</p><p> P3.5:T1,定時(shí)器/計(jì)數(shù)器1外部事件脈沖輸入端</p><p> P3.6:WR,外部數(shù)據(jù)存貯器寫脈沖。</p><p> P3.7:RD,外部數(shù)據(jù)存貯器讀脈沖。</p>&l
71、t;p> RST/VpD:引腳9,復(fù)位輸入信號,振蕩器工作時(shí),該引腳上2個(gè)機(jī)器周期的高電平可以實(shí)現(xiàn)復(fù)</p><p> ALE/PROG:引腳30,地址鎖存有效信號,其主要作用是提供一個(gè)適當(dāng)?shù)亩〞r(shí)信號,在它的下降沿用于外部程序存儲器或外部數(shù)據(jù)存貯器的低8位地址鎖存,使總線P0輸出/輸入口分時(shí)用作</p><p> 地址總線(低8位)和數(shù)據(jù)總線,此信號每個(gè)機(jī)器出現(xiàn)2次,只是在訪問
72、外部數(shù)據(jù)存儲器期間才不輸出ALE。所以,在任何不使用外部數(shù)據(jù)存貯器的系統(tǒng)中,ALE以1/6振蕩頻率的固定速率 輸出,因而它能用作外部時(shí)鐘或定時(shí),8751內(nèi)的EPROM編程時(shí),此端輸編程脈沖信號。</p><p> PSEN:引腳29,程序選通有效信號,當(dāng)從外部程序存貯器讀取指令時(shí)產(chǎn)生,低電平時(shí),指令寄存器的內(nèi)容讀到數(shù)據(jù)總線上。</p><p> EA/VPP:引腳31,當(dāng)保持TTL高電
73、平時(shí),如果指令計(jì)數(shù)器小于4096,8051執(zhí)行內(nèi)部ROM的指令, 8751執(zhí)行內(nèi)部EPROM的指令,當(dāng)使TTL為低電平時(shí), 從外部程序存貯器取出所有指令,在8751內(nèi)的EPROM編程時(shí),此端為21V編程電源輸入端。</p><p> XTAL1:引腳18,內(nèi)部振蕩器外接晶振的一個(gè)輸入端,HMOS芯片使用外部振蕩源時(shí),此端必須接地。</p><p> XTAL2:引腳19,內(nèi)部振蕩器外接
74、晶振的另一個(gè)輸入端,HMOS芯片使用外部振蕩器時(shí),此端用于輸入外部振蕩信號。</p><p><b> 管腳圖如下所示: </b></p><p> 89C52管腳分步圖 </p><p> 2.5 編碼器結(jié)構(gòu)與參數(shù)</p><p><b> ?。?)結(jié)構(gòu)</b></p><
75、;p><b> ?。?)相關(guān)參數(shù)</b></p><p> 第三章 軟件設(shè)計(jì)部分</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、公司生產(chǎn)RM2690S步進(jìn)電機(jī)兩個(gè)(配有專門的驅(qū)動控制器), 上海藿德光電科技有限公司MODEL編碼器兩個(gè),米尺、編碼器、天平、89C52、8279、74LS244、74LS138、74HC373、共陽極極數(shù)碼管、細(xì)步驅(qū)動器、直尺、示波器等。</p><p> 3.2.2 測試方法</p><p> 根據(jù)試驗(yàn)測試一定的距離測量不同的的脈沖,取多組數(shù)據(jù),經(jīng)過取舍后,然后計(jì)算平均值來求出單
78、位距離需要的脈沖數(shù),進(jìn)而根據(jù)編碼器的脈沖數(shù)測出重物移動的距離,將重物的運(yùn)動軌跡記錄下來,進(jìn)行誤差分析,進(jìn)而進(jìn)行相應(yīng)補(bǔ)償。</p><p> 第四章 測試數(shù)據(jù)及測試結(jié)果分析(cm)</p><p> 分析上述結(jié)果,在工作區(qū)域內(nèi)大部分還是比較準(zhǔn)的,但是到了邊框部分就出現(xiàn)了較大的失誤,有時(shí)甚至出現(xiàn)電機(jī)不停轉(zhuǎn)的情況,在這過程中,我們發(fā)現(xiàn)并分析了不夠準(zhǔn)確的原因:是電機(jī)的的速度不夠協(xié)調(diào),重物的質(zhì)
79、量太小,角度太小時(shí)繩上的分力小,加上傳感器上有一定的摩擦力使得繩子松動,不能帶動傳感器計(jì)數(shù),使得單片機(jī)不能完成動作,尤其是到了邊框和右下角這種情況最嚴(yán)重,由于這部分的機(jī)械構(gòu)造,在實(shí)驗(yàn)過程中有電機(jī)不停轉(zhuǎn)再所難免的。</p><p> 對于畫圓的情況,重物的運(yùn)動軌跡并不是很固定,這要取決于現(xiàn)場的情況跟機(jī)械部分是否運(yùn)轉(zhuǎn)正常,主要原因是繩跟傳感器的打滑是一個(gè)未知量,也是一個(gè)不固定量,造成了運(yùn)動軌跡的不確定性。</
80、p><p><b> 參考文獻(xiàn)</b></p><p> A. 黃智偉. 全國大學(xué)生電子設(shè)計(jì)競賽訓(xùn)練教程[M]. 電子工業(yè)出版社, 2005.01</p><p> B. 余永權(quán),李小青,陳林康. 單片機(jī)應(yīng)用系統(tǒng)的功率接口技術(shù)[M]. 北航出版社,1992.9</p><p> C. 范立南. 單片微型計(jì)算機(jī)控制系統(tǒng)
81、設(shè)計(jì)[M]. 人民郵電出版社, 2004.3</p><p> D. 付家才. 單片機(jī)控制工程實(shí)踐技術(shù)[M]. 化學(xué)工業(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(); // 數(shù)字鍵處理子程序</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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)--pic單片機(jī)的煤炭監(jiān)控系統(tǒng)
- 畢業(yè)設(shè)計(jì)--pic單片機(jī)的煤炭監(jiān)控系統(tǒng)
- 畢業(yè)設(shè)計(jì)-基于pic單片機(jī)的直流調(diào)速系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--智能化衛(wèi)生間設(shè)計(jì)
- 單片機(jī)畢業(yè)設(shè)計(jì)--基于單片機(jī)的恒壓供水系統(tǒng)設(shè)計(jì)
- 單片機(jī)畢業(yè)設(shè)計(jì)---基于pic單片機(jī)的多路溫度巡回檢測系統(tǒng)
- 單片機(jī)畢業(yè)設(shè)計(jì)外文翻譯-- pic系列單片機(jī)的特點(diǎn)
- 單片機(jī)畢業(yè)設(shè)計(jì)----魚缸自動換水系統(tǒng)設(shè)計(jì)
- 基于 pic單片機(jī)的智能小區(qū)監(jiān)控系統(tǒng)的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----基于單片機(jī)的智能臺燈系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----基于pic單片機(jī)的出租車計(jì)費(fèi)系統(tǒng)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的智能臺燈系統(tǒng)
- 畢業(yè)設(shè)計(jì)----基于pic單片機(jī)的出租車計(jì)費(fèi)系統(tǒng)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的恒壓供水系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 基于單片機(jī)的定時(shí)澆水系統(tǒng)設(shè)計(jì)-畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)---單片機(jī)控制恒壓供水系統(tǒng)的設(shè)計(jì)論文
- 基于pic單片機(jī)的出租車計(jì)費(fèi)系統(tǒng)----畢業(yè)設(shè)計(jì)論文
- 單片機(jī)控制的智能供熱監(jiān)控系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的智能窗簾設(shè)計(jì)
- 基于單片機(jī)的智能小車設(shè)計(jì)畢業(yè)設(shè)計(jì)
評論
0/150
提交評論