智能尋跡小車的研究與開發(fā)

上傳人:1666****666 文檔編號(hào):36386890 上傳時(shí)間:2021-10-30 格式:DOC 頁(yè)數(shù):39 大?。?.09MB
收藏 版權(quán)申訴 舉報(bào) 下載
智能尋跡小車的研究與開發(fā)_第1頁(yè)
第1頁(yè) / 共39頁(yè)
智能尋跡小車的研究與開發(fā)_第2頁(yè)
第2頁(yè) / 共39頁(yè)
智能尋跡小車的研究與開發(fā)_第3頁(yè)
第3頁(yè) / 共39頁(yè)

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《智能尋跡小車的研究與開發(fā)》由會(huì)員分享,可在線閱讀,更多相關(guān)《智能尋跡小車的研究與開發(fā)(39頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、材料清單一、 研究報(bào)告1. 項(xiàng)目成果簡(jiǎn)介2. 項(xiàng)目研究背景和意義3. 研究計(jì)劃4. 研究?jī)?nèi)容5. 成果創(chuàng)新點(diǎn)6項(xiàng)目研究展望二、附件材料附件一:實(shí)物電路圖附件二:實(shí)物照片附件三:源程序清單三、實(shí)物作品衡陽(yáng)市第三屆大學(xué)生創(chuàng)新大賽相關(guān)項(xiàng)目的研究報(bào)告項(xiàng)目名稱:智能尋跡小車的研究與開發(fā)項(xiàng)目類型:實(shí)用型成果形式:1、研究報(bào)告;2、實(shí)用作品參賽學(xué)生:陳緒雄、周鋒、蔣晶指導(dǎo)教師:李祖林、雷軍、李旭華一、項(xiàng)目成果簡(jiǎn)介本項(xiàng)目使用光電傳感器檢測(cè)小車的運(yùn)動(dòng)軌跡,金屬傳感器和超聲波傳感器檢測(cè)小車周圍的障礙,對(duì)小車的相關(guān)信息進(jìn)行采集,采用AVR單片機(jī)Atmega128L作為電動(dòng)小車的尋跡控制,AVR單片機(jī)Atmega12

2、8L完成算法分析、信息處理和小車的控制。構(gòu)建了以微處理器為核心、多傳感器的小車信息檢測(cè)與融合、聲光報(bào)警與LCD數(shù)碼顯示、雙向PWM控制驅(qū)動(dòng)電機(jī)的智能小車尋跡系統(tǒng)。電動(dòng)小車能沿著任意設(shè)定的軌跡行走,遇到障礙自動(dòng)停止5秒并發(fā)出聲光報(bào)警,之后能自動(dòng)倒回按設(shè)定的軌跡行走,小車能自動(dòng)糾偏。經(jīng)過測(cè)試,小車能夠按任意設(shè)定的軌跡行走流暢。二、項(xiàng)目研究背景和意義隨著計(jì)算機(jī)技術(shù)、控制技術(shù)、信息技術(shù)的快速發(fā)展,工業(yè)的生產(chǎn)和管理進(jìn)入了自動(dòng)化、信息化和智能化時(shí)代,智能化已經(jīng)成為時(shí)代發(fā)展的需要。在柔性自動(dòng)化生產(chǎn)線、智能倉(cāng)儲(chǔ)管理及物流配送等領(lǐng)域,當(dāng)生產(chǎn)現(xiàn)場(chǎng)環(huán)境惡劣時(shí),人工不能完成的任務(wù)如物料運(yùn)輸和裝卸等,可采用智能尋跡小車

