




已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
具有語音報(bào)價(jià)功能的出租車計(jì)價(jià)器 電氣110 郝佳齊 江宏球具有語音功能的出租車計(jì)價(jià)器 -電子系統(tǒng)設(shè)計(jì)答辯電氣110 郝佳齊 2110401282 江宏球 2110401283目錄一引言1二設(shè)計(jì)任務(wù)及要求11目的及任務(wù):12技術(shù)要求:23具體工作任務(wù):2三整體框架2四各模塊功能介紹41.數(shù)碼管動(dòng)態(tài)顯示模塊42.DS1302模塊53.脈沖發(fā)生電路模塊64.語音模塊7五各模塊程序設(shè)計(jì)81.主程序82.數(shù)碼管動(dòng)態(tài)掃描的顯示模塊113.DS1302日期顯示模塊144.計(jì)價(jià)模塊215.語音模塊25六設(shè)計(jì)產(chǎn)品功能描述29七附錄301.電氣原理圖302.PCB版圖313.實(shí)物圖324.調(diào)試報(bào)告33一引言當(dāng)今,隨著科學(xué)技術(shù)的發(fā)展,計(jì)算機(jī)技術(shù)帶來了科研和生產(chǎn)的許多重大的飛躍,特別是單片微型計(jì)算機(jī)的應(yīng)用已經(jīng)滲透到生產(chǎn)和生活中的各個(gè)方面,有力的推動(dòng)了社會(huì)的發(fā)展。單片微機(jī)以其體積小,集成度高,價(jià)格便宜,在數(shù)據(jù)處理、實(shí)時(shí)控制等方面有著無與倫比的強(qiáng)大功能。其性能不斷提高,應(yīng)用范圍愈來愈廣,在計(jì)算機(jī)應(yīng)用領(lǐng)域日益占重要地位。出租車計(jì)價(jià)器就是單片微型計(jì)算機(jī)的一個(gè)典型的應(yīng)用?;趩纹瑱C(jī)的出租車計(jì)價(jià)器可以利用單片機(jī)強(qiáng)大的可編程功能,輕松地實(shí)現(xiàn)原來模擬電路無法實(shí)現(xiàn)或者要通過極為復(fù)雜的電路才能實(shí)現(xiàn)的功能,同時(shí),各種周邊外部電路芯片的飛速發(fā)展,也給單片機(jī)應(yīng)用的設(shè)計(jì)者們提供了很大的方便,使得他們在實(shí)現(xiàn)常用的功能時(shí)可以直接復(fù)用已經(jīng)成熟的電路,從而極大地提高了設(shè)計(jì)效率。二設(shè)計(jì)任務(wù)及要求1目的及任務(wù):(1)通過查閱相關(guān)資料,深入了解出租車計(jì)價(jià)器的工作原理;(2)學(xué)習(xí)有關(guān)數(shù)字信號(hào)處理及采樣原理;(3)復(fù)習(xí)“MCS-51單片機(jī)原理及C語言程序設(shè)計(jì)”,掌握其接口擴(kuò)展,如:顯示、鍵盤等;(4)設(shè)計(jì)出租車計(jì)價(jià)器的原理圖,構(gòu)建硬件平臺(tái);(5)采用匯編或C語言編寫應(yīng)用程序并調(diào)試通過;(6)制作出樣機(jī)并測試達(dá)到功能和技術(shù)指標(biāo)要求;(7)寫出設(shè)計(jì)報(bào)告和答辯PPT。2技術(shù)要求: (1)用555振蕩器模擬出租車車輪轉(zhuǎn)數(shù)傳感器,計(jì)量出租車所走的公里數(shù)。(2)顯示里程、價(jià)格和等待紅燈或堵車的計(jì)時(shí),語音播報(bào)價(jià)格。(3)具有等待計(jì)時(shí)功能。(4)具有實(shí)時(shí)年月日顯示與切換功能。3具體工作任務(wù):(1)組建基于單片機(jī)的出租車計(jì)價(jià)器的總體結(jié)構(gòu)框圖;(2)根據(jù)設(shè)計(jì)要求,通過理論分析和計(jì)算選擇電路參數(shù);(3)根據(jù)操作功能要求,確定鍵盤控制功能;(4)按設(shè)計(jì)要求確定顯示位數(shù)、指示類型和單位;(5)編寫應(yīng)用程序并調(diào)試通過;(6)對(duì)系統(tǒng)進(jìn)行測試和結(jié)果分析;(7)撰寫設(shè)計(jì)報(bào)告和答辯PPT。三整體框架系統(tǒng)的硬件部分以AT89C52 單片機(jī)為控制核心,通過時(shí)鐘芯片DS1302,語音芯片ISD1760,七段數(shù)碼管構(gòu)成了一個(gè)具有語音報(bào)價(jià)功能,時(shí)間日期顯示功能的出租車計(jì)價(jià)器。整個(gè)系統(tǒng)采用8塊七段數(shù)碼管來顯示信息,不僅可以顯示出租車行駛的公里數(shù)與價(jià)格,也可以通過按鍵切換至日期與價(jià)格的顯示。系統(tǒng)通過555振蕩器模擬出租車車輪轉(zhuǎn)速傳感器,計(jì)算出租車走過的公里數(shù)。系統(tǒng)的軟件設(shè)計(jì)部分全部采用C語言進(jìn)行編寫,具有良好的可移植性和擴(kuò)展升級(jí)能力總體方案框圖如圖8952單片機(jī)計(jì)價(jià)單元555構(gòu)成的多諧振蕩電路顯示驅(qū)動(dòng)電路金 額顯 示里程顯示日期顯示語音芯片整個(gè)出租車計(jì)價(jià)器除單片機(jī)本體外的電路大體分為四塊,即:通過74LS573和ULN2803A實(shí)現(xiàn)數(shù)碼管動(dòng)態(tài)掃描中位碼與段碼的傳送的數(shù)碼管動(dòng)態(tài)顯示模塊;實(shí)現(xiàn)時(shí)鐘日期信息的走時(shí)、調(diào)整和數(shù)據(jù)傳送的DS1302模塊;通過實(shí)現(xiàn)語音報(bào)價(jià)功能的ISD1760語音芯片及其周邊電路的語音模塊;以及在出租車計(jì)價(jià)器設(shè)計(jì)過程中模擬車輪運(yùn)轉(zhuǎn)脈沖的由555芯片構(gòu)成的脈沖發(fā)生電路模塊。下面,就對(duì)這四個(gè)部分分別進(jìn)行簡要的介紹。四各模塊功能介紹1.數(shù)碼管動(dòng)態(tài)顯示模塊如上圖所示即為本設(shè)計(jì)中實(shí)現(xiàn)數(shù)碼管動(dòng)態(tài)掃描顯示的部分電路,其中之上的兩個(gè)MC74HC02AN分別通過或非經(jīng)過單片機(jī)實(shí)現(xiàn)對(duì)于兩個(gè)鎖存器74LS573的選擇和控制,而ULN2803A則通過提供驅(qū)動(dòng)電流實(shí)現(xiàn)對(duì)于不同位的顯示。動(dòng)態(tài)接口采用各數(shù)碼管循環(huán)輪流顯示的方法,當(dāng)循環(huán)顯示頻率較高時(shí),利用人眼的暫留特性,看不出閃爍顯示現(xiàn)象,這種顯示需要一個(gè)接口完成字形碼的輸出(字形選擇),另一接口完成各數(shù)碼管的輪流點(diǎn)亮(數(shù)位選擇)。在進(jìn)行數(shù)碼顯示的時(shí)候,要對(duì)顯示單元開辟8個(gè)顯示緩沖區(qū),每個(gè)顯示緩沖區(qū)裝有顯示的不同數(shù)據(jù)即可。對(duì)于顯示的字形碼數(shù)據(jù)我們采用查表方法來完成。其中,對(duì)于數(shù)碼管顯示的段碼和位碼都必須經(jīng)過鎖存器74LS573實(shí)現(xiàn),其特性有:三態(tài)總線驅(qū)動(dòng)輸出;置數(shù)全并行存??;緩沖控制輸入;使能輸入有改善抗擾度的滯后作用。原理:74LS573 的八個(gè)鎖存器都是透明的D 型鎖存器,當(dāng)使能(G)為高時(shí),Q 輸出將隨數(shù)據(jù)(D)輸入而變。當(dāng)使能為低時(shí),輸出將鎖存在已建立的數(shù)據(jù)電平上。輸出控制不影響鎖存器的內(nèi)部工作,即老數(shù)據(jù)可以保持,甚至當(dāng)輸出被關(guān)閉時(shí),新的數(shù)據(jù)也可以置入。這種電路可以驅(qū)動(dòng)大電容或低阻抗負(fù)載,可以直接與系統(tǒng)總線接口并驅(qū)動(dòng)總線,而不需要外接口。特別適用于緩沖寄存器,I/O 通道,雙向總線驅(qū)動(dòng)器和工作寄存器。2.DS1302模塊上圖即為DS1302部分電路,DS1302包括時(shí)鐘/日歷寄存器和31 字節(jié)(8 位)的數(shù)據(jù)暫存寄存器,數(shù)據(jù)通信僅通過一條串行輸入輸出口。實(shí)時(shí)時(shí)鐘/日歷提供包括秒、分、時(shí)、日期、月份和年份信息。閏年可自行調(diào)整,可選擇12 小時(shí)制和24 小時(shí)制,可以設(shè)置AM、PM。DS1302實(shí)時(shí)時(shí)鐘具有能計(jì)算2100 年之前的秒分時(shí)日日期星期月年的能力還有閏年調(diào)整的能力;31 8 位暫存數(shù)據(jù)存儲(chǔ)RAM;串行I/O 口方式使得管腳數(shù)量最少;寬范圍工作電壓2.0 5.5V;工作電流2.0V 時(shí),小于300nA;讀/寫時(shí)鐘或RAM 數(shù)據(jù)時(shí)有兩種傳送方式單字節(jié)傳送和多字節(jié)傳送字符組方式;8 腳DIP 封裝或可選的8 腳SOIC 封裝根據(jù)表面裝配;簡單3 線接口;與TTL 兼容Vcc=5V;可選工業(yè)級(jí)溫度范圍-40 +85;與DS1202 兼容;在DS1202 基礎(chǔ)上增加的特性;對(duì)Vcc1 有可選的涓流充電能力;雙電源管用于主電源和備份電源供應(yīng);備份電源管腳可由電池或大容量電容輸入;附加的7 字節(jié)暫存存儲(chǔ)器。DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc10.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc2.0V之前,RST必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向)。SCLK為時(shí)鐘輸入端。3.脈沖發(fā)生電路模塊本模塊的存在僅為調(diào)試脈沖計(jì)數(shù)功能時(shí)使用,由555定時(shí)器芯片構(gòu)成,555定時(shí)器是美國Signetics公司1972年研制的用于取代機(jī)械式定時(shí)器的中規(guī)模集成電路,因輸入端設(shè)計(jì)有三個(gè)5k的電阻而得名。由555定時(shí)器構(gòu)成的多諧振蕩器如圖所示,R1,R2和C是外接定時(shí)元件,電路中將高電平觸發(fā)端(6腳) 和低電平觸發(fā)端(2腳)并接后接到R2和C的連接處,將放電端(7腳)接到R1,R2的連接處。由于接通電源瞬間,電容C來不及充電,電容器兩端電壓uc為低電平,小于(1/3)Vcc,故高電平觸發(fā) 端與低電平觸發(fā)端均為低電平,輸出uo為高電平,放電管VT截止。這時(shí),電源經(jīng)R1,R2對(duì)電容C充電,使 電壓uc按指數(shù)規(guī)律上升,當(dāng)uc上升到(2/3)Vcc時(shí),輸出uo為低電平,放電管VT導(dǎo)通,把uc從(1/3)Vcc 上升到(2/3)Vcc這段時(shí)間內(nèi)電路的狀態(tài)稱為第一暫穩(wěn)態(tài),其維持時(shí)間TPH的長短與電容的充電時(shí)間有關(guān) 。充電時(shí)間常數(shù)T充=(R1R2)C。由于放電管VT導(dǎo)通,電容C通過電阻R2和放電管放電,電路進(jìn)人第二暫穩(wěn)態(tài).其維持時(shí)間TPL的長短與電 容的放電時(shí)間有關(guān),放電時(shí)間常數(shù)T放R2*C0隨著C的放電,uc下降,當(dāng)uc下降到(1/3)Vcc時(shí),輸出uo。 為高電平,放電管VT截止,Vcc再次對(duì)電容c充電,電路又翻轉(zhuǎn)到第一暫穩(wěn)態(tài)。不難理解,接通電源后,電路就在兩個(gè)暫穩(wěn)態(tài)之間來回翻轉(zhuǎn),則輸出可得矩形波。電路一旦起振后,uc電壓總是在(1/32/3)Vcc 之間變化。4.語音模塊上圖即為設(shè)計(jì)中采用ISD1760芯片實(shí)現(xiàn)語音的錄放和播報(bào)的部分電路,ISD1760系列芯片是Winbond推出的單片機(jī)優(yōu)質(zhì)語音錄放電路,在之前語音系列芯片的基礎(chǔ)上,該芯片提供多項(xiàng)新功能,包括內(nèi)置專利的多信息管理系統(tǒng),新信息提示,雙運(yùn)作模式(獨(dú)立&嵌入式),以及可定制的信息操作指示音效。芯片內(nèi)部包含有自動(dòng)增益控制、麥克風(fēng)前置擴(kuò)大器、揚(yáng)聲器驅(qū)動(dòng)線路、振蕩器與內(nèi)存等等全方位整合系統(tǒng)功能。該芯片還具備微控制器所需的控制接口,通過編程能夠?qū)崿F(xiàn)復(fù)雜的信息處理功能,如信息的組合、連接,設(shè)定固定的信息段和信息管理等。五各模塊程序設(shè)計(jì)1.主程序主程序的作用在于將程序的各部分連接,并且完成功能的相應(yīng)初始化,進(jìn)行掃描鍵盤待命。在具體的設(shè)計(jì)中,只需調(diào)用相應(yīng)的子程序完成初始化,調(diào)整好相應(yīng)的定時(shí)器模式、中斷的允許和優(yōu)先級(jí),再在掃描鍵盤時(shí)將相應(yīng)的功能子程序添加即可。一共有5個(gè)按鍵S1,S2,S3,S4,S5,其中S1,S2,S3,S4分別與89C52的P1.0,P1.1,P1.2,P1.3連接,起到控制作用,S5與INT0連接,為外部中斷。另外,將語音播報(bào)功能嵌入主程序中,并通過jiaoflag判斷是否報(bào)價(jià)。程序代碼如下:void main()unsigned char i; EA=1;ET1=1;ET0=1;EX0=1;ISD_Init();initial_ds1302();initialdata_DS1302();read_date();while(1)if(jiaoflag=1)jiaoflag=0;/int n,m;/unsigned char l,h;n=(cnt_cost%1000-cnt_cost%100)/100;l=n*10+1;m=(cnt_cost%100-cnt_cost%10)/10;h=m*10+1;ISD_SET_PLAY(141,0,160,0);ISD_SET_PLAY(l,0,l+9,0);ISD_SET_PLAY(101,0,110,0);ISD_SET_PLAY(h,0,h+9,0);ISD_SET_PLAY(111,0,120,0);ISD_SET_PLAY(161,0,180,0); if(start_key=0) delay(10000); if(start_key=0) if(startflag=0) startflag=1; for(i=2;i8;i+) read_date(); display_bufferi=date_bufferi-2; ET0=1;display_buffer0=2;display_buffer1=0;show();delay(20000000);ISD_SET_PLAY(121,0,140,0); else startflag=0; TR0=0; D_cnt=0; cnt_distance=0; cnt_cost=600;cnt_time=0;read_date(); for(i=2;i8;i+)display_bufferi=date_bufferi-2;display_buffer0=2;display_buffer1=0; /ISD_SET_PLAY(121,0,150,0);show(); if(startcharge_key=0) delay(10000); if(startcharge_key=0) if(cflag=0) cflag=1; initial_charge(); showcharge(); else cflag=0; TR1=0; showcharge(); if(change_key=0) delay(10000); if(change_key=0) change(); if(wait_key=0) delay(10000); if(wait_key=0) waitcharge(); 2.數(shù)碼管動(dòng)態(tài)掃描的顯示模塊數(shù)碼管的動(dòng)態(tài)掃描通過單片機(jī)的P0口依次送出需要顯示數(shù)據(jù)的段碼和位碼,通過或非門MC74HC02AN的控制,依次通過573鎖存器送段碼和573鎖存器接ULN2803A驅(qū)動(dòng)電路驅(qū)動(dòng)所掃描到的數(shù)碼管來完成顯示。在程序設(shè)計(jì)當(dāng)中,通過定時(shí)器0來完成掃描之間的延時(shí)計(jì)時(shí),通過定時(shí)器0的中斷服務(wù)程序調(diào)用顯示用子程序反復(fù)掃描。相應(yīng)的子程序unsigned char get_code(unsigned char i)的作用為查詢所顯示的字符的段碼,運(yùn)用swich-case結(jié)構(gòu)將所需的段碼取出。程序代碼如下:/動(dòng)態(tài)顯示模塊void time1_int(void) interrupt 1TH0=time1_h;TL0=time1_l;display();unsigned char get_code(unsigned char i)unsigned char p;switch(i)case 0:p=0x3F;break;case 1:p=0x06;break;case 2:p=0x5B;break;case 3:p=0x4F;break;case 4:p=0x66;break;case 5:p=0x6D;break;case 6:p=0x7D;break;case 7:p=0x07;break;case 8:p=0x7F;break;case 9:p=0x67;break;case 10:p=0x77;break;case 11:p=0x7C;break;case 12:p=0x39;break;case 13:p=0x5E;break;case 14:p=0x79;break;case 15:p=0x71;break;case 16:p=0xBF;break; /* 0. */case 17: p=0x86;break;/*1。*/case 18: p=0xDB;break;/*2。*/ case 19: p=0xCF;break;/*3。*/case 20: p=0xE6;break;/*4。*/case 21: p=0xED;break;/*5。*/case 22: p=0xFD;break;/*6。*/case 23: p=0x87;break;/*7。*/case 24: p=0xFF;break;/*8。*/case 25: p=0xE7;break;/*9。*/case 26: p=0x00;break;default: break;return(p); void display(void)unsigned char i;switch(display_bit)case 1:i=0;break;case 2:i=1;break;case 4:i=2;break;case 8:i=3;break;case 16:i=4;break;case 32:i=5;break;case 64:i=6;break;case 128:i=7;break;default:break;BIT_LED=0; /關(guān)閉顯示SEGMENT=get_code(display_bufferi); /送段碼BIT_LED=display_bit; /送位碼if(display_bit0x64)display_bit=display_bit*2;else display_bit=0x01;void show()BIT_LED=0;TMOD=0x61;/定時(shí)器1計(jì)數(shù)器方式2(可自動(dòng)重載),定時(shí)器0計(jì)時(shí)器方式1time1_times=65536-time1*f/12;/2500us倒計(jì)時(shí)time1_h=(time1_times/256);time1_l=(time1_times%256);TH0=time1_h;TL0=time1_l;TR0=1;display_bit=0x01;3.DS1302日期顯示模塊首先定義DS1302_write_byte()和DS1302_read_byte(),用于寫入和讀取一字節(jié)的數(shù)據(jù)。DS1302_write(uchar address,uchar ucdat)的 作用是往DS1302寫入數(shù)據(jù)。具體作用是先確定要寫入的地址address,然后將ucdat寫入改地址中。DS1302_read(uchar address)用于讀取DS1302某地址的數(shù)據(jù)。具體作用是先確定要讀取的地址address,然后將該地址中的數(shù)據(jù)讀出。最后要初始化時(shí)間了。定義DS1302_set(uchar date_set)函數(shù),用date_set的值初始化時(shí)間。而要將時(shí)間顯示出來,必須一位位的由數(shù)碼管顯示出來。完成此任務(wù)的函數(shù)是DS1302_read_date()。至此,日期顯示模塊方可以工作。程序如下:/DS1302時(shí)鐘日歷芯片部分void close_write_bit()char i;SCL_DS1302=0;_nop_();RST_DS1302=1;_nop_();_nop_();data_ds1302=0x8e;for(i=1;i1; data_ds1302=0x80;IO_DS1302=0;for(i=1;i1; void open_write_bit()char i;SCL_DS1302=0;_nop_();RST_DS1302=1;_nop_();_nop_();data_ds1302=0x8e;for(i=1;i1; data_ds1302=0x00;IO_DS1302=0;for(i=1;i1; void initial_ds1302()unsigned char i;SCL_DS1302=0;_nop_();RST_DS1302=1;_nop_();_nop_();data_ds1302=0x8e;for(i=1;i1; data_ds1302=0x00; /80IO_DS1302=0;for(i=1;i1; RST_DS1302=0;_nop_();SCL_DS1302=0;SCL_DS1302=0;_nop_();RST_DS1302=1;_nop_();_nop_();data_ds1302=0x90;for(i=1;i1; data_ds1302=0xa4;for(i=1;i1; RST_DS1302=0;_nop_();SCL_DS1302=0;SCL_DS1302=0;_nop_();RST_DS1302=1;_nop_();_nop_();data_ds1302=0x8e; /80for(i=1;i1; data_ds1302=0x80;for(i=1;i1; RST_DS1302=0;_nop_();SCL_DS1302=0;unsigned char read_ds1302(char command)char i;data_ds1302=(command1)|0x81;SCL_DS1302=0;_nop_();RST_DS1302=1;for(i=1;i1; SCL_DS1302=1;for(i=1;i1;SCL_DS1302=0;_nop_();bit_data7=IO_DS1302;SCL_DS1302=1; RST_DS1302=0;_nop_();SCL_DS1302=0;return(data_ds1302);void write_ds1302(unsigned char address,unsigned char numb)/寫入時(shí)間char i;RST_DS1302=0;SCL_DS1302=0;RST_DS1302=0;RST_DS1302=1;data_ds1302=0x80|(address1); /寫是0x80,讀是81for(i=1;i1; data_ds1302=numb;for(i=1;i1; RST_DS1302=0;SCL_DS1302=1;void initialdata_DS1302() Unsigned char data year_address=6,month_address=4,date_address=3,hour_address=2,minute_address=1,second_address=0;open_write_bit();write_ds1302(year_address,0x14);write_ds1302(month_address,0x05);write_ds1302(date_address,0x10);close_write_bit();void read_date()unsigned char year,month,day,d;day=3;/日期的寄存器d=read_ds1302(day);date_buffer5=d&0x0f;date_buffer4=(d4);month=4;/月的寄存器d=read_ds1302(month);date_buffer3=d&0x0f;date_buffer2=(d4);year=6;/年的寄存器d=read_ds1302(year);date_buffer1=d&0x0f;date_buffer0=(d4);4.計(jì)價(jià)模塊計(jì)價(jià)模塊按照里程計(jì)費(fèi)。555脈沖發(fā)生器模擬車輪運(yùn)轉(zhuǎn),每10個(gè)脈沖產(chǎn)生一個(gè)中斷,進(jìn)入中斷響應(yīng)3,里程加0.1公里,價(jià)錢加0.1元。若價(jià)錢小于起步價(jià),則顯示起步價(jià),否則顯示當(dāng)前價(jià)格。 程序如下:/計(jì)價(jià)部分 void initial_charge()TMOD=0x61; TH1=256-20;TL1=256-20; /計(jì)數(shù)器每二十個(gè)脈沖產(chǎn)生一次中斷,并自動(dòng)重載/chargeflag=0;TR1=1;void chargecount() interrupt 3 if(chargeflag=0) if(D_cnt20) cnt_cost=cnt_cost+20; /以每公里2元計(jì) showcharge(); else TH1=time1_h;TL1=time1_1; cnt_time=cnt_time+1;if(cnt_time59) cnt_time=0; cnt_cost=cnt_cost+100; showcharge(); void change()unsigned char i;if(timeflag=0)timeflag=1;TR1=0;TR0=0;read_date();for(i=2;i0);unsigned char ISD_SendData(unsigned char dat)unsigned char i,j,BUF_ISD=dat;SCK=1;SS=0;for(j=4;j0;j-);for(i=0;i0;j-);if(BUF_ISD&0x01)MOSI=1;elseMOSI=0;BUF_ISD=1;if(MISO)BUF_ISD|=0x80;SCK=1;for(j=6;j0;j-);MOSI=0;return(BUF_ISD);void ISD_PU(void)ISD_SendData(0x01);ISD_SendData(0x00);SS=1;void ISD_Rd_Status(void)unsigned char i;ISD_SendData(0x05);ISD_SendData(0x00);ISD_SendData(0x00);SS=1;for(i=2;i0;i-);SR0_L=ISD_SendData(0x05);SR0_H=ISD_SendData(0x00);SR1=ISD_SendData(0x00);SS=1;void ISD_WR_APC2(unsigned char apcdatl,apcdath)ISD_SendData(0x65);ISD_SendData(apcdatl);ISD_SendData(apcdath);SS=1;void ISD_SET_PLAY(unsigned char Saddl,Saddh,Eaddl,Eaddh)ISD_SendData(0x80);ISD_SendData(0x00);ISD_SendData(Saddl);ISD_SendData(Saddh);ISD_SendData(Eaddl);ISD_SendData(Eaddh);ISD_SendData(0x00);doISD_Rd_Status();while(SR0_L&0x01)|(SR1&0x04);delay(8000);/SS=1; 六設(shè)計(jì)產(chǎn)品功能描述S1是開始鍵,表示出租車的空閑和計(jì)價(jià)狀態(tài)。按下S1,則系統(tǒng)開始工作,語音提示歡迎乘坐,顯示日期,表示出租車進(jìn)入計(jì)價(jià)狀態(tài)。S2是里程計(jì)費(fèi)按鍵。當(dāng)出租車行駛時(shí),是里程計(jì)費(fèi)狀態(tài)。起步價(jià)是6元/1.5公里。當(dāng)不超過1.5公里,按6元收取費(fèi)用,超出1.5公里的按0.5元/0.5公里收取費(fèi)用。S3是費(fèi)用和日期顯示的切換按鍵。按下此鍵,則顯示年月日,再按下此鍵,則顯示費(fèi)用-里程。S4 是等待計(jì)時(shí)功能按鍵,會(huì)根據(jù)目前等待狀況開始讀秒計(jì)時(shí)。S5是停止計(jì)價(jià)按鍵。當(dāng)乘客到達(dá)目的地時(shí)按下S5,語音報(bào)價(jià)并顯示價(jià)格。數(shù)碼管的顯示說明:費(fèi)用顯示是前三個(gè)數(shù)碼管,最高位是十位,最高可記100元。中間三個(gè)數(shù)碼管是顯示里程的,最高位是十位,最高可記100公里。最后兩個(gè)數(shù)碼管是顯示等待時(shí)間的,S4按鍵控制計(jì)時(shí)的開始和結(jié)束。在日期顯示時(shí),八個(gè)數(shù)碼管分別顯示年月日信息。七附錄1.電氣原理圖2.PCB版圖3.實(shí)物圖4.調(diào)試報(bào)告1)調(diào)試一 按鍵與LED顯示通過定義按鍵與接口,實(shí)現(xiàn)按鍵與LED燈的檢測。調(diào)試結(jié)果:當(dāng)按下S2-S5其中一個(gè)鍵時(shí),D2會(huì)亮起。調(diào)試程序:#includesbit D3=P10;sbit S2=P11;sbit S3=P12;sbit S4=P13;sbit S5=P32;int main()D3=S2&S3&S4&S5;return 0;2)調(diào)試二 數(shù)碼管顯示與DS1302實(shí)時(shí)時(shí)鐘顯示利用DS1302設(shè)計(jì)一個(gè)實(shí)時(shí)時(shí)鐘,并在顯示器上顯示出預(yù)制的時(shí)分秒。調(diào)試結(jié)果:運(yùn)行后,將顯示當(dāng)前時(shí)間預(yù)制值,為09時(shí)35分58秒,并開始繼續(xù)走時(shí)。(在數(shù)碼管上從右往左依次顯示)調(diào)試程序:#include#include#include#include#define SEGMENT XBYTE0xdfff#define BIT_LED XBYTE0xbfff#define fosc 11.0592#define time0 2500unsigned char data display_bit,display_buffer8;unsigned char data time0_h,time0_1,TEMP;unsigned int idata time0_times;unsigned char get_code(unsigned char i);void display(void);sbit SCL_DS1302=P20;sbit IO_DS1302=P21;sbit RST_DS1302=P22;unsigned char bdata data_ds1302;sbit bit_data0=data_ds13020;sbit bit_data7=data_ds13027;unsigned char bdata x;sbit x0=x0;sbit x7=x7;void initial_ds1302();unsigned char read_ds1302(char command);void open_write_bit();void close_write_bit();void read_time();void set_time();main() BIT_LED=0; TEMP=TMOD; TEMP=TEMP&0XF0; TMOD=TEMP|0X01; time0_times=-time0*fosc/12; time0_h=(time0_times/256); time0_1=(time0_times%256); TH0=time0_h;TL0=time0_1; TR0=EA=ET0=1; initial_ds1302(); display_bit=0x01; display_buffer0=0x00; display_buffer1=0x08; display_buffer2=
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國差動(dòng)變壓器遠(yuǎn)傳壓力表行業(yè)投資前景及策略咨詢報(bào)告
- 2025至2030年中國塊狀組合式屏風(fēng)行業(yè)投資前景及策略咨詢報(bào)告
- 2025至2030年中國原味雞腿肉塊行業(yè)投資前景及策略咨詢報(bào)告
- 2025至2030年中國光纖復(fù)合架空地線光纜行業(yè)投資前景及策略咨詢報(bào)告
- 防反詐內(nèi)部管理制度
- 餐廳洗碗工管理制度
- 餐飲與烹飪管理制度
- 2025年咖啡連鎖品牌擴(kuò)張戰(zhàn)略:咖啡連鎖品牌與咖啡行業(yè)產(chǎn)業(yè)鏈合作策略報(bào)告
- 長春醫(yī)學(xué)高等??茖W(xué)校《口腔內(nèi)科學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 長春人文學(xué)院《爆炸與沖擊》2023-2024學(xué)年第二學(xué)期期末試卷
- 教育事業(yè)十五五(2026-2030)發(fā)展規(guī)劃
- 2025年中醫(yī)基礎(chǔ)理論考試試題及答案
- 酒店入股合同協(xié)議書范本
- 外研版七年級(jí)英語上冊跨學(xué)科項(xiàng)目計(jì)劃
- 河南省南陽市2025年七年級(jí)英語第二學(xué)期期末學(xué)業(yè)水平測試模擬試題含答案
- 2025年瑜伽教練認(rèn)證考試體式教學(xué)與課程設(shè)計(jì)模擬試題集(含答案詳解)
- 2025年英語專業(yè)四級(jí)(TEM4)完形填空專項(xiàng)模擬試卷(詞匯與邏輯推理)-深度解析版
- 2025年廣西高一學(xué)業(yè)水平考試模擬生物試卷試題(含答案)
- 綜合實(shí)踐項(xiàng)目 設(shè)計(jì)并制作人體結(jié)構(gòu)模型(教學(xué)設(shè)計(jì)) 七年級(jí)生物下冊 (人教版2024)
- 2025年石油天然氣管線鋼管行業(yè)深度研究報(bào)告
- 山西中考:歷史必考知識(shí)點(diǎn)
評(píng)論
0/150
提交評(píng)論