畢業(yè)設計(論文)基于PIC單片機的出租車計費系統(tǒng)_第1頁
畢業(yè)設計(論文)基于PIC單片機的出租車計費系統(tǒng)_第2頁
畢業(yè)設計(論文)基于PIC單片機的出租車計費系統(tǒng)_第3頁
畢業(yè)設計(論文)基于PIC單片機的出租車計費系統(tǒng)_第4頁
畢業(yè)設計(論文)基于PIC單片機的出租車計費系統(tǒng)_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于pic單片機的出租車計費系統(tǒng)摘要本系統(tǒng)由單片機pic16f877a和一些外圍原件組成,具有操作簡單,顯示明了,功能強大的特點。整個系統(tǒng)只有兩個按鍵,一個“啟動/停止”,一個“復位”; 使用tg12864e 液晶模組作為顯示器,可以顯示數(shù)字、字母、中文、圖片等,使系統(tǒng)信息一目了然;本系統(tǒng)除了里程統(tǒng)計和費用計算以外,還具有萬年歷和語音播報功能。萬年歷由時鐘芯片pcf8563實時提供時鐘信號,再由單片機調(diào)用顯示;語音播報由語音芯片isd1420提供語音信息,語音信息放在不同的地址里,由單片機從這些地址中調(diào)用合適的語音進行播放。本方案充分發(fā)揮人性化的特點,利用isd1420的語音功能,配合tg12

2、864液晶模組,模擬實現(xiàn)帶語音提示的出租車計價系統(tǒng)。比較真實地模擬出租車的空車、載客、到站及對各狀況的費率的計算、統(tǒng)計、顯示和語音播報等功能。本系統(tǒng)涉及到的理論知識有: pic單片機知識、lcd液晶顯示器的工作原理和使用方法、可擦、寫的語音芯片的工作原理及應用、實時時鐘芯片的工作原理及應用、 出租車計費系統(tǒng)的原理和實現(xiàn)方法、 proteus仿真原理及實際應用。本系統(tǒng)提高同學們用c語言編寫程序的能力、單片機應用系統(tǒng)設計綜合能力的訓練、培養(yǎng)同學們分析問題和解決問題的能力、對同學們的招聘以及參加工作均有幫助。該系統(tǒng)稍加改進,可以成為一套真正的實用的計費系統(tǒng)。 關(guān)鍵詞:時鐘芯片pcf8563 語音芯片

3、isd1420 tg12864液晶模組 lcd液晶顯示器目錄摘要1第一章 系統(tǒng)總體介紹 21系統(tǒng)組成及功能框圖32里程計量及費用計算功能33語音播放功能44中文菜單顯示功能45實時時鐘功能56按鍵功能57系統(tǒng)電路設計原理圖6第二章 硬件設計71主程序/cpu模塊72語音播放模塊 83液晶顯示驅(qū)動模塊 94脈沖發(fā)生器模塊 115時鐘模塊 126按鍵掃描模塊 14第三章 系統(tǒng)程序設計 121系統(tǒng)主程序流程框圖 152里程和費率計算程序流程圖 183鍵盤處理程序流程圖 19結(jié)束語19致謝21參考文獻21附件21第一章系統(tǒng)總體介紹1.系統(tǒng)組成此出租車計費系統(tǒng)以單片機為系統(tǒng)核心,利用pic16f877單

4、片機配合tg12864液晶模組及isd1420語音模塊等,實現(xiàn)基本的出租車計價器功能。本系統(tǒng)是由pic單片機、液晶顯示模塊、計數(shù)脈沖發(fā)生器、系統(tǒng)實時時鐘及語音等模塊組成。系統(tǒng)框圖如圖(1)所示:2.系統(tǒng)各部分功能:里程計量功能a)單片機對傳感器輸出脈沖進行計數(shù),并將脈沖數(shù)換算成公里數(shù);b)每一個脈沖代表輪胎旋轉(zhuǎn)一周,設輪胎的直徑為520mm,輪胎的周長為:(即每轉(zhuǎn)一圈的距離)520x3.14159=1634mm=1.634m c)每公里的脈沖數(shù):pulseperkm=1000m/1.634m=612(個脈沖) 費用計算功能(參照廣州市出租車收費標準)費用計算包括三部分:起步費、行使費和燃油附加