3、完成相應(yīng)的任務(wù)?;谏a(chǎn)現(xiàn)場(chǎng)和日常生活的實(shí)際需要,研究和開發(fā)智能小車尋跡系統(tǒng)具有十分重要的意義。該項(xiàng)目的研究可以應(yīng)用于機(jī)車頭燈自動(dòng)尋跡、工廠自動(dòng)化、倉(cāng)庫(kù)管理、智能玩具和民用服務(wù)等領(lǐng)域,可提高勞動(dòng)生產(chǎn)效率,改善勞動(dòng)環(huán)境。三、研究計(jì)劃2007年6月1日-2007年6月20日,收集資料,確定研究?jī)?nèi)容、技術(shù)方案、研究路線。(由組內(nèi)3人共同研究)。2007年6月21日-2007年7月30日,完成小車硬件的電路制作(陳緒雄負(fù)責(zé)小車整體方案確定、制作電路板,周鋒負(fù)責(zé)購(gòu)買元器件和電路焊接,蔣晶負(fù)責(zé)電路圖繪制)。2007年8月1日-2007年9月8日,完成小車軟件的編寫和小車整機(jī)調(diào)試。(三人共同協(xié)作完成)。20

4、07年9月10日-2008年3月6日,完成成果總結(jié)。四、研究?jī)?nèi)容1 方案與論證1.1控制芯片的選擇方案一:選用AVR單片機(jī)Atmega128L,Atmega128L是高性能、低功耗的 AVR 8 位微處理器,64引腳。采用先進(jìn)的 RISC 結(jié)構(gòu),具有133 條指令,大多數(shù)可以在一個(gè)時(shí)鐘周期內(nèi)完成。它具有兩個(gè)獨(dú)立的預(yù)分頻器和比較器功能的8 位定時(shí)器/計(jì)數(shù)器和兩個(gè)具有預(yù)分頻器、比較功能和捕捉功能的16 位定時(shí)器/計(jì)數(shù)器及具有獨(dú)立預(yù)分頻器的實(shí)時(shí)時(shí)鐘計(jì)數(shù)器。片內(nèi)帶有模擬比較器。具有上電復(fù)位以及可編程的掉電檢測(cè)功能。其片內(nèi)資源豐富,具有: 8個(gè)外部中斷, 4個(gè)定時(shí)計(jì)數(shù)器,53個(gè)I/O口,可解除I/O口資

5、源不足的困難。其引腳大多數(shù)都有具有第二功能,功能強(qiáng)大。.方案二:采用AT89S52單片機(jī),AT89S52 單片機(jī)是一種低功耗、高性能CMOS 8位微控制器,具有8K 在系統(tǒng)可編程存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。AT89S52有5個(gè)中斷源,和3個(gè)定時(shí)計(jì)數(shù)器。方案三:采用FPGA(現(xiàn)場(chǎng)可編輯門列陣)作為系統(tǒng)控制器。FPGA可以實(shí)現(xiàn)各種復(fù)雜的邏輯功能,規(guī)模大,集成度高,體積小,穩(wěn)定性好,并且可利用EDA軟件進(jìn)行仿真和調(diào)試。FPGA采用并行工作方式,提高了系統(tǒng)的處理速度,常用

6、于大規(guī)模實(shí)時(shí)性要求較高的系統(tǒng)。方案比較:由三種方案可以看出,以Atmega 128L核心可以方便地實(shí)現(xiàn)對(duì)各個(gè)部分的控制和外接,而AT89S52而需要外擴(kuò)大量的I/O口才能滿足需要,而FPGA的高速處理能力得不到充分發(fā)揮且價(jià)格較貴,所以我們選擇方案一。(2)軌道行程控制方案的選擇為了使電動(dòng)車能夠識(shí)別黑線不跑離軌道,我們?cè)谙到y(tǒng)中加裝了光電傳感器和金屬傳感器。1.2 路面檢測(cè) 我們采用檢測(cè)黑線的方法來控制智能小車的行走軌跡,使用了兩個(gè)紅外對(duì)管來檢測(cè)黑線,同時(shí)用超聲波傳感器檢測(cè)小車周圍的障礙物。方案一:采用熱探測(cè)器。熱探測(cè)器是利用所接收到的紅外輻射后,會(huì)引起溫度的變化,溫度的變化引起電信號(hào)輸出,且輸出

