




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
出租車計價器課程設計摘要本設計的是一個基于單片機STC89C52的出租車自動計費設計,附有復位電路,時鐘電路,鍵盤電路等。復位電路是單片機的初始化操作,除了正常的初始化外,為擺脫困境,通過復位電路可以重新開始。時鐘電路采用12MHz的晶振,作為系統(tǒng)的時鐘源,具有較高的準確性。在上電時字符型液晶1602顯示最初的起步價,里程收費,等待時間收費三種收費,通過按鍵可以調(diào)整起步價,里程收費,等待時間收費。通過按鍵模擬出租車的運行,暫停,停止。在1602液晶上可以顯示運行的時間,運行時暫停的時間,通過計算可以得出總共的費用和總的路程。在這里主要是以STC89C52單片機為核心控制器,P1口接1602液晶顯示模塊。關鍵字STC89C52;1602液晶;出租車計費器#圖6鍵盤接口電路顯示電路3.4.11602LCD的基本參數(shù)及引腳功能1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應用中并無差別,兩者尺寸差別如圖7所示。LM016L結構圖LCD1602主要技術參數(shù):容量:16X2個字符芯片工作電壓:4.5—5.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.95X4.35(WXH)mm引腳功能說明:
1602LCD采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表1所示:表1引腳接口說明表編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負極第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第7?14腳:DO?D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負極。3.4.2顯示模塊采用1602液晶顯示接口電路3.5單片機各引腳功能說明下面對STC89C52各引腳的功能進行較為詳細的介紹:1)電源引腳Vcc和VssVcc(40腳):電源端為+5VVss(20腳):接地端。2)時鐘電路引腳XTAL1和XTAL2XTAL2(18腳):接外部晶體和微調(diào)電容的一端。在單片機內(nèi)部它是振蕩電路反向放大器的輸出端,振蕩電路的頻率就是晶體固有頻率。若需采用外部時針電路時,該引腳輸入外時鐘脈沖。要檢查89C52的振蕩電路是否正常工作,可用示波器查看XTAL2端是否有脈沖信號輸出。XTAL1(19腳):接外部晶體和微調(diào)電容的另一端。在片內(nèi),它是振蕩電路反向放大器的輸入端。在采用外部時鐘時,該引腳必須接地。3)控制信號腳RSTALEPSEN方EA。一RST(9腳):RST是復位信號輸入端,高電平有效。在此輸入端保持兩個機器周期(24個時鐘振蕩周期)的高電平時,就可以完成復位操作。ALE/PROGT30引腳):地址鎖存允許信號端。當STC89C52上電正常工作后,ALE引腳不斷向外輸出正脈沖信號。此頻率為振蕩器頻率fosc的1/6,當CPU訪問片外存儲器時,ALE輸出信號作為鎖存低8位地址的控制信號。在CPU訪問片外數(shù)據(jù)存儲時,每取值一次(一個機器周期)會丟失一個脈沖。平時不訪問片外存儲時,ALE端也以1/6的振蕩頻率固定輸出正脈沖,因而ALE信號可以用作對外輸出時鐘或定時信號。如果你想看一下STC89C52芯片的好壞,可用示波器查看ALE端是否有脈沖信號輸出,如有脈沖信號輸出,則STC89C52基本上是好的。ALE的負載驅動能力為8個LS型TTL(低功耗高速TTL)。PSEN(29腳);程序存儲允許輸出信號引腳,在訪問片外程序存儲器時,此端定時輸出負脈沖作為讀片外存儲器的選通信號。此引腳接ERRO的OE端。PSEN端有效,即允許讀出ERROM/ROM中的指令碼。CPU在從外部ERROM/ROM取指令期間,每個周期PSEN兩次有效。不過,在訪問片外RAM時,要少產(chǎn)生兩次PSEN負脈沖信號。要檢查一個STC89C52小系統(tǒng)上電后CPU能否正常到ERROM/ROM中讀取指令碼,也可用于示波器看PSEN端有無脈沖輸出。如有,說明基本上工作正常。EA/VPP(31腳):外部程序存儲器地址允許輸入端/固化編程電壓輸入端。當EA引腳接高電平時,CPU只訪問片內(nèi)ERROM/ROM并執(zhí)行內(nèi)部程序存儲器中的指令。但在PC(程序計數(shù)器)的值超過OFFFH(對8751/8051為4k)時,將自動轉向執(zhí)行片外存儲器的程序。當出入信號EA引腳接低電平(接地)時,CPU只訪問外部ERROM/ROM并執(zhí)行外部程序存儲器中的指令,而不管是否有片內(nèi)程序存儲器。對于無芯片內(nèi)的ROM的8031或8032,須外擴ERROM,此時必須將EA引腳接地。如果使用有片內(nèi)ROM的STC89C52,外擴ERROM也是可以的,但也要使EA接地。 一4)I/O(輸入/輸出端口,P0,P1,P2,P3)P0口:P0口是一個漏極開路的8位準雙向I/O端口。P1口:8位準雙向I/O端口。P2口:即可以做地址總線輸出地址高8位,也可以做普通I/O用,(此時為準雙向口)。P3口:雙功能口,即可以做普通I/O口用(此時為準向口,也可以按每位定義實現(xiàn)第二功能操作)。見表1。表2P3口的第二功能表
弓|月腳第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INTO(外部中斷0)P3.3INT1(外部中斷1)P3.4T0(定時器0外部中斷)P3.5T1(定時器1外部中斷)P3.6WR(外部存儲器寫選通)P3.7RD(外部存儲器讀寫通)第四章系統(tǒng)軟件設計4.1單片機資源使用在本次設計中像電路鍵盤用到了P2口,其中P2.0到P2.5口作為鍵盤的輸入,顯示電路用到了P1和P3口,P1口為液晶的數(shù)據(jù)口。4.2單片機軟件模塊設計中斷子函數(shù)對于中斷程序,只要定時器計數(shù)滿就會產(chǎn)生中斷50ms中斷一次,共計20次,秒鐘加1,秒鐘計滿再分鐘加,當分鐘加到99時全部清零。以下是中斷子函數(shù)的流程圖如圖9所示:圖9中斷子程序流程圖4.2.2判鍵子函數(shù)對于獨立式鍵盤判鍵,首先看有鍵按下不,如果有鍵按下則延時一會兒,在判斷是否真的有鍵按下,如果確實有鍵按下,在判鍵釋放,最后執(zhí)行鍵功能程序。判鍵子函數(shù)的流程框圖如圖10所示:圖10判鍵子程序流程圖4.2.3顯示子程序1602液晶是字符型液晶,它的內(nèi)部自帶字符庫,它可以寫兩行的字符,同時每行可以寫40個字符,在寫顯示程序的時候,我們先寫命令,再設定字符顯示,最后寫數(shù)據(jù),在每寫一次命令或數(shù)據(jù)都需要判斷液晶是否忙。液晶顯示程序流程圖如圖H所示:4.3總程序流程框圖整體程序的流程框圖如圖12所示:圖12整體程序的流程框圖第五章系統(tǒng)調(diào)試過程本設計需要用KeiluVision2對C51程序進行編譯,生成“.hex”文件,如下圖:t■ -[DXCticirrenlslTwtl.c]FilaEdit好日抑projectBgbugFl及hPe而herals[白白巾別CSWindowHelp虞口。丁電闿oc序率為陶%I 刁青憎慢|段|麗|電曲燈則上圖2、lurpt1 'PTarg?t1if(ERa_2Dfln3二1)J-0;il[3KIUL_1"0)rmd_:aI)f“打上模式//白天捏M:laaJjii_fciE±*1;“打上模式//白天捏M:laaJjii_fciE±*1;eLse:laaJjii_fciE±*0;尸皿ii*i定閡1器口中斷展毒程舉,223土"voiildtetJ.in工口iarsr上年[1(.starlcuchaE?value;IBO=mgm=由M; 05flri3“1UEH";IE;由L黑i4=?]Elig_2DDn5-1;iftral^V20|[flia_i3,1?viLui=0;圖13KeiluVision2對C51程序進行編譯在Proteus軟件中畫出仿真電路(如圖),把KeiluVision2編譯后生成的“.hex”導入到單片機中,按“運行仿真”鍵進行仿真。圖14仿真圖第六章設計的效果(實物圖或仿真效果圖)LCD!Unmg溫二皿?.■I:川:mLine-gel2.bJi-L^nshu-spL圖15仿真效果圖第七章結論總結作為一名電信專業(yè)的大三學生,我覺得做單片機課程設計是十分有意義的,而且是十分必要的。在已度過的大學時間里,我們大多數(shù)接觸的是專業(yè)課。我們在課堂上掌握的僅僅是專業(yè)課的理論知識,如何去鍛煉我們的實踐能力?如何把我們所學的專業(yè)基礎課理論知識運用到實踐中去呢?我想做類似的課程設計就為我們提供了良好的實踐平臺。單片機作為我們的主要專業(yè)課之一,雖然在大三開學初我對這門課并沒有什么興趣,覺得那些程序枯燥乏味,但在這次課程設計后我發(fā)現(xiàn)自己在一點一滴的努力中對單片機的興趣也在逐漸增加。通過這次設計,我懂得了學習的重要性,了解到理論知識與實踐相結合的重要意義,學會了堅持、耐心和努力,這將為自己今后的學習和工作做出了最好的榜樣。我覺得作為一名電信專業(yè)的學生,單片機的課程設計是很有意義的。更重要的是如何把自己平時所學的東西應用到實際中。雖然自己對于這門課懂的并不多,很多基礎的東西都還沒有很好的掌握,覺得很難,也沒有很有效的辦法通過自身去理解,但是靠著這一個多禮拜的“學習”,在小組同學的幫助和講解下,漸漸對這門課逐漸產(chǎn)生了些許的興趣,自己開始主動學習并逐步從基礎慢慢開始弄懂它。我認為這個收獲應該說是相當大的。覺得課程設計反映的是一個從理論到實際應用的過程,但是更遠一點可以聯(lián)系到以后畢業(yè)之后從學校轉到踏上社會的一個過程。小組人員的配合、相處,以及自身的動腦和努力,都是以后工作中需要的。參考文獻[1]李廣弟,朱月秀,冷祖祁.單片機基礎[M].第3版.北京航空航天大學出版社,2007年1月[2]李華.MCS-51系列單片機實用接口技術[M].北京航空航天大學出版社,1996[3]馬忠梅,張凱,馬巖,單片機的C語言應用程序設計,[M],北京:北京航空航天大學出版社,2003.11;[4]胡輝,單片機原理及應用設計一21世紀高等院校規(guī)劃教材[M],水利水電出版社,2005.7;[5]劉守義,單片機應用技術[M],西安:西安電子科技大學出版社,1996.8;致謝本課程設計是在石蕊老師的悉心指導下完成的,石老師的淵博學識和豐富經(jīng)驗給我留下了深刻的印象。從石老師那里我學到的不僅是專業(yè)知識與實際問題科學解決的方法,更為重要的是勤奮和嚴謹治學的精神以及對學生的認真負責,老師的諄諄教誨使我受益匪淺,在此向石老師表示衷心的感謝并致以崇高的敬意!感謝家人給予我學業(yè)上和生活上的支持與照顧。同時感謝給予我?guī)椭母魑焕蠋煛⑼瑢W以及朋友們!附錄1程序清單#include<reg52.h> //調(diào)用單片機頭文件#defineucharunsignedchar//無符號字符型宏定義變量范圍0~255#defineuintunsignedint //無符號整型宏定義變量范圍0~65535ucharmiao,fen=0,shi;ucharflag_bai_hei;ucharmiao,fen=0,shi;ucharflag_bai_hei;ucharvalue;uintbai_3l_price=60;uintbai_3w_price=18;uintbai_wait_price=5;uintwan_3l_price=70;uintwan_3w_price=22;uintwan_wait_price=10;uintdistance=0;//白天的晚上的標志位//白天3千米內(nèi)的單價6元//白天3千米外的單價/千米1.8元//白天等待時的單價/分鐘0.5元//晚上3千米內(nèi)的單價/千米7元//晚上3千米外的單價/千米2.2元//晚上等待時的單價/分鐘1元//行使的距離uintzong_jia; //總的價bitflag_300ms=0;bitflag_1s;bitflag_time_en=0;#include"lcd1602.h/***********************1ms延時函數(shù)*****************************/voiddelay_1ms(uintq){uinti,j;for(i=0;i<q;i++)for(j=0;j<120;j++);#include"iic.h"voidwrite_iic_data(){write_24c02(0,flag_bai_hei);write_24c02(1,bai_3l_price% 256); //保存數(shù)據(jù)write_24c02(2,bai_3l_price/ 256); //保存數(shù)據(jù)write_24c02(3,bai_3w_price% 256); //保存數(shù)據(jù)write_24c02(4,bai_3w_price/ 256); //保存數(shù)據(jù)write_24c02(5,bai_wait_price%256); //保存數(shù)據(jù)write_24c02(6,bai_wait_price/256); //保存數(shù)據(jù)write_24c02(7,wan_3l_price% 256); //保存數(shù)據(jù)write_24c02(8,wan_3l_price/ 256); //保存數(shù)據(jù)write_24c02(9,wan_3w_price% 256); //保存數(shù)據(jù)write_24c02(10,wan_3w_price/256); //保存數(shù)據(jù)write_24c02(11,wan_wait_price%256); //保存數(shù)據(jù)write_24c02(12,wan_wait_price/256); //保存數(shù)據(jù)}/****************自動初始化保存的數(shù)據(jù)*******************/voidzidong_chushifa_iic(){value=read_24c02(200);value=read_24c02(200);if(value!=0x91) //新的單片機初始單片機內(nèi)問EEPOM{value=0x91;write_iic_data();write_24c02(200,value); //保存數(shù)據(jù)}delay_1ms(300);/****************讀出來保存的數(shù)據(jù)**********************/voidread_iic_data(){flag_bai_hei=read_24c02(0);bai_3l_price=read_24c02(2);bai_3l_price=bai_3l_price*256+read_24c02(1);bai_3w_price=read_24c02(4);bai_3w_price=bai_3w_price*256+read_24c02(3);bai_wait_price=read_24c02(6);bai_wait_price=bai_wait_price*256+read_24c02(5);wan_3l_price=read_24c02(8);wan_3l_price=wan_3l_price*256+read_24c02(7);wan_3w_price=read_24c02(10);wan_3w_price=wan_3w_price*256+read_24c02(9);wan_wait_price=read_24c02(12);wan_wait_price=wan_wait_price*256+read_24c02(11);}/****************獨立按鍵處理函數(shù)************************/#definekey_ioP2ucharkey_can;voidkey(){staticucharkey_new=0,key_old=0,key_value=0;key_io|=0x3f;if(key_new==0) //按鍵松開{if((key_io&0x3f)==0x3f)key_value++;elsekey_value=0;if(key_value>=5) //按鍵松開松手檢測{key_value=0;key_new=1;//按鍵松開后進入等待按鍵狀態(tài)}}else{if((key_io&0x3f)!=0x3f)//按鍵按下key_value++;elsekey_value=0;if(key_value>=5) //按鍵按下消抖{key_value=0;key_new=0; //按鍵松開后進入等待松開按鍵狀態(tài)}}key_can=20;if((key_new==0)&&(key_old==1)){switch(key_io&0x3f){case 0x3e: key_can = 1; break; //得到按鍵值case 0x3d: key_can = 2; break; //得到按鍵值case 0x3b: key_can = 3; break; //得到按鍵值case 0x37: key_can = 4; break; //得到按鍵值case 0x1f: key_can = 5; break; //得到按鍵值case 0x2f: key_can = 6; break; //得到按鍵值}//write_sfm2(2,0,key_can);//按鍵按下顯示按鍵值}
key_old=key_new;#include"menu.h"/*********************對應菜單內(nèi)的處理函數(shù)******************/voidmenu_dis(){if(menu_1==0){if(key_can==6){distance++;write_sfm4(1,0,distance);}//清零從新計價if(key_can==5){//清零從新計價flag_time_en=flag_time_en=shi=0;0;fen=0;miao=0;zong_jia=0;distance=0;}if(key_can==2){flag_time_en~flag_time_en;}if(flag_300ms==1){flag_300ms=0;if(distance<=30)//3公里內(nèi)的價格{if(flag_bai_hei==0){if(fen<=3)zong_jia=bai_3l_price;elsezong_jia=bai_3l_price+(shi*60+fen-3)*bai_wait_price;}else{if(fen<=3)zong_jia=wan_3l_price;elsezong_jia=wan_3l_price+(shi*60+fen-3)*bai_wait_price;}}else //3公里外的價格{if(flag_bai_hei==0){if(fen<=3)zong_jia=bai_3l_price+bai_3w_price*(distance-30)/10;elsezong_jia=bai_3l_price+bai_3w_price*(distance-30)/10+(shi*60+fen-3)*bai_wait_price;}else{if(fen<=3)zong_jia=wan_3l_price+wan_3w_price*(distance-30)/10;elsezong_jia=wan_3l_price+wan_3w_price*(distance-30)/10+(shi*60+fen-3)*wan_wait_price;}}if(flag_bai_hei==0)write_sfm2_dian(2,9,bai_3w_price);elsewrite_sfm2_dian(2,9,wan_3w_price);write_sfm2(2,0,shi);w
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- MRS2905-trisodium-a-β-Methylene-2-thio-UDP-trisodium-生命科學試劑-MCE
- JD118-生命科學試劑-MCE
- Difelikefalin-acetate-CR-845-acetate-生命科學試劑-MCE
- 5-6-7-8-Tetrahydro-2-quinolone-NSC-99006-生命科學試劑-MCE
- 1S-3S-3-Aminomethyl-cyclopentanol-生命科學試劑-MCE
- 銷售手機購銷合同范本
- 房產(chǎn)簽約合同范本
- 支模合同范本
- 場地合同協(xié)議書(18篇)
- 租房合同范本 門面
- 土建、裝飾、維修改造等零星工程施工組織設計技術標
- 高速公路養(yǎng)護作業(yè)安全培訓內(nèi)容
- 2024年江蘇經(jīng)貿(mào)職業(yè)技術學院單招職業(yè)適應性測試題庫
- 《大白菜種植栽培技》課件
- 北京工業(yè)大學《數(shù)據(jù)挖掘》2023-2024學年第一學期期末試卷
- 2024年物聯(lián)網(wǎng)安裝調(diào)試員(中級工)職業(yè)資格鑒定考試題庫(含答案)
- 標準化機房改造方案
- 珠海市第三人民醫(yī)院中醫(yī)智能臨床輔助診療系統(tǒng)建設方案
- 早產(chǎn)臨床診斷與治療指南
- 工程簽證單完整版
- 《義務教育數(shù)學課程標準(2022年版)》初中內(nèi)容解讀
評論
0/150
提交評論