智能尋跡小車的研究與開發(fā)_第1頁
智能尋跡小車的研究與開發(fā)_第2頁
智能尋跡小車的研究與開發(fā)_第3頁
智能尋跡小車的研究與開發(fā)_第4頁
智能尋跡小車的研究與開發(fā)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、材料清單一、 研究報(bào)告1. 項(xiàng)目成果簡介2. 項(xiàng)目研究背景和意義3. 研究計(jì)劃4. 研究內(nèi)容5. 成果創(chuàng)新點(diǎn)6項(xiàng)目研究展望二、附件材料附件一:實(shí)物電路圖附件二:實(shí)物照片附件三:源程序清單三、實(shí)物作品衡陽市第三屆大學(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)目成果簡介本項(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)線、智能倉儲(chǔ)管理及物流配送等領(lǐng)域,當(dāng)生產(chǎn)現(xiàn)場環(huán)境惡劣時(shí),人工不能完成的任務(wù)如物料運(yùn)輸和裝卸等,可采用智能尋跡小車

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

4、07年9月10日-2008年3月6日,完成成果總結(jié)。四、研究內(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)場可編輯門列陣)作為系統(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)槲諢彷椛淠芰恳鸬模c吸收紅外輻射的波長沒有關(guān)系,即對(duì)紅外輻射吸收沒有波長的選擇。但熱探測(cè)器對(duì)其吸收的紅外輻射波長沒有選擇性,受外界環(huán)境的影響比較大。 方案二;采用光電探測(cè)器。光電探測(cè)器接收紅外輻射后,由于紅外光子直接把材料的束縛態(tài)電子激發(fā)成傳導(dǎo)電子,由此引起電信號(hào)輸出,信號(hào)大小與所吸收的光子數(shù)成比例。且這些紅外光子的能量的大小(即紅外光還必須滿足一定的波長范圍),必須滿足一定的要求,才能激發(fā)束縛電子,起激發(fā)作用。光電探測(cè)器吸收的光子必須滿足一定的波長,否則不能被吸收,所以受外界影響比較小,抗干擾比較強(qiáng)?;谏厦娣治觯覀儾捎梅桨付?.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è)金屬片就可以了,電路簡單、程序采用中斷的方式不會(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)是控制比較簡單,而且串行顯示只占用很少的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ù)電磁場理論可知,在受到變化的電磁場作用的任何導(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)速,非常簡單且調(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)簡單、穩(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; /陽 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; /新 lcd_bufl=0xc2; lcd_bufg=0xd0; display(); com0=0x8d; /競 lcd_bufl=0xf3; lcd_bufg=0xb4; display(); co

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論