7、的電信號(hào)與溫度的變化成比例,溫度變化是因?yàn)槲諢彷椛淠芰恳鸬?,與吸收紅外輻射的波長(zhǎng)沒有關(guān)系,即對(duì)紅外輻射吸收沒有波長(zhǎng)的選擇。但熱探測(cè)器對(duì)其吸收的紅外輻射波長(zhǎng)沒有選擇性,受外界環(huán)境的影響比較大。 方案二;采用光電探測(cè)器。光電探測(cè)器接收紅外輻射后,由于紅外光子直接把材料的束縛態(tài)電子激發(fā)成傳導(dǎo)電子,由此引起電信號(hào)輸出,信號(hào)大小與所吸收的光子數(shù)成比例。且這些紅外光子的能量的大?。醇t外光還必須滿足一定的波長(zhǎng)范圍),必須滿足一定的要求,才能激發(fā)束縛電子,起激發(fā)作用。光電探測(cè)器吸收的光子必須滿足一定的波長(zhǎng),否則不能被吸收,所以受外界影響比較小,抗干擾比較強(qiáng)?;谏厦娣治?,我們采用方案二1.3 小車運(yùn)行終

8、點(diǎn)檢測(cè)方案一:采用計(jì)算路程的方法來控制。只要將計(jì)算出來的路程不斷的與預(yù)置的初值進(jìn)行比較,只要相等說明已經(jīng)到了終點(diǎn),倒回起點(diǎn)也如此。這種方法不僅計(jì)算路程麻煩而且占用了CPU的開銷。方案二:采用檢測(cè)金屬片的方法。只要在運(yùn)行軌跡的終點(diǎn)放置一塊鐵片,再用金屬傳感器檢測(cè)金屬片就可以了,電路簡(jiǎn)單、程序采用中斷的方式不會(huì)占用很多CPU資源。綜合上述我們采用方案二1.4 顯示裝置的選擇方案一:采用美信公司的MAX7219是一款串行共陰極數(shù)碼管動(dòng)態(tài)掃描顯示的驅(qū)動(dòng)芯片,其峰值段電流可達(dá)到40mA最高串行掃描頻率10MHz,典型掃描頻率為1.3MHz,僅用3線串行接口傳送數(shù)據(jù),可直接與單片機(jī)接口,用戶可以方便地修改

9、其內(nèi)部參數(shù)以實(shí)現(xiàn)多位LED顯示。它內(nèi)含硬件動(dòng)態(tài)掃描顯示控制電路,每片芯片可同時(shí)驅(qū)動(dòng)8位共陰LED。點(diǎn)是控制比較簡(jiǎn)單,而且串行顯示只占用很少的I/O口。方案二:采用點(diǎn)陣型LCD顯示,點(diǎn)陣型LCD雖然占用的I/O口資源多,控制比較復(fù)雜,但其功能強(qiáng)大的,顯示信息量大,可以保證良好的用戶模式。它具有顯示質(zhì)量高、體積小、重量輕、功耗低、輕薄短小、無輻射危險(xiǎn)、平面直角顯示以及影像穩(wěn)定不閃爍等優(yōu)勢(shì),可視面積大,圖面積效果好,分辨率高,抗干擾能力強(qiáng)等特點(diǎn)等優(yōu)點(diǎn)??紤]到Atmega128 I/O口資源豐富和LCD的眾多優(yōu)點(diǎn),我們選擇使用LCD顯示。2 主要電路設(shè)計(jì)與分析2.1系統(tǒng)結(jié)構(gòu)框圖單片機(jī)將傳感器送來的數(shù)據(jù)

10、進(jìn)行處理、算法分析,其輸出信號(hào)控制電機(jī)并送LCD顯示。光電傳感器負(fù)責(zé)黑線的檢測(cè),引導(dǎo)智能小車的行使軌跡。金屬傳感器負(fù)責(zé)前起點(diǎn)和終點(diǎn)的檢測(cè),當(dāng)金屬傳感器檢測(cè)到金屬條時(shí),說明電動(dòng)小車已經(jīng)到起點(diǎn)或終點(diǎn),采用超聲波傳感器檢測(cè)智能小車的周圍障礙物及其距離,若檢測(cè)的距離達(dá)到超過給定值,發(fā)出聲光報(bào)警,聲音報(bào)警信號(hào)為“請(qǐng)注意倒車”。系統(tǒng)框圖如圖2.1。圖2.1 系統(tǒng)框圖2.2系統(tǒng)模塊理論分析與設(shè)計(jì)(1)探測(cè)路面黑線的基本原理當(dāng)光線照射到路面會(huì)反射,由于黑線和地面對(duì)光的反射系數(shù)不同,可根據(jù)接收到的反射光強(qiáng)弱,用光電傳感器判斷黑線。光電管基本原理圖如圖2.2。圖2.2光電管基本原理圖當(dāng)光電管檢測(cè)不到黑線時(shí),紅外光

