版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 電機(jī)的遙控控制</b></p><p><b> 總體設(shè)計(jì)說明書</b></p><p><b> 1、引言</b></p><p> 20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程
2、度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。 時(shí)間對人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時(shí)間。忘記了要做的事情,當(dāng)事情不是很重要的時(shí)候,這種遺忘無傷大雅。但是,一旦重要事情,一時(shí)的耽誤可能釀成大禍。</p><p> 目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)
3、方面發(fā)展。下面是單片機(jī)的主要發(fā)展趨勢。</p><p> 單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過軟件方法來實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。</p><p> 本次采用單片機(jī)控制電機(jī),因?yàn)閱纹瑱C(jī)沒有專門的PWM波輸出模塊,所以對精度要求較
4、高的場合是不適用的,在這種場合常用AVR、DSP等一些控制器可以做到高精度的控制;用單片機(jī)可以做到基本功能的實(shí)現(xiàn),比如電機(jī)的正反轉(zhuǎn)控制,停止啟動(dòng)控制,加減速控制。由于單片機(jī)的計(jì)算能力有限,所以無法做到閉環(huán)控制,只能是開環(huán)控制,這樣在兩者的速度之間是有一定的差距,但對一些要求不高的控制,單片機(jī)是完全可以實(shí)現(xiàn)功能并滿足條件的。</p><p> 此次設(shè)計(jì)采用紅外遙控的方式來控制電機(jī),因?yàn)榧t外受外界干擾較小,在一些惡
5、劣條件下可保證在非人自己操作的情況下完成一些動(dòng)作的控制及功能的實(shí)現(xiàn)。但它也有不足之處,就是在遙控控制下,如果出現(xiàn)按鍵失誤,將會(huì)帶來不好的結(jié)果。</p><p><b> 1.1背景</b></p><p> 本次設(shè)計(jì)以89C51單片機(jī)為平臺(tái),利用C語言編程,并充分利用單片機(jī)的優(yōu)勢中斷技術(shù),設(shè)計(jì)并模擬了單片機(jī)輸出PWM波去控制電機(jī)的設(shè)計(jì)方法。</p>
6、<p> 設(shè)計(jì)名稱:電機(jī)的遙控控制</p><p><b> 提出者:</b></p><p><b> 設(shè)計(jì)者:</b></p><p><b> 1.2參考資料</b></p><p> 【1】《單片機(jī)原理及接口技術(shù)》(第3版)李朝青 編著 北京航空航
7、天大學(xué)出版社 2008年5月</p><p> 【2】《C語言編程》(第三版) (美)Stephen G.Kochan著 張小潘譯 電子工業(yè)出版社 2006年3月</p><p> 【3】《51單片機(jī)C語言教程》 郭天祥 編著 電子工業(yè)出版社 </p><p><b> 2009年12月</b></p><p
8、><b> 2、總體設(shè)計(jì)</b></p><p> 2.1開發(fā)與運(yùn)行環(huán)境</p><p> 本系統(tǒng)是以單片機(jī)為平臺(tái),利用Keil uVision3開發(fā)環(huán)境,采用C語言編程,基于HOT51增強(qiáng)型單片機(jī)開發(fā)板來實(shí)現(xiàn)的。在單片機(jī)開發(fā)板上順利實(shí)現(xiàn)之后,后期還將針對本次設(shè)計(jì)的電機(jī)控制小系統(tǒng)做PCB板,PCB板的制作是利用Protel開發(fā)環(huán)境,畫出PCB板,通過刻板機(jī)
9、實(shí)現(xiàn)電路板的制作。</p><p><b> 2.2硬件功能描述</b></p><p> 2.2.1 HOT51增強(qiáng)型單片機(jī)開發(fā)板</p><p> 51單片機(jī)開發(fā)板HOT-51增強(qiáng)型開發(fā)板的標(biāo)配器件為STC89C54RC+,但它完全可以使用于別的51系列芯片。開發(fā)板上資源豐富,并且可以轉(zhuǎn)接ARM。板上芯片有:AD-DA芯片:PCF85
10、91T ,溫度傳感器:1-WIRE協(xié)議控制芯片DS18B20,紅外接頭:PC 838(配合遙控器做解碼試驗(yàn)),時(shí)鐘芯片:SPI協(xié)議控制芯片DS1302,儲(chǔ)存芯片:I2C協(xié)議控制芯片AT24C02,通訊芯片:MAX232,USB轉(zhuǎn)串口芯片:PL2303HX,達(dá)林頓管:ULN2003(驅(qū)動(dòng)步進(jìn)電機(jī),直流電機(jī),繼電器,蜂鳴器),三態(tài)緩沖門電路:74HC245,三八譯碼器:74HC138,鎖存器:74HC573,穩(wěn)壓芯片:7805、LM1117
11、-3.3;顯示類:彩屏液晶,八位LED燈,八位共陰數(shù)碼管,8*8點(diǎn)陣,1602液晶,12864液晶(帶漢字字庫);其他:精致獨(dú)立按鍵, 4*4矩陣鍵盤,雙復(fù)位電路,繼電器,蜂鳴器,時(shí)鐘電池,標(biāo)準(zhǔn)JTAG接口等。</p><p> 2.2.2 AT89C51單片機(jī)</p><p> 單片機(jī)誕生于20世紀(jì)70年代末,經(jīng)歷了SCM、MCU、SoC三大階段。單片機(jī)是嵌入式系統(tǒng)的獨(dú)立發(fā)展之路,向
12、MCU階段發(fā)展的重要因素,就是尋求應(yīng)用系統(tǒng)在芯片上的最大化解決;因此,專用單片機(jī)的發(fā)展自然形成了SoC化趨勢。隨著微電子技術(shù)、IC設(shè)計(jì)、EDA工具的發(fā)展,基于SoC的單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)會(huì)有較大的發(fā)展。因此,對單片機(jī)的理解可以從單片微型計(jì)算機(jī)、單片微控制器延伸到單片應(yīng)用系統(tǒng)。 單片機(jī)作為微型計(jì)算機(jī)的一個(gè)重要分支,應(yīng)用面很廣,發(fā)展很快。自單片機(jī)誕生至今,已發(fā)展為上百種系列的近千個(gè)機(jī)種。</p><p>
13、單片機(jī)是通過內(nèi)部總線把計(jì)算機(jī)的各主要部件接為一體,其內(nèi)部總線包括地址總線、數(shù)據(jù)總線和控制總線。其中,地址總線的作用是在進(jìn)行數(shù)據(jù)交換時(shí)提供地址,CPU通過它們將地址輸出到存儲(chǔ)器或I/O接口;/數(shù)據(jù)總線的作用是在CPU與存儲(chǔ)器或I/O接口之間,或存儲(chǔ)器與外設(shè)之間交換數(shù)據(jù);控制總線包括CPU發(fā)出的控制信號線和外部送入CPU的應(yīng)答信號線等。</p><p> 由于單片機(jī)的這種結(jié)構(gòu)形式及它所采取的半導(dǎo)體工藝,使其具有很多
14、顯著的特點(diǎn),因而在各個(gè)領(lǐng)域都得到了迅猛的發(fā)展。單片機(jī)主要發(fā)如下特點(diǎn): (1)有優(yōu)異的性能價(jià)格比。 (2)集成度高、體積小、有很高的可靠性。單片機(jī)把各功能部件集成在一塊芯片上,內(nèi)部采用總線結(jié)構(gòu),減少了各芯片之間的連線,大大提高了單片機(jī)的可靠性與抗干擾能力。另外,其體積小,對于強(qiáng)磁場環(huán)境易于采取屏蔽措施,適合在惡劣環(huán)境下工作。 (3)控制功能強(qiáng)。為了滿足工業(yè)控制的要求,一般單片機(jī)的指令系統(tǒng)中均有極豐
15、富的轉(zhuǎn)移指令、I/O口的邏輯操作以及位處理功能。單片機(jī)的邏輯控制功能及運(yùn)行速度均高于同一檔次的微機(jī)。 (4)低功耗、低電壓,便于生產(chǎn)便攜式產(chǎn)品。 (5)外部總線增加了I C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行總線方式,進(jìn)一步縮小了體積,簡化了結(jié)構(gòu)。 (6)單片機(jī)的系統(tǒng)擴(kuò)
16、展和系統(tǒng)配置較典型、規(guī)范,容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng)。</p><p> 由于單片機(jī)具有顯著的優(yōu)點(diǎn),它已成為科技領(lǐng)域的有力工具,是我們生活中的得力助手。它的應(yīng)用遍及各個(gè)領(lǐng)域,主要表現(xiàn)在以下幾個(gè)方面:</p><p> (1) 單片機(jī)在智能儀表中的應(yīng)用 單片機(jī)廣泛地用于各種儀器儀表,使儀器儀表智能化,并可以提高測量的自動(dòng)化程度和精度,簡化儀器儀表的硬件結(jié)構(gòu),提高其性
17、能價(jià)格比。 (2)單片機(jī)在機(jī)電一體化中的應(yīng)用 機(jī)電一體化是械工業(yè)發(fā)展的方向。機(jī)電一體化產(chǎn)品是指集成機(jī)械技術(shù)、微電子技術(shù)、計(jì)算機(jī)技術(shù)于一體,具有智能化特征的機(jī)電產(chǎn)品,例如微機(jī)控制的車床、鉆床等。單片機(jī)作為產(chǎn)品中的控制器,能充分發(fā)揮它的體積小、可靠性高、功能強(qiáng)等優(yōu)點(diǎn),可大大提高機(jī)器的自動(dòng)化、智能化程度。 (3) 單片機(jī)在實(shí)時(shí)控制中的應(yīng)用 單片機(jī)廣泛地用于各種實(shí)時(shí)控制系統(tǒng)中。例
18、如,在工業(yè)測控、航空航天、尖端武器、機(jī)器人等各種實(shí)時(shí)控制系統(tǒng)中,都可以用單片機(jī)作為控制器。單片機(jī)的實(shí)時(shí)數(shù)據(jù)處理能力和控制功能,可使系統(tǒng)保持在最佳工作狀態(tài),提高系統(tǒng)的工作效率和產(chǎn)品質(zhì)量。 (4) 單片機(jī)在分布式多機(jī)系統(tǒng)中的應(yīng)用 在比較復(fù)雜的系統(tǒng)中,常采用分布式多機(jī)系統(tǒng)。多機(jī)系統(tǒng)一般由若干臺(tái)功能各異的單片機(jī)組成,各自完成特定的任務(wù),它們通過串行通信相互聯(lián)系、協(xié)調(diào)工作。單片機(jī)在這種系統(tǒng)中往往作為一個(gè)終端機(jī)
19、,安裝在系統(tǒng)的某些節(jié)點(diǎn)上,對現(xiàn)場信息進(jìn)行實(shí)時(shí)的測量</p><p> 單片機(jī)引腳圖和結(jié)果框圖如下圖1和圖2所示:</p><p> 圖1 AT89C51引腳圖</p><p><b> 圖2 內(nèi)部結(jié)構(gòu)圖</b></p><p><b> 3、硬件模塊設(shè)計(jì)</b></p>&l
20、t;p><b> 3.1系統(tǒng)硬件框圖</b></p><p> 其核心部件是89C51單片機(jī),由89C51單片機(jī)內(nèi)部定時(shí)器及外部中斷確定接收到的數(shù)據(jù)并判斷鍵碼值,最后通過掃描驅(qū)動(dòng)8位數(shù)碼管來顯示紅外鍵碼值,并送出相應(yīng)的速度值和方向信號。</p><p><b> 3.2數(shù)據(jù)流圖</b></p><p><
21、b> 4、硬件電路設(shè)計(jì)</b></p><p> 4.1晶體振蕩器電路</p><p> 晶體振蕩器電路給控制板提供一個(gè)頻率穩(wěn)定準(zhǔn)確的12MHz的方波信號,可保證PWM的穩(wěn)定輸出。給單片機(jī)提供時(shí)鐘的電路圖有如下兩種:</p><p> 由于我本次設(shè)計(jì)主要是針對電機(jī)的遙控控制的設(shè)計(jì),并且外部時(shí)鐘源不好加到電路中,精度又不是特別高,所以我選用內(nèi)
22、部時(shí)鐘方式。</p><p><b> 4.2復(fù)位電路設(shè)計(jì)</b></p><p> 復(fù)位電路分兩種方式,分別是上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位。</p><p> 上電自動(dòng)復(fù)位電路是在加電瞬間電容通過充電來實(shí)現(xiàn)的,其電路圖如下所示。在通電瞬間,電容C通過電阻R充電,RST端出現(xiàn)正脈沖,用以復(fù)位。只要電源VCC的上升時(shí)間不超過1ms,就可以實(shí)現(xiàn)
23、自動(dòng)上電復(fù)位,即接通電源就完成了系統(tǒng)的復(fù)位初始化。</p><p> 手動(dòng)復(fù)位是指通過一按鈕開關(guān),使單片機(jī)進(jìn)入復(fù)位狀態(tài)。系統(tǒng)上電運(yùn)行后,若需要復(fù)位,一般是通過手動(dòng)復(fù)位來實(shí)現(xiàn)的。通常采用手動(dòng)復(fù)位和上電自動(dòng)復(fù)位組合,其電路如下圖所示。</p><p> a.上電復(fù)位 b.按鍵電平復(fù)位</p><p> 由于設(shè)計(jì)的電機(jī)
24、控制板無需上電復(fù)位,所以采用按鍵電平復(fù)位,如上b圖所示。</p><p> 4.3位選及數(shù)碼管驅(qū)動(dòng)電路</p><p> 為了讓數(shù)碼管的顯示更清晰,我選用74HC573鎖存器來驅(qū)動(dòng)數(shù)碼管。由于8位數(shù)碼管的顯示是經(jīng)過一位一位顯示的,當(dāng)它的掃描頻率在50Hz~100Hz之間時(shí),我們就不會(huì)看出它的位顯示,并且顯示的亮度正好合適,數(shù)碼管的位選我通過3-8譯碼器74HC138,具體連接關(guān)系如下圖
25、所示:</p><p> 4.4單片機(jī)最小系統(tǒng)</p><p> 單片機(jī)的最小系統(tǒng)由4部分構(gòu)成,分別是:單片機(jī)、振蕩電路、復(fù)位電路、RAM和ROM。具體組成如下所示:</p><p><b> 單片機(jī)最小系統(tǒng)圖</b></p><p><b> 4.6電源電路</b></p>
26、<p> 單片機(jī)正常工作是+5V電壓,本次設(shè)計(jì)不做電源部分,采用USB供電,由于USB供電較為穩(wěn)定,所以不需要穩(wěn)壓部分,直接給單片機(jī)供電,這樣就減少了7805穩(wěn)壓???。具體電路如下所示:</p><p> 5、L298驅(qū)動(dòng)模塊</p><p> L298有兩路電源分別為邏輯電源和動(dòng)力電源,一般5V為邏輯電源,12V為動(dòng)力電源。ENA與ENB直接接入5V邏輯電源也就是說兩個(gè)電
27、機(jī)時(shí)刻都工作在使能狀態(tài)。</p><p> 由于我們使用的電機(jī)是線圈式的,在從運(yùn)行狀態(tài)突然轉(zhuǎn)換到停止?fàn)顟B(tài)和從順時(shí)針狀態(tài)突然轉(zhuǎn)換到逆時(shí)針狀態(tài)時(shí)會(huì)形成很大的反向電流,在電路中加入二極管的作用就是在產(chǎn)生反向電流的時(shí)候進(jìn)行泄流,保護(hù)芯片的安全。</p><p> 在對直流電動(dòng)機(jī)電壓的控制和驅(qū)動(dòng)中,半導(dǎo)體功率器件(L298)在使用上可以分為兩種方式:線性放大驅(qū)動(dòng)方式和開關(guān)驅(qū)動(dòng)方式在線性放大驅(qū)動(dòng)方
28、式,半導(dǎo)體功率器件工作在線性區(qū).</p><p> 優(yōu)點(diǎn):控制原理簡單,輸出波動(dòng)小,線性好,對鄰近電路干擾小。</p><p> 缺點(diǎn):功率器件工作在線性區(qū),功率低和散熱問題嚴(yán)重。</p><p> 開關(guān)驅(qū)動(dòng)方式是使半導(dǎo)體功率器件工作在開關(guān)狀態(tài),通過脈調(diào)制(PWM)來控制電動(dòng)機(jī)的電壓,從而實(shí)現(xiàn)電動(dòng)機(jī)轉(zhuǎn)速的控制。當(dāng)開關(guān)管的驅(qū)動(dòng)信號為高電平時(shí),開關(guān)管導(dǎo)通,直流電動(dòng)
29、機(jī)電樞繞組兩端有電壓U。t1秒后,驅(qū)動(dòng)信號變?yōu)榈碗娖?,開關(guān)管截止,電動(dòng)機(jī)電樞兩端電壓為0。t2秒后,驅(qū)動(dòng)信號重新變?yōu)楦唠娖?,開關(guān)管的動(dòng)作重復(fù)前面的過程。</p><p><b> 圖一 驅(qū)動(dòng)真值表</b></p><p> 圖二 L298原理圖</p><p> 圖三 驅(qū)動(dòng)整體框圖</p><p><b
30、> 6、遙控的實(shí)現(xiàn)</b></p><p> 圖1 遙控器輸出編碼圖</p><p> 圖2 遙控器輸出信號格式圖</p><p> 圖3 遙控器輸出信號0與1的時(shí)間圖</p><p><b> 7、軟件模塊的設(shè)計(jì)</b></p><p> 本次設(shè)計(jì)單片機(jī)電機(jī)控制
31、,供可選擇的語言有匯編語言和C語言兩種選擇,從總體角度考慮,兩種語言各有其優(yōu)缺點(diǎn)。匯編語言在編寫過程中可以較容易的計(jì)算出機(jī)器周期,這樣可以計(jì)算出相應(yīng)的延時(shí)與誤差,并且在編譯過程中精度較高,執(zhí)行效率也較高,是各種語言中執(zhí)行效率最高的一種。相反,匯編語言又是一種較為低級的語言,編寫起來難度較大,程序量也較大,不易編寫大規(guī)模的系統(tǒng)。C語言它的靈活性較強(qiáng),語法功能也比較強(qiáng)大,對于同一個(gè)設(shè)計(jì),與匯編語言相比,工作量較小,完全可以實(shí)現(xiàn)匯編無法實(shí)現(xiàn)的
32、一些功能。雖然C語言具有強(qiáng)大的功能,但也有不足之處,比如在循環(huán)延時(shí)時(shí)不易計(jì)算出相應(yīng)的機(jī)器周期,還有,采用不同的編譯器,可能以不同的方式編譯出不同的機(jī)器碼。</p><p> 由于本次設(shè)計(jì)的單片機(jī)電機(jī)控制編程量較大,又考慮到后面的工作過程中將大量使用C語言編程,所以本次編寫過程采用C語言,基于Kiel C3軟件來完成軟件模塊的設(shè)計(jì)工作。</p><p><b> 8、設(shè)計(jì)總結(jié)與
33、心得</b></p><p> 單片機(jī)控制電機(jī)可以說是一個(gè)較小的系統(tǒng),開始時(shí)我們覺得通過C語言較容易實(shí)現(xiàn),確實(shí),只實(shí)現(xiàn)一個(gè)能夠正常運(yùn)行的電機(jī)控制是比較容易的。但我們想錯(cuò)了,畢竟是第一次從總體角度來考慮地完成一個(gè)小系統(tǒng),好多的實(shí)際性的問題我們沒有考慮,所以造成我們最終設(shè)計(jì)的控制模塊只能簡單著實(shí)現(xiàn)正反轉(zhuǎn)、速度控制和剎車,并且存在好多問題,當(dāng)然問題多了對我們來說是好事,這樣我們在解決更多問題時(shí)學(xué)會(huì)更多解決
34、問題的方法,對我們也算是長長經(jīng)驗(yàn)吧。</p><p> 這次數(shù)字鐘的設(shè)計(jì)主要是用單片機(jī)來完成的,雖然我們也花了很多時(shí)間來完成它的總體設(shè)計(jì),但就像老師說的那樣,這只是個(gè)開始。從這次設(shè)計(jì)中我也覺得自己還對單片機(jī)的功能了解只是個(gè)皮毛,單片機(jī)強(qiáng)大的功能還等著我們?nèi)ラ_發(fā)。</p><p> 在這些天大家總結(jié)報(bào)告時(shí)我發(fā)現(xiàn),我們大家的意識(shí)還太低,就像寫個(gè)報(bào)告,大家總在意的是看誰寫了多少頁了,看誰的程
35、序多,所占用的頁數(shù)多,一切似乎和頁數(shù)聯(lián)系上了。我覺得我們更應(yīng)該去關(guān)注一下大家所寫的程序,看誰的程序在完成同樣功能的同時(shí),他采用方法新穎,程序占用的內(nèi)存少,并且精度高??磥砦覀兇蠹铱偙灰环N錯(cuò)誤的觀念領(lǐng)導(dǎo)著,面對內(nèi)存有限的單片機(jī)而言,編寫一個(gè)控制模塊,我們無論采用的哪種方法都不可能用完單片機(jī)內(nèi)部的程序存儲(chǔ)器,我覺得我們現(xiàn)在所做的事都是為我們后面做鋪墊的,所以我們現(xiàn)在就應(yīng)該去關(guān)心程序所占用的內(nèi)存和采用的優(yōu)于別人的算法。所以我們在程序中減少冗余
36、量,在此我舉幾個(gè)例子,比如在程序中我們完全可以采用單片機(jī)沒有用的標(biāo)志位F0,這樣我們可以減少變量的定義。利用C語言寫時(shí),難免會(huì)定義一些靜態(tài)變量,這些靜態(tài)變量相當(dāng)于一些寄存器,我們可以重復(fù)利用這些靜態(tài)變量,這樣會(huì)減少更多靜態(tài)變量的定義,即可以節(jié)約內(nèi)存。</p><p> 最后我覺得系統(tǒng)的設(shè)計(jì)需要我們?nèi)嬷タ紤]好多的問題,這對我們的成長會(huì)有更大的幫助。程序的實(shí)現(xiàn)不只是功能的實(shí)現(xiàn),還要有可靠的穩(wěn)定性,占用的內(nèi)存也要
37、較小。</p><p><b> 附錄:</b></p><p> #include<reg52.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> ucha
38、r timerlr;</p><p> uint startflag;</p><p> uint bitnum; //</p><p> uint irreceok; //接收完畢</p><p> uchar irprosok; //轉(zhuǎn)換完畢</p><p> uchar irdata[3
39、3];</p><p> uchar ircode[4];</p><p> uchar disp[8];</p><p> sbit bre =P1^0;</p><p> sbit dir =P1^1;</p><p> sbit pwm =P1^2;</p><p> s
40、tatic int s=20; //當(dāng)前pwmh+pwml</p><p> uchar code table[]={ 0x3f,0x06,0x5b,0x4f,</p><p> 0x66,0x6d,0x7d,0x07,</p><p> 0x7f,0x6f,0x77,0xff,</p><p> 0
41、x39,0xbf,0x79,0x71 };</p><p> uchar code table1[]={0x00,0x01,0x02,0x03,0x04,</p><p> 0x05,0x06,0x07} ;</p><p> void delay_50us(uchar t)</p><p><b> {</b>
42、;</p><p><b> uchar j;</b></p><p> for(;t>0;t--)</p><p> for(j=0;j<19;j++);</p><p><b> }</b></p><p> void timer0init(void
43、)</p><p><b> {</b></p><p> TMOD=0X02;</p><p><b> TH0=0X00;</b></p><p><b> TL0=0X00;</b></p><p><b> ET0=1;<
44、;/b></p><p><b> EA=1;</b></p><p><b> TR0=1;</b></p><p><b> }</b></p><p> void int1init()</p><p><b> {<
45、/b></p><p><b> IT1=1;</b></p><p><b> EX1=1;</b></p><p><b> EA=1;</b></p><p><b> }</b></p><p> void
46、irwork(void)</p><p><b> {</b></p><p> disp[0]=ircode[0]/16;</p><p> disp[1]=ircode[0]%16;</p><p> disp[2]=ircode[1]/16;</p><p> disp[3]=ir
47、code[1]%16;</p><p> disp[4]=ircode[2]/16;</p><p> disp[5]=ircode[2]%16;</p><p> disp[6]=ircode[3]/16;</p><p> disp[7]=ircode[3]%16;</p><p><b> }
48、</b></p><p> void display(void)</p><p><b> {</b></p><p><b> uchar i;</b></p><p> for(i=0;i<8;i++)</p><p><b> {&
49、lt;/b></p><p> P0=table[disp[i]];</p><p> P2=table1[i];</p><p> delay_50us(20);</p><p><b> }</b></p><p><b> }</b></p>
50、<p> void irpros(void)</p><p><b> {</b></p><p> uchar k=1,i,j;</p><p> uchar value;</p><p> for(j=0;j<4;j++)</p><p><b> {
51、</b></p><p> for(i=0;i<8;i++)</p><p><b> {</b></p><p> value=value>>1;</p><p> if(irdata[k]>6)</p><p><b> {</b&
52、gt;</p><p> value=value | 0x80;</p><p><b> }</b></p><p><b> k++;</b></p><p><b> }</b></p><p> ircode[j]=value;<
53、/p><p><b> }</b></p><p> irprosok=1;</p><p><b> }</b></p><p> void putpwm()</p><p><b> {</b></p><p><
54、b> pwm=1;</b></p><p> delay_50us(s);</p><p><b> pwm=~pwm;</b></p><p> delay_50us(40-s);</p><p><b> }</b></p><p> voi
55、d instruct()</p><p><b> {</b></p><p> if(ircode[2] == 0x45)//開動(dòng)電機(jī)</p><p><b> {</b></p><p><b> //TR1=1;</b></p><p>
56、; //TH1=0x7c;</p><p> //TL1=0x18;</p><p><b> dir=1;</b></p><p><b> bre=0;</b></p><p><b> putpwm();</b></p><p><
57、b> }</b></p><p> if(ircode[2] == 0x46)//關(guān)電機(jī)</p><p><b> {</b></p><p><b> //TR1=0;</b></p><p><b> bre=1;</b></p>
58、<p><b> pwm=1;</b></p><p><b> }</b></p><p> if(ircode[2]==0x07)//正轉(zhuǎn)</p><p><b> {</b></p><p><b> bre=1;</b>
59、</p><p><b> dir=1;</b></p><p><b> bre=0;</b></p><p><b> putpwm();</b></p><p><b> }</b></p><p> if(irco
60、de[2] == 0x15)//反轉(zhuǎn)</p><p><b> {</b></p><p><b> bre=1;</b></p><p><b> dir=0;</b></p><p><b> bre=0;</b></p>&
61、lt;p><b> putpwm();</b></p><p><b> }</b></p><p> if(ircode[2] == 0x16) //加速</p><p><b> {</b></p><p> if(s < 40)</p&
62、gt;<p><b> {</b></p><p><b> s=s+1;</b></p><p><b> putpwm();</b></p><p><b> }</b></p><p><b> else</b
63、></p><p><b> {</b></p><p><b> s=40;</b></p><p><b> putpwm();</b></p><p><b> }</b></p><p><b>
64、}</b></p><p> if(ircode[2] == 0x19)//減速</p><p><b> {</b></p><p><b> if(s > 5)</b></p><p><b> {</b></p><p&g
65、t;<b> s=s-1;</b></p><p><b> putpwm();</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p&g
66、t;<p><b> s=5;</b></p><p><b> putpwm();</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b>&
67、lt;/p><p> void main()</p><p><b> {</b></p><p> // TMOD=0x12;</p><p><b> bre=1;</b></p><p><b> pwm=1;</b></p>
68、<p> timer0init();</p><p> // timer1init();</p><p> int1init();</p><p><b> while(1)</b></p><p><b> {</b></p><p> if(irre
69、ceok)</p><p><b> {</b></p><p><b> irpros();</b></p><p> irreceok=0;</p><p><b> }</b></p><p> if(irprosok)</p>
70、;<p><b> {</b></p><p><b> irwork();</b></p><p> irprosok=0;</p><p> instruct();</p><p> //pwmchange();</p><p><b>
71、 }</b></p><p><b> putpwm();</b></p><p> display();</p><p><b> }</b></p><p><b> }</b></p><p> void timer0_()
72、 interrupt 1</p><p><b> {</b></p><p> timerlr++;</p><p><b> }</b></p><p> void int1_() interrupt 2</p><p><b> {</b&g
73、t;</p><p> if(startflag)</p><p><b> {</b></p><p> if(timerlr>48)</p><p><b> {</b></p><p><b> bitnum=0;</b></
74、p><p><b> }</b></p><p> irdata[bitnum]=timerlr;</p><p> timerlr=0;</p><p><b> bitnum++;</b></p><p> if(bitnum==33)</p><
75、;p><b> {</b></p><p><b> bitnum=0;</b></p><p> irreceok=1;</p><p><b> }</b></p><p><b> }</b></p><p>
76、;<b> else</b></p><p><b> {</b></p><p> timerlr=0;</p><p> startflag=1;</p><p><b> }</b></p><p><b> }</b&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 直流電機(jī)無線遙控控制器設(shè)計(jì)【畢業(yè)論文】
- 步進(jìn)電機(jī)的控制畢業(yè)論文
- 步進(jìn)電機(jī)控制畢業(yè)論文
- 無線遙控畢業(yè)論文
- 電機(jī)控制與保護(hù)畢業(yè)論文
- 電機(jī)控制與維護(hù)畢業(yè)論文
- 步進(jìn)電機(jī)畢業(yè)論文-- 步進(jìn)電機(jī)的驅(qū)動(dòng)控制的設(shè)計(jì)
- 無線遙控的四軸電機(jī)驅(qū)動(dòng)模塊的設(shè)計(jì)-本科畢業(yè)論文
- 步進(jìn)電機(jī)畢業(yè)論文-- 步進(jìn)電機(jī)的驅(qū)動(dòng)控制的設(shè)計(jì)
- plc控制電機(jī)正反轉(zhuǎn)畢業(yè)論文
- 步進(jìn)電機(jī)控制系統(tǒng)畢業(yè)論文
- 畢業(yè)論文----紅外遙控系統(tǒng)的設(shè)計(jì)
- plc控制電機(jī)正反轉(zhuǎn)畢業(yè)論文
- 紅外遙控汽車設(shè)計(jì)畢業(yè)論文
- 基于fpga的步進(jìn)電機(jī)的控制【畢業(yè)論文】
- 亞超聲遙控開關(guān)~畢業(yè)論文
- 多功能遙控小車畢業(yè)論文
- 無線遙控音樂門鈴畢業(yè)論文
- 無線編碼遙控門鈴畢業(yè)論文
- 基于51單片機(jī)的紅外遙控電機(jī)系統(tǒng)設(shè)計(jì)畢業(yè)論文
評論
0/150
提交評論