5、費:a)起步費用(startprice) 當行駛里程(runmilege)在2.3km(含2.3km)以內(nèi)按起步價(startprice)7元計費。即行使費用(runprice)為: runprice = startprice + 1 = 8(元)b) 行使費用(runprice)-行使費用分短途與長途兩種情況:.當行駛里程(runmilege)超出2.3km時并且小于35km時,按2.6元/km收費,這時行駛費用為:runprice=startprice+2.6(runmilege-startmilege)+1 其中:startprice為起步價=7元 startmilege為起步里程=2.

6、3kmrunmilege為行使里程(總行使里程)runprice為行使費用(總行使金額).當行使里程超過35km后,要加空駛費,即每公里升至3.50元, 這時行駛費用為:runprice=startprice+3.5(runmilege-startmilege)+1c) 燃油附加費-每車次加收一元。語音播放功能.當初次按下“startstop”鍵,出租車開始啟動,系統(tǒng)播放“您好!歡迎乘坐本公司出租汽車,謝謝!”播送完畢,計費器開始計費。.按下“speedup”鍵,出租車加速行使,最高速為100km。.按下“speeddown”鍵,出租車減速行使,最低速為0km。.在行使狀態(tài)下,按下“start

7、stop”鍵,表示出租車到站,結(jié)束行使。這時候,系統(tǒng)播放“您好!行使里程xxx公里,應付xxx元,請檢查您的隨身物品,歡迎再次乘坐,再見!”的提示音。.按下“reset”鍵,進入空車狀態(tài)。 中文菜單顯示功能.在空車狀態(tài)下(啟動前),lcd屏幕上顯示如下的中文信息:.在空車狀態(tài)下,按下“startstop”鍵,系統(tǒng)播放“您好!歡迎乘坐本公司出租汽車,謝謝!”的提示音,同時在lcd屏幕上顯示如下的中文信息:.播完提示音后,進入行使狀態(tài),lcd屏幕顯示以下信息:.在行使狀態(tài),按下“speedup”鍵,里程顯示的公里數(shù)增加的速度會不斷的變快,金額數(shù)值也在作相應的變化。按下“speeddown”鍵,里程

8、顯示的公里數(shù)增加的速度會不斷的變慢。.在行使狀態(tài),按下“startstop”鍵,表示出租車到站,結(jié)束行程。這時屏幕顯示以下信息: 同時,系統(tǒng)播放“您好!行使里程xxx.xx公里,應付xxx.xx元,請檢查您的隨身物品,歡迎再次乘坐,再見!”的提示音。實時時鐘功能本系統(tǒng)采用兩種方法實現(xiàn)日歷時鐘:(1)用實時時鐘芯片fc8563作為時鐘電路,產(chǎn)生年月日時分秒等信號,供系統(tǒng)調(diào)用。(2)用單片機中斷的方法產(chǎn)生年月日時分秒等信號。(3)兩種方法由同學自行選擇。本系統(tǒng)設置4個按鍵,各個按鍵的功能如下:(1)“startstop”鍵開始進入行使/結(jié)束行使(到站)。(2)“speedup”鍵行使加速按鍵。按下

9、次按鍵,可使出租車的速度由0km上升到100km。(3)“speeddown”鍵-行使減速按鍵。按下次按鍵,可使出租車的速度由100k下降到0km。(4)“reset”鍵-進入空車狀態(tài)。電路設計原理圖第二章 硬件設計: 主程序/cpu模塊 主程序/cpu電路圖及說明該模塊主要包括系統(tǒng)初始化、pwm計數(shù)脈沖的產(chǎn)生、里程的識別和費率的計算及各功能模塊的的組織和管理等。主程序模塊在系統(tǒng)中起著重要的作用。pic16f877主要性能:具有高性能risc cpu。具有25條單字指令。除程序分支指令為兩個周期外,其余均為單周期指令。運行速度:dc-20mhz時鐘輸入 dc-200ns指令周期8k*14個fl

10、ash程序存儲器368*8個數(shù)據(jù)存儲器(ram)字節(jié)256*8eeprom數(shù)據(jù)存儲器字節(jié)引腳輸出和pic16c73b/74b/76/77兼容中斷能力(達到14個中斷源)8級深度的硬件堆棧直接,間接和相對尋址方式上電復位(por)上電定時器(pwrt)和振蕩啟動定時器(ost)監(jiān)視定時器(wdt),它帶有片內(nèi)可靠運行的rc振蕩器可編程的全碼保護低功耗睡眠方式可選擇的振蕩器低功耗、高速cmos flash/eeprom工藝全靜態(tài)設計要線串行編程(icsp)單獨5v的內(nèi)部電路串行編程(icsp)能力,處理機讀/寫訪問程序存儲器運行電壓范圍2.0v到5.5v高吸入/拉出電流25ma商用,工業(yè)用溫度范圍