11、管接收到反射回來的紅外光,使其輸出由高電平立即跳至低電平。我們?cè)谛≤嚿喜⑴偶由蟽蓚€(gè)紅外光電管,黑線置于兩紅外光電管之間,并且將兩個(gè)光電管產(chǎn)生的電信號(hào)脈沖分別送單片機(jī)的PE2和PE3。這樣通過PWM來調(diào)節(jié)兩個(gè)電機(jī)的速度來校正行使路線,電動(dòng)車行駛狀態(tài)和紅外對(duì)管產(chǎn)生的電信號(hào)關(guān)系如表2-1。表2-1 電動(dòng)車行駛狀態(tài)和紅外對(duì)管產(chǎn)生的電信號(hào)關(guān)系(2)金屬探測(cè)模塊金屬探測(cè)模塊主要用于行駛軌跡中金屬片的探測(cè)。考慮到金屬一般都是導(dǎo)體,根據(jù)電磁場(chǎng)理論可知,在受到變化的電磁場(chǎng)作用的任何導(dǎo)體,都會(huì)產(chǎn)生電渦流。因此,在本系統(tǒng)中采用電感式接近開關(guān)實(shí)現(xiàn)對(duì)金屬片的檢測(cè)。電感式接近開關(guān)由LC高頻振蕩器和放大處理電路組成,金屬物

12、體接近傳感器的振蕩感應(yīng)頭時(shí),物體內(nèi)部產(chǎn)生電渦流,當(dāng)電渦流作用于接近開關(guān)時(shí),接近開關(guān)振蕩能力衰減,內(nèi)部電路的參數(shù)發(fā)生變化,由此識(shí)別出有無金屬物體接近,進(jìn)而控制開關(guān)的通和斷,并以電信號(hào)脈沖的形式送入單片機(jī)的PD7。電感式接開關(guān)內(nèi)部工作原理圖如圖2.3。圖2.3電感式接開關(guān)內(nèi)部工作原理圖 (3)電機(jī)驅(qū)動(dòng)模塊L298是一個(gè)4通道邏輯驅(qū)動(dòng)電路,既將邏輯控制電平進(jìn)行功率放大,可以用于功率驅(qū)動(dòng)的電壓。電機(jī)驅(qū)動(dòng)模塊電路如圖2.4所示。圖2.4 電機(jī)驅(qū)動(dòng)模塊電路PWM(脈沖寬度調(diào)制)控制,配用L298驅(qū)動(dòng)電路實(shí)現(xiàn)直流電機(jī)的調(diào)速,非常簡(jiǎn)單且調(diào)速范圍大,它利用的是直流斬波原理,假設(shè)高電平導(dǎo)通,在一個(gè)周期T內(nèi)導(dǎo)通時(shí)間

13、為t,那么一個(gè)周期T內(nèi)的平均電壓,其中=稱為占空比。各周期內(nèi)不同的占空比示例如圖2.5。圖2.5 各周期內(nèi)不同的占空比示例電機(jī)的轉(zhuǎn)速與電機(jī)兩端的電壓成正比,而電機(jī)兩端的電壓與控制波形的占空比成正比,因此電機(jī)的速度與占空比成正比,占空比越大,電機(jī)轉(zhuǎn)得越快,當(dāng)占空比時(shí),電機(jī)轉(zhuǎn)速達(dá)到最大。3 程序設(shè)計(jì)主程序流程圖主要包括傳感器輸出中斷的查詢、電平的檢測(cè)和電機(jī)的響應(yīng)等。主程序流程圖如圖3.1所示。圖3.1主程序流程圖4 功能測(cè)試通過測(cè)試,智能小車能按任意設(shè)定路線行駛,能實(shí)現(xiàn)以下功能:(1) 沿著直線軌跡行使。(2) 沿著S型設(shè)定軌跡行使。(3) 沿著任何設(shè)置的軌跡行使。(4) 小車行使到達(dá)軌跡終點(diǎn)時(shí),

14、自動(dòng)停留5秒并發(fā)出聲光報(bào)警之后自動(dòng)尋跡倒回行使到起點(diǎn)。(5) 沿軌跡行使過程中,檢測(cè)到障礙物時(shí),自動(dòng)停止5s,并發(fā)出聲光報(bào)警“請(qǐng)注意倒車”。4 小結(jié)項(xiàng)目設(shè)計(jì)中采用具有豐富資源的Atmega128單片機(jī)和光電傳感器、金屬傳感器、超聲波傳感器等,實(shí)現(xiàn)相應(yīng)信號(hào)的檢測(cè)與小車的控制,系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、穩(wěn)定、具有較高的控制精度、抗干擾能力強(qiáng),實(shí)現(xiàn)了智能小車能按任意軌跡行駛。五、成果創(chuàng)新點(diǎn)智能小車能檢測(cè)障礙物及其距離,并發(fā)出聲光報(bào)警 “請(qǐng)注意倒車” 信號(hào),智能小車能沿任意設(shè)定軌跡行駛,具有實(shí)際應(yīng)用價(jià)值和推廣價(jià)值。六、項(xiàng)目研究展望對(duì)智能尋跡小車的研究,加裝GPS(全球衛(wèi)星定位系統(tǒng))或加裝基于Internet的接口

15、電路,智能尋跡小車將具有更廣泛的應(yīng)用前景和使用價(jià)值,這也是我們以后的研究方向。附錄一:實(shí)物電路圖附件二:實(shí)物照片附錄三:程序清單/*This program was produced by theCodeWizardAVR V1.24.1d StandardAutomatic Program GeneratorCopyright 1998-2004 Pavel Haiduc, HP InfoTech s.r.l.http:/www.hpinfotech.roe-mail:officehpinfotech.roProject : LTPC-3500Version : 1.0Date : 2007

16、-6-1Author : HNHYLEI Company : HNGXY Comments: Chip type : ATmega128LProgram type : ApplicationClock frequency : 8.000000 MHzMemory model : SmallExternal SRAM size : 0Data Stack size : 128*/#include #include #include #include #include /-#define buzzer_led PORTB.0#define LED1 PORTD.0 #define LED2 POR

17、TD.1 #define LED3 PORTD.2 #define LED4 PORTD.3 #define lpwm_ff PORTB.4 #define lpwm_re PORTA.4 #define rpwm_ff PORTB.7 #define rpwm_re PORTA.5 #define black_l PINE.2#define black_r PINE.3#define metal_detect PINF.0#define model PINF.2/- 液晶#define uchar unsigned char #define rs PORTA.7#define rw PORT

18、B.5#define en PORTB.6#define ret PORTA.6/LCD數(shù)據(jù)數(shù)據(jù)口初始化 #define data PORTCuchar command,data1,data2,com0;uchar lcd_bufl,lcd_bufg;/定義顯示緩沖區(qū)/-/ Declare your global variables here/ This flag is set on USART0 Receiver buffer overflowbit left_run=0; /左走bit right_run=0; /右走bit left_ff=1; /左前進(jìn)bit right_ff=1; /

19、右前進(jìn) bit left_pwm; /用于左PWMbit right_pwm; /用于右PWM/-/-bit filter_start=0; /數(shù)字濾波bit filter_over=0; /數(shù)字濾波 bit black_l1=0; /左黑線1bit black_l2=0; /左黑線2bit black_r1=0; /右黑線1bit black_r2=0; /右黑線2 bit left_turn=0; /左轉(zhuǎn) bit right_turn=0; /右轉(zhuǎn)bit metal1=0; /金屬1bit metal2=0; /金屬2bit mode=0; /測(cè)試模式bit stop_point; /停車