11、低功耗:在5v,4mhz時典型值小于2ma在3v,32khz時典型值小于20ua典型的穩(wěn)態(tài)電流值小于1ua外圍特征:timer0:帶有預分頻器的8位定時/計數(shù)器timer1:帶有預分頻的16位定時器/計數(shù)器,在使用外部晶體振蕩時鐘時,在sleep期間仍能工作。timer2:帶有8位分頻寄存器,預分頻器和后分頻器的8位定時器/計數(shù)器2個捕捉器,比較器,pwm模塊其中:捕捉器是16位,最大分辯率為12.5ns 比較器是16位,最大分辯率方200ns pwm最大分辯率為是10位10位多通道模/數(shù)轉(zhuǎn)換器帶有spi(主模式)和i2c(主/從)模式的ssp帶有9位地址探測的通用同步異步接收/發(fā)送器(usa

12、rt/sci)帶有rd,wr和cs控制(只40/44引腳)8位字寬的并行從端口帶有降壓復位的降壓檢測電路 語音播放模塊 語音播放模塊電路圖及說明:語音播放模塊播放提示音,行駛里程、費用等。isd1420系列單片錄放時間8至20秒,音質(zhì)好。芯片采用cmos技術(shù),內(nèi)含震蕩器、話筒前置放大、自動增益控制、防混淆濾波器、平滑濾波器、揚聲器驅(qū)動及eeprom陣列。最小的錄放系統(tǒng)僅需麥克風、喇叭、兩個按鈕、電源及少數(shù)電阻電容。在錄放操作結(jié)束后,芯片自動進入低功耗節(jié)電模式、功耗僅0.5ua。isd1420系列有唯一的錄音控制和邊緣/電平觸發(fā)兩種放音控制。不分段時外圍線路最簡,也可按最小段長為單位任意組合分段

13、,芯片提供若干操作模式,大大提高了控制的靈活性。芯片采用多電平直接模擬量存儲專利技術(shù),每個采樣直接存儲在片內(nèi)單個eeprom單元中,因此能夠非常真實、自然地再現(xiàn)語音、音樂、音調(diào)各效果,避免了一般固體錄音電路因量化和壓縮造成的量化噪聲和“金屬聲”。采樣頻率從5.3,6.4到8.0khz,對音質(zhì)僅有輕微影響。片內(nèi)信息可保存100年(無需后備電源),eeprom單片可反復錄音十萬次。 液晶顯示驅(qū)動模塊液晶顯示驅(qū)動模塊電路圖及說明:tg12864e 是一種圖形點陣液晶顯示器,它主要由行驅(qū)動器/列驅(qū)動器及12864 全點陣液晶顯示器組成??赏瓿蓤D形顯示,也可以84 個(1616 點陣)漢字。主要技術(shù)參數(shù)

14、和性能:電源:vdd:+2.7 +5v; 模塊內(nèi)自帶-10v負壓,用于lcd的驅(qū)動電壓。 顯示內(nèi)容:128(列)64(行)點全屏幕點陣 七種指令 與cpu接口采用8 位數(shù)據(jù)總線并行輸入輸出和8 條控制線 占空比1/64 工作溫度:-10+60,儲存溫度:-20+70,可選擇寬溫:-20+70.外形尺寸圖:.模塊主要硬件構(gòu)成說明:. 模塊的外部接口:.tg12864el 串口接線方式:脈沖發(fā)生器模塊 脈沖性生器模塊電路圖及說明:(如下圖) ne555定時器具有定時精度高、工作速度快、可靠性好、電源電壓范圍寬(3-18v)、輸出電流大(可高達200ma)等優(yōu)點,可組成各種波形的脈沖振蕩電路、定時延

15、時電路、是一種電路結(jié)構(gòu)簡單、使用方便靈活、用途廣泛的多功能中規(guī)模集成電路。只需在外部配接適當?shù)淖枞菰?,便可組成施密特觸發(fā)器、單穩(wěn)態(tài)觸發(fā)器和多諧振蕩器等多種應用電路,在這個電路中是多諧振蕩器,它電路簡單、性能穩(wěn)定,波形標準。該模塊完成傳感器脈沖計量,然后轉(zhuǎn)換為公里數(shù),并根據(jù)規(guī)則計算對應的費用。同時,監(jiān)測行駛速度,統(tǒng)計低速時間,計算低速等待費用,提供液晶顯示更新函數(shù),以便主函數(shù)可以控制更新用戶界面以及行駛里程、費用等信息的顯示。該模塊包括pwm管理程序、里程計量程序、時間管理程序、費用管理程序、用戶界面控制程序等部分。時鐘模塊 時鐘模塊電路圖及說明:pcf8563 是低功耗的cmos 實時時鐘日