20、點(diǎn)bit buzzer=0; /蜂鳴bit lcd_dsp=0; /LCD刷新 bit read_over; /bit gradient_set=0; /bit stop_status=0; /unsigned char speed_l; /left速度控制量unsigned char speed_r; /right速度控制量unsigned char filter_count; /數(shù)字濾波 unsigned char excute_step1; /unsigned char excute_step2; /unsigned int bcd_temp0=0; /BCD 入口 /-unsigned

21、 char count1=0; /秒計(jì)時(shí) unsigned char count2=0; /轉(zhuǎn)彎計(jì)時(shí)unsigned int count3=0; /停止時(shí)間計(jì)時(shí) unsigned int count4=0; /unsigned int count5=0; / unsigned int stop_time=0; /停止時(shí)間 unsigned int gradient=0; / unsigned int gradient2=0; / unsigned int gradient_old; /unsigned int gradient2_temp18; / unsigned int filter_te

22、mp150; /數(shù)字濾波 unsigned long int filter_sum; unsigned int filter_temp3;/-unsigned char j1,k1; /公共循環(huán)變量unsigned char bcd_temp5=0; /BCD分解值/-unsigned int ahead_time=0; /前進(jìn)時(shí)間 unsigned int back_time=0; /倒退時(shí)間 /EEPROM- /-void bcd_con(unsigned char numb);void clear_lcd();void lcd_int();void lcd_set();void disp

23、lay();void dis_code1(); void dis_code2(); void write_command(uchar command);void write_data(uchar data0); /- /-/ External Interrupt 0 service routine interrupt EXT_INT0 void ext_int0_isr(void)/ Place your code here / External Interrupt 4 service routine interrupt EXT_INT4 void ext_int4_isr(void) TCN

24、T3H=0x00; TCNT3L=0x00;/ External Interrupt 5 service routine interrupt EXT_INT5 void ext_int5_isr(void) if(filter_start=0) filter_temp1filter_count=(unsigned int)TCNT3H*0xff+(unsigned int)TCNT3L; filter_count+;if(filter_count=50) /60 filter_count=0; filter_start=1; if(filter_over=1)filter_over=0;gra

25、dient=filter_temp3; read_over=1; /-/ Timer 0 overflow interrupt service routineinterrupt TIM0_OVF void timer0_ovf_isr(void)/TCNT0=0x06;left_pwm=left_pwm;if(left_pwm=1) if(left_turn=1) TCNT0=255-(speed_l/2); else TCNT0=255-speed_l; else if(left_turn=1) TCNT0=speed_l/2; else TCNT0=speed_l; if(left_run

26、=1) if(left_pwm=1) if(left_ff=1) lpwm_ff=1; lpwm_re=0; else lpwm_ff=0; lpwm_re=1; else lpwm_ff=0; lpwm_re=0; else lpwm_ff=0; lpwm_re=0; /-/ Timer 1 overflow interrupt service routine interrupt TIM1_OVF void timer1_ovf_isr(void)/ Place your code hereTCNT1H=0xff; TCNT1L=0x06; /-前進(jìn)時(shí)間 if(+count1=128) co

27、unt1=0; if(excute_step1=0&excute_step2!=2) ahead_time+; if(excute_step1=2) back_time+; lcd_dsp=1; /- if(mode=1&ahead_time=128) count3=0; stop_time+; lcd_dsp=1; if( buzzer=1) buzzer_led=buzzer_led; LED1=LED1; LED2=LED2; LED3=LED3; LED4=LED4; else buzzer_led=1; LED1=1; LED2=1; LED3=1; LED4=1; if(stop_

28、time=5) stop_point=0; buzzer_led=1; /- 檢線停止if(mode=1)if(stop_status=0) if(+count4=35) count4=0; stop_status=1; if(stop_status=1) if(+count4=200) count4=0; stop_status=0; /- if(black_l=0) /左循跡 if(black_l1=1) black_l2=1; black_l1=1; else black_l1=0; black_l2=0; right_turn=0; count2=0; if( black_l2=1&r

29、ight_turn=0) right_turn=1; if(right_turn=1) if(+count2=150) count2=0; right_turn=0; /- if(black_r=0) /右循跡 if(black_r1=1) black_r2=1; black_r1=1; else black_r1=0; black_r2=0; count2=0; left_turn=0; if( black_r2=1&left_turn=0) left_turn=1; if(left_turn=1) if(+count2=150) count2=0; left_turn=0; /- /金屬傳