16、歷芯片,它提供一個可編程時鐘輸出,一個中斷輸出和掉電檢測器,所有的地址和數(shù)據(jù)通過i2c 總線接口串行傳遞。最大總線速度為400kbits/s,每次讀寫數(shù)據(jù)后,內(nèi)嵌的字地址寄存器會自動產(chǎn)生增量。 特性:* 低工作電流:典型值為0.25a(vdd=3.0v,tamb=25時)。* 世紀標志* 大工作電壓范圍:1.05.5* 低休眠電流;典型值為0.25a(vdd=3.0v,tamb=25)* 400khz 的i2c 總線接口(vdd=1.85.5v 時)。* 可編程時鐘輸出頻率為:32.768khz,1024hz,32hz,1hz。* 報警和定時器。* 掉電檢測器。* 內(nèi)部集成的振蕩器電容。* 片

17、內(nèi)電源復位功能。* i2c 總線從地址:讀,0a3h;寫,0a2h。* 開漏中斷引腳。管腳配置功能描述:pcf8563 有16 個位寄存器:一個可自動增量的地址寄存器,一個內(nèi)置32.768khz 的振蕩器(帶有一個內(nèi)部集成的電容),一個分頻器(用于給實時時鐘rtc 提供源時鐘),一個可編程時鐘輸出,一個定時器,一個報警器,一個掉電檢測器和一個400khz i2c總線接口。所有16 個寄存器設計成可尋址的8 位并行寄存器,但不是所有位都有用。前兩個寄存器(內(nèi)存地址00h,01h)用于控制寄存器和狀態(tài)寄存器,內(nèi)存地址02h08h 用于時鐘計數(shù)器(秒年計數(shù)器),地址09h0ch 用于報警寄存器(定義

18、報警條件),地址0dh 控制clkout 管腳的輸出頻率,地址0eh 和0fh 分別用于定時器控制寄存器和定時器寄存器。秒、分鐘、小時、日、月、年、分鐘報警、小時報警、日報警寄存器,編碼格式為bcd,星期和星期報警寄存器不以bcd 格式編碼。當一個rtc 寄存器被讀時,所有計數(shù)器的內(nèi)容被鎖存,因此,在傳送條件下, 可以禁止對時鐘日歷芯片的錯讀。pcf8563 硬件時鐘描寫模塊:最大總線速度為400kbits/s,每次讀寫數(shù)據(jù)后,內(nèi)嵌的字地址寄存器會自動產(chǎn)生增量。 *400khz 的i2c 總線接口(vdd=1.85.5v 時) *可編程時鐘輸出頻率為:32.768khz,1024hz,32hz

19、,1hz。 *報警和定時器。 *開漏中斷引腳。 *i2c 總線從地址:讀0a3h;寫0a2h。 地址 寄存器名稱 00h 控制/狀態(tài)寄存器 01h 控制/狀態(tài)寄存器 0dh clkout 頻率寄存器 0eh 定時器控制寄存器 0fh 定時器倒計數(shù)數(shù)值寄存器 地址 寄存器名稱 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 02h 秒 vl 0059bcd 碼格式數(shù) 03h 分鐘 - 0059bcd 碼格式數(shù) 04h 小時 - - 0059bcd 碼格式數(shù) 05h 日 - - 0131bcd 碼格式數(shù) 06h 星期 - - - - - 06 07h 月/世紀 c

20、- - 0112 bcd 碼格式數(shù) 08h 年 0099 bcd 碼格式數(shù) 09h 分鐘報警 ae 0059 bcd 碼格式數(shù) 0ah 小時報警 ae - 0023 bcd 碼格式數(shù) 0bh 日報警 ae - 0131 bcd 碼格式數(shù) 0ch 星期報警 ae - - - - 06 操作舉例*進入extclk 測試模式;設置控制狀態(tài)寄存器的位(test=1)。*設置控制狀態(tài)寄存器的位(stop=1)。 *清除控制狀態(tài)寄存器的位(stop=0)。*設置時間寄存器(秒、分鐘、小時、日、星期、月世紀和年)為期望值。 *提供32 個時鐘脈沖給clkout。 *讀時間寄存器觀察第一次變化。 *提供64