30、感器 if(metal_detect=0) if(metal1=1) metal2=1; metal1=1; else metal1=0; metal2=0; /-/ Timer 2 overflow interrupt service routine interrupt TIM2_OVF void timer2_ovf_isr(void)/ TCNT2=0xaf;right_pwm=right_pwm;if(right_pwm=1) if(right_turn=1) TCNT2=255-speed_r/2; else TCNT2=255-speed_r; else if(right_turn

31、=1) TCNT2=speed_r/2; else TCNT2=speed_r; if(right_run=1) if(right_pwm=1) if(right_ff=1) rpwm_ff=1; rpwm_re=0; else rpwm_ff=0; rpwm_re=1; else rpwm_ff=0; rpwm_re=0; else rpwm_ff=0; rpwm_re=0; /- / Timer 3 overflow interrupt service routine interrupt TIM3_OVF void timer3_ovf_isr(void)/ Place your code

32、 here/TCNT3H=0xff; / 液晶 /LCD初始化void lcd_int(void) ret=0; /PORTG=PORTG&0b11110111; delay_ms(2); ret=1; /PORTG=PORTG|0b00001000; delay_us(1); /psb=1;/將PSB置1,通信方式為8BIT數(shù)據(jù)并口 delay_us(1);/LCD功能設(shè)置void lcd_set(void) command=0x34;/功能設(shè)置-8BIT控制界面,擴(kuò)充指令集-這個(gè)可去掉 write_command(command); command=0x30;/功能設(shè)置-8BIT控制界面,

33、基本指令集 write_command(command); command=0x01;/清屏幕顯示,將DDRAM的地址計(jì)數(shù)器歸零 write_command(command); command=0x06;/DDRAM的地址計(jì)數(shù)器(AC)加1 write_command(command); command=0x0c;/顯示打開,光標(biāo)關(guān),反白顯示關(guān) write_command(command); /清屏程序void clear_lcd(void) command=0x01; write_command(command); command=0x34; write_command(command);

34、command=0x30; write_command(command); /寫指令程序void write_command(uchar command) delay_ms(5); rs=0; rw=0; data=command; en=1; delay_us(2); en=0;/寫數(shù)據(jù)程序void write_data(uchar data0) delay_ms(5); rs=1; rw=0; data=data0; en=1; delay_us(2); en=0; /LCD顯示程序void display(void) command=com0; write_command(command

35、); data2=lcd_bufl; data1=lcd_bufg; write_data(data1); data1=data2; write_data(data1); /-void bcd_con(unsigned char numb) if(numb=5)goto numb5; if(numb=4)goto numb4; if(numb=3)goto numb3; if(numb=2)goto numb2;numb5: bcd_temp4=bcd_temp0/10000; bcd_temp0=bcd_temp0%10000;numb4: bcd_temp3=bcd_temp0/1000;

36、 bcd_temp0=bcd_temp0%1000;numb3: bcd_temp2=bcd_temp0/100; bcd_temp0=bcd_temp0%100;numb2: bcd_temp1=bcd_temp0/10; bcd_temp0=bcd_temp0%10; /-void digit_filter(void)/unsigned char filter_temp4;unsigned int filter_temp2; for(j1=0;j129;j1+) /58 for(k1=j1+1;k1filter_temp1k1) filter_temp2=filter_temp1j1; f