21、個時鐘脈沖給clkout。 *讀時間寄存器觀察第二次變化;需要讀時間寄存器的附加增量時,重復步驟和。按鍵掃描模塊: 按鍵掃描模塊電路圖及說明:整個系統(tǒng)只有兩個按鍵,一個“啟動/停止”,一個“復位”;本模塊功能:掃描按鍵功能,返回掃描結(jié)果。第三章 系統(tǒng)程序設計本系統(tǒng)程序由c語言編寫,編譯軟件是mplab ide 和一個外掛的pic的c語言編譯軟件picc 。 1.系統(tǒng)主程序流程框圖(含程序):/*/主程序開始/*void main() initial(); init(); lcm_init(); initi2c(); count = 0; runmilege=0; flag = 0; play_

22、fg1 = 0; play_fg2 = 0;/*/轉(zhuǎn)換為圖形方式/* write_inst(0x34); write_inst(0x36); clear_picture_fast(); display_picture1();/顯示一幅個性化圖片 delay(100);/*/轉(zhuǎn)換為文本方式/* write_inst(0x30); write_inst(0x0c); write_inst(0x01); write_inst(0x06);/*/顯示一幅個人信息/* disp_log1(); delay(200); write_inst(0x01);/*/主程序循環(huán)開始/* while(1) if(m

23、ode=0)/模式0: 顯示空車狀態(tài) inte = 0; count = 0; kongche(); else if(mode=1)/模式1: if(!flag)/標志位為0時 inte = 0;/禁止中斷產(chǎn)生 write_inst(0x01); yingke(); /顯示歡迎界面 play(17,50);/播放“您好” play(18,5); /播放“歡迎” play(25,100);/播放“乘坐本公司出租汽車” delay(200); flag = 1; write_inst(0x01); else/標志位為1時 inte = 1;/允許產(chǎn)生中斷 price();/里程和費率計算 zaik

24、e();/進入載客界面 else if(mode=2)/模式2: inte = 0;/禁止中斷產(chǎn)生 if(!play_fg1)/標志位為0時 daozhan();/進入到站界面 play(21,60); /播放“車已到站” delay(50); playsound_km(runmil);/播放行使里程 delay(50); playsound_mn(pricet);/播放應付金額 play_fg1 = 1;/置標志位為1 write_inst(0x01); jieshu();/進入結(jié)束界面 if(!play_fg2)/標志位為0時 play(24,100);/播放“請檢查您的隨身物品” pla

25、y(18,5); /播放“歡迎” play(20,5); /播放“再次” play(25,100);/播放“乘坐本公司出租汽車” play(19,5); /播放“再見” play_fg2 = 1;/置標志位為1 scankey();/鍵盤掃描模塊 2.里程和費率計算程序流程圖(含程序):/*/費率計算函數(shù)/*void price() if(runmilege2300)&(runmilege35000) /totalprice=700+(35000-2300)*0.26+(runmilege-35000)*0.35+100; totalprice=1112+(runmilege-35000)*0

26、.35; price=(ulong)totalprice; 3.鍵盤處理程序流程圖鍵盤掃描子程序模塊/*第 21 頁 共 21 頁void scankey() if(k2() bell(); if(mode=0x00) mode = 0x01; write_inst(0x01); else if(mode=0x01) flag = 0; mode = 0x02; write_inst(0x01); if(k4() bell(); if(mode=0x02) flag = 0; play_fg1 = 0; play_fg2 = 0; mode = 0x00; write_inst(0x01); count = 0; *結(jié)束語 通過這次畢業(yè)設計,我覺得自己學到了很多東西,特別是在即將畢業(yè)走向社會的時候,增加了自己以后在社會上工作的信心。畢業(yè)設計是對我們大學三年學習的總考驗.這次畢業(yè)設計,我有以下一些體會: 大學大部分時間都是在學習理論基礎知識,并未真正地去應用和實踐。自從入學以來,了解了自己本專業(yè)信息之后,我就開始了我的電子信息學習生涯,其中涉及到的知識,是我以前沒想過的,也不懂的,所以這次畢業(yè)設計,我很辛苦才完成。其中我接觸到了更多平時沒有接觸到的元器等,發(fā)現(xiàn)了自己很多不足之。我體會到了所學理論知識的重要性:知識掌握越多,設計得就更加嚴謹,更加順利。了解了進行一項相對比較大型的科研

溫馨提示

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

評論

0/150

提交評論