37、ilter_temp1j1=filter_temp1k1; filter_temp1k1=filter_temp2; filter_sum=0; for(j1=10;j120;j1+) /49 filter_sum=filter_sum+filter_temp1j1; filter_temp3=filter_sum/10; filter_over=1; filter_start=0;/-/全角顯示/顯示代碼區(qū)void dis_code1(void) com0=0x81; /衡 lcd_bufl=0xe2; lcd_bufg=0xba; display(); com0=0x82; /陽(yáng) lcd_

38、bufl=0xf4; lcd_bufg=0xd1; display(); com0=0x83; /市 lcd_bufl=0xd0; lcd_bufg=0xca; display(); com0=0x84; /第 lcd_bufl=0xda; lcd_bufg=0xb5; display(); com0=0x85; /三 lcd_bufl=0xfd; lcd_bufg=0xc8; display(); com0=0x86; /屆 lcd_bufl=0xec; lcd_bufg=0xbd; display(); com0=0x93; /大 lcd_bufl=0xf3; lcd_bufg=0xb4;

39、 display(); com0=0x94; /學(xué) lcd_bufl=0xa7; lcd_bufg=0xd1; display(); com0=0x95; /生 lcd_bufl=0xfa; lcd_bufg=0xc9; display(); com0=0x89; /科 lcd_bufl=0xc6; lcd_bufg=0xbf; display(); com0=0x8A; /技 lcd_bufl=0xbc; lcd_bufg=0xbc; display(); com0=0x8B; /創(chuàng) lcd_bufl=0xb4; lcd_bufg=0xb4; display(); com0=0x8C; /新

40、 lcd_bufl=0xc2; lcd_bufg=0xd0; display(); com0=0x8D; /競(jìng) lcd_bufl=0xf3; lcd_bufg=0xb4; display(); com0=0x8E; /賽 lcd_bufl=0xfc; lcd_bufg=0xc8; display(); / void dis_code2(void) com0=0x80; /前 lcd_bufl=0xb0; lcd_bufg=0xc7; display(); com0=0x81; /進(jìn) lcd_bufl=0xf8; lcd_bufg=0xbd; display(); com0=0x82; /時(shí) l

41、cd_bufl=0xb1; lcd_bufg=0xca; display(); com0=0x83; /間 lcd_bufl=0xe4; lcd_bufg=0xbc; display(); com0=0x84; /全角 : lcd_bufl=0xba; lcd_bufg=0xa3; display(); com0=0x90; /停 lcd_bufl=0xa3; lcd_bufg=0xcd; display(); com0=0x91; /止 lcd_bufl=0xb9; lcd_bufg=0xd6; display(); com0=0x92; /時(shí) lcd_bufl=0xb1; lcd_bufg

42、=0xca; display(); com0=0x93; /間 lcd_bufl=0xe4; lcd_bufg=0xbc; display(); com0=0x94; /全角 : lcd_bufl=0xba; lcd_bufg=0xa3; display(); com0=0x88; /倒 lcd_bufl=0xb9; lcd_bufg=0xb5; display(); com0=0x89; /退 lcd_bufl=0xcb; lcd_bufg=0xcd; display(); com0=0x8a; /時(shí) lcd_bufl=0xb1; lcd_bufg=0xca; display(); com0

43、=0x8b; /間 lcd_bufl=0xe4; lcd_bufg=0xbc; display(); com0=0x8c; /全角 : lcd_bufl=0xba; lcd_bufg=0xa3; display(); com0=0x98; /傾 lcd_bufl=0xe3; lcd_bufg=0xc7; display(); com0=0x99; /斜 lcd_bufl=0xb1; lcd_bufg=0xd0; display(); com0=0x9a; /脈 lcd_bufl=0xf6; lcd_bufg=0xc2; display(); com0=0x9b; /寬 lcd_bufl=0xed; lcd_bufg=0xbf; display(); com0=0x9c; /全角 : lcd_bufl=0xba; lcd_bufg=0xa3; display(); /- /- void dis_code3(void) bcd_temp0=ahead_time; bcd_con(4); if(mode=0) com0=0x85; else com0=0x95; lcd_bufl=bcd_temp2+0x30;

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!