版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 電子設(shè)計(jì)課程設(shè)計(jì)報(bào)告</p><p> 摘要:本文介紹了出租車計(jì)價(jià)器系統(tǒng)在實(shí)際生產(chǎn)生活中的重要性,介紹一種以單片機(jī)ATmega16 為核心的多功能出租車計(jì)價(jià)器模擬裝置的設(shè)計(jì),闡述軟硬件設(shè)計(jì)過程中關(guān)鍵技術(shù)的處理。結(jié)果表明該計(jì)價(jià)器模擬裝置具有集計(jì)程、計(jì)時(shí)、計(jì)費(fèi)、等多種計(jì)量功能,并且具速度檢測(cè)與顯示、系統(tǒng)設(shè)置與數(shù)據(jù)存儲(chǔ)等多種功能。</p><p> 本課題主要研究出租車
2、計(jì)價(jià)器模擬裝置的軟硬件設(shè)計(jì)。論文詳細(xì)闡述了該計(jì)價(jià)器模擬裝置的總體設(shè)計(jì):控制器模塊、速度檢測(cè)模塊、里程檢測(cè)模塊、LED顯示模塊、鍵盤模塊等。實(shí)驗(yàn)表明該系統(tǒng)具有可靠性好、精度高等優(yōu)點(diǎn)。</p><p> 關(guān)鍵詞:出租車計(jì)價(jià)器模擬裝置,ATmega16單片機(jī),LED掃描顯示,速度檢測(cè),里程檢測(cè)。</p><p><b> 第一章 緒論4</b></p>
3、<p><b> 1.1 前言4</b></p><p> 1.2 設(shè)計(jì)的意義4</p><p> 1.3 系統(tǒng)設(shè)計(jì)的要求4</p><p> 第二章 系統(tǒng)設(shè)計(jì)5</p><p> 2.1方案論證與比較5</p><p> 2.1.1 方案一5</p>
4、<p> 2.1.1 方案二6</p><p> 2.2系統(tǒng)總體方案6</p><p> 2.3單元電路方案7</p><p> 2.3.1 系統(tǒng)電源輸入與轉(zhuǎn)換模塊7</p><p> 2.3.2 單片機(jī)控制核心模塊7</p><p> 2.3.3 LED數(shù)碼管動(dòng)態(tài)掃描顯示模塊8&
5、lt;/p><p> 第三章 相關(guān)芯片介紹8</p><p> 3.1 ATmega16單片機(jī)8</p><p> 3.2 3-8線譯碼器74HC13810</p><p> 3.3 移位寄存器74HC16410</p><p> 第四章 軟件設(shè)計(jì)11</p><p> 第五
6、章 系統(tǒng)測(cè)試11</p><p><b> 結(jié)論/展望11</b></p><p><b> 致謝12</b></p><p><b> 參考文獻(xiàn)12</b></p><p><b> 附錄13</b></p><p&
7、gt;<b> 第一章 緒論</b></p><p><b> 1.1 前言</b></p><p> 出租汽車已經(jīng)成為我國城市公共交通的重要組成部分和現(xiàn)代化城市必備的基礎(chǔ)設(shè)施,成為人們工作、生活中不可缺少的交通工具。出租汽車服務(wù)行業(yè)和出租汽車計(jì)價(jià)器緊密相關(guān),因?yàn)槌鲎馄嚤仨毎惭b出租汽車計(jì)價(jià)器才能投入營運(yùn)。出租汽車計(jì)價(jià)器是一種能根據(jù)乘客乘坐
8、汽車行駛距離和等候時(shí)間的多少進(jìn)行計(jì)價(jià),并直接顯示車費(fèi)值的計(jì)量器具。計(jì)價(jià)器是出租汽車的經(jīng)營者和乘坐出租汽車的消費(fèi)者之間用于公平貿(mào)易結(jié)算的工具,因而計(jì)價(jià)器計(jì)價(jià)準(zhǔn)確與否,直接關(guān)系到經(jīng)營者和消費(fèi)者的經(jīng)濟(jì)利益。依據(jù)國家有關(guān)法律、法規(guī),出租汽車計(jì)價(jià)器是列入國家首批強(qiáng)制檢定的工作計(jì)量器具之一,也是近年來國家質(zhì)量技術(shù)監(jiān)督部門強(qiáng)化管理的六類重點(diǎn)計(jì)量器具之一。</p><p> 出租車行業(yè)在我國是八十年代初興起的一項(xiàng)新興行業(yè),隨著
9、我國國民經(jīng)濟(jì)的高速發(fā)展,出租汽車已成為城市公共交通的重要組成部分。多年來國內(nèi)普遍使用的計(jì)價(jià)器只具備單一的計(jì)量功能。目前全世界的計(jì)價(jià)器中有90%為臺(tái)灣所生產(chǎn)?,F(xiàn)今我國生產(chǎn)計(jì)價(jià)器的企業(yè)有上百家,主要是集中在北京,上海,沈陽和廣州等地。</p><p><b> 1.2 設(shè)計(jì)的意義</b></p><p> 在出租車是城市交通的重要組成部分,行業(yè)健康和發(fā)展也獲得越來越多
10、的關(guān)注。汽車計(jì)價(jià)器是乘客與司機(jī)雙方的交易準(zhǔn)則,它是出租車行業(yè)發(fā)展的重要標(biāo)志,是出租車中最重要的工具。它關(guān)系著交易雙方的利益。具有良好性能的計(jì)價(jià)器無論是對(duì)廣大出租車司機(jī)朋友還是乘客來說都是很必要的。因此,汽車計(jì)價(jià)器的研究也是十分有一個(gè)應(yīng)用價(jià)值的。</p><p> 1.3 系統(tǒng)設(shè)計(jì)的要求</p><p> 設(shè)計(jì)并制作一個(gè)出租車計(jì)價(jià)器的模擬裝置,示意圖如圖1-1所示。 </p>
11、<p> 如圖1-1 出租車計(jì)價(jià)器示意圖</p><p> 8位數(shù)碼管顯示器的前4位數(shù)碼管用于實(shí)時(shí)顯示行車?yán)锍虜?shù)(000.0),單位為公里;后4位數(shù)碼管用于實(shí)時(shí)顯示金額數(shù)(000.0),單位為元。 </p><p> 規(guī)定出租車單程價(jià)格為2元/公里,往返則價(jià)格為1.5元/公里。單程與往返分別由“單程” 按鍵和“往返” 按鍵設(shè)定。行車?yán)锍炭捎靡话存I模擬,規(guī)定每按一次鍵,行
12、車?yán)锍碳?.1公里。 </p><p> 起步公里數(shù)為3公里,價(jià)格為8元,若實(shí)際運(yùn)行大于3公里,按“基本要求2”計(jì)算價(jià)格。 </p><p> 到達(dá)目的地后,按“暫停” 鍵,計(jì)價(jià)器可暫停計(jì)價(jià);反復(fù)按“查詢”鍵,計(jì)價(jià)器能依次顯示總等待時(shí)間,里程數(shù)和金額數(shù);按“清除”鍵,能將記錄的數(shù)據(jù)(里程、等待時(shí)間與價(jià)格等)清0。 </p><p> 再增加8位數(shù)碼管顯示器,前
13、4位數(shù)碼管用于實(shí)時(shí)顯示車速(000.0),單位為公里/小時(shí);后4位數(shù)碼管用于實(shí)時(shí)顯示累計(jì)等待時(shí)間(00:00),單位為分:秒。 </p><p> 設(shè)計(jì)并制作一個(gè)能模擬出租車車速的裝置。要求采用單片機(jī)控制電機(jī)使轉(zhuǎn)盤轉(zhuǎn)動(dòng),用光電傳感器檢測(cè)轉(zhuǎn)盤轉(zhuǎn)動(dòng),車速與轉(zhuǎn)數(shù)成正比。規(guī)定轉(zhuǎn)盤轉(zhuǎn)速為5轉(zhuǎn)/分對(duì)應(yīng)車速5公里/小時(shí),轉(zhuǎn)盤轉(zhuǎn)速為50轉(zhuǎn)/分對(duì)應(yīng)車速50公里/小時(shí),依此類推。轉(zhuǎn)速可以通過鍵盤預(yù)置。</p><
14、;p> 能按上述模擬裝置的轉(zhuǎn)數(shù)計(jì)算行車?yán)锍蹋⒁来俗鳛橛?jì)價(jià)依據(jù),計(jì)價(jià)誤差的絕對(duì)值小于10%。 </p><p> 增加等待時(shí)間計(jì)價(jià)功能。規(guī)定總等待時(shí)間為車速<5公里/小時(shí)的累積時(shí)間,總等待時(shí)間每增加5分鐘,相當(dāng)于里程數(shù)增加1公里進(jìn)行計(jì)價(jià)。</p><p> 增加起步價(jià)、起步價(jià)里程和每公里價(jià)格的預(yù)置功能。價(jià)格預(yù)置功能要求密碼確認(rèn),價(jià)格的默認(rèn)值與基本要求一致。 </p
15、><p><b> 第二章 系統(tǒng)設(shè)計(jì)</b></p><p> 2.1方案論證與比較</p><p><b> 2.1.1 方案一</b></p><p> 方案一的系統(tǒng)框圖如圖2-1所示。該方案擬采用單片機(jī)AT89C51為控制器,附加以數(shù)據(jù)存儲(chǔ)模塊,速度檢測(cè)模塊,LED顯示模塊,鍵盤模塊等。&
16、lt;/p><p> 圖2-1 方案一系統(tǒng)框圖</p><p> AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)
17、準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器。AT89C51單片機(jī)易學(xué)易懂,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。但是AT89C51單片機(jī)是一種比較低端的單片機(jī),片上資源偏少。例如本設(shè)計(jì)中要求存儲(chǔ)數(shù)據(jù)功能,AT89C51單片機(jī)沒有內(nèi)部EEPROM,只能外加數(shù)據(jù)存儲(chǔ)芯片,導(dǎo)致硬件線路和軟件編程顯得復(fù)雜。另外,AT89C51單片機(jī)的軟件
18、開發(fā)平臺(tái)不夠人性化,軟件開發(fā)比較繁瑣。</p><p><b> 2.1.1 方案二</b></p><p> 方案二的系統(tǒng)框圖如圖2-2所示。該方案擬采用單片機(jī)ATMEGA16為控制器,附加以內(nèi)部數(shù)據(jù)存儲(chǔ),速度檢測(cè)模塊,LED顯示模塊,鍵盤模塊等。</p><p> 圖2-2 方案二系統(tǒng)框圖</p><p>
19、ATmega16有如下特點(diǎn):16K字節(jié)的系統(tǒng)內(nèi)可編程Flash(具有同時(shí)讀寫的能力,即RWW),512 字節(jié)EEPROM,1K 字節(jié)SRAM,32 個(gè)通用I/O 口線,32 個(gè)通用工作寄存器,用于邊界掃描的JTAG 接口,支持片內(nèi)調(diào)試與編程,三個(gè)具有比較模式的靈活的定時(shí)器/ 計(jì)數(shù)器(T/C),片內(nèi)/外中斷,可編程串行USART,有起始條件檢測(cè)器的通用串行接口,8路10位具有可選差分輸入級(jí)可編程增益(TQFP 封裝) 的ADC ,具有片內(nèi)
20、振蕩器的可編程看門狗定時(shí)器,一個(gè)SPI 串行端口,以及六個(gè)可以通過軟件進(jìn)行選擇的省電模式。</p><p> ATmega16單片機(jī)具有強(qiáng)大而豐富的片上資源和靈活方便的人性化軟件開發(fā)平臺(tái),大大地簡(jiǎn)化了硬件線路的設(shè)計(jì)和軟件的開發(fā)過程,減了軟硬件的開發(fā)時(shí)間,并完全符合本設(shè)計(jì)的要求。</p><p> 綜上,通過分析論證,本次設(shè)計(jì)采用方案二。</p><p><
21、b> 2.2系統(tǒng)總體方案</b></p><p> 方案二的系統(tǒng)框圖如圖2-3所示。系統(tǒng)仿真圖見附件。</p><p> 圖2-3 系統(tǒng)總體設(shè)計(jì)方案</p><p> 該方案由ATMEGA16單片機(jī)為核心控制器,用以檢測(cè)速度脈沖并計(jì)算轉(zhuǎn)化為實(shí)際速度輸出顯示;檢測(cè)模擬裝置的狀態(tài)(包括空車狀態(tài)、單程狀態(tài)、等待狀態(tài)、返程狀態(tài))并作出相應(yīng)的動(dòng)作;檢
22、測(cè)模擬動(dòng)作(包括里程加一模擬按鍵、速度模擬加減按鍵、數(shù)據(jù)清除按鍵);檢測(cè)參數(shù)修改于數(shù)據(jù)儲(chǔ)存(包括起步里程的修改、起步價(jià)的修改、單程單價(jià)的修改、返程單價(jià)的修改);檢測(cè)參數(shù)修改時(shí)應(yīng)通過的密碼確認(rèn);速度控制輸出;參數(shù)提取并送到LED數(shù)碼管掃描顯示;工作狀態(tài)指示輸出等等。</p><p><b> 2.3單元電路方案</b></p><p> 2.3.1 系統(tǒng)電源輸入與轉(zhuǎn)
23、換模塊</p><p> 穩(wěn)定的電源供應(yīng)是單片機(jī)嵌入式系統(tǒng)的穩(wěn)定工作的必要前提,所以電源的轉(zhuǎn)換設(shè)計(jì)必須有較高的可靠性和抗干擾能力。本設(shè)計(jì)所采用的電源輸入與轉(zhuǎn)換方案如圖2-4所示。該方案采用LM7805線性電源穩(wěn)壓芯片,加以前后兩級(jí)電容濾波以及5個(gè)平波小電容,所構(gòu)成的電源轉(zhuǎn)換方案具有輸出平穩(wěn),高壓隔離,平波抗干擾等優(yōu)點(diǎn),具有較高的可靠性和抗干擾能力,保證了所設(shè)計(jì)系統(tǒng)的電源的穩(wěn)定供應(yīng)。</p><
24、;p> 圖2-4 電源輸入與轉(zhuǎn)換電原理圖</p><p> 2.3.2 單片機(jī)控制核心模塊</p><p> 本設(shè)計(jì)所采用的核心控制芯片為Atmel公司生產(chǎn)的8位高性能單片機(jī)ATmega16,單片機(jī)控制核心模塊電原理圖如圖2-5所示。其中包括單片機(jī)工作必不可少的晶振電路、復(fù)位電路。由于ATmega16單片機(jī)四個(gè)IO端口均是標(biāo)志雙向IO,具有輸入內(nèi)部可設(shè)置上拉電阻,故系統(tǒng)的按鍵不
25、必外界上拉電阻,大大簡(jiǎn)化了硬件線路的設(shè)計(jì)。</p><p> 圖2-4 電源輸入與轉(zhuǎn)換電原理圖</p><p> 速度檢測(cè)原理是:直接將速度傳感器反饋的脈沖信號(hào)輸入到ATmega16單片機(jī)的外部中斷(INT1)輸入端。速度檢測(cè)原理是:當(dāng)速度傳感器返回一個(gè)脈沖信號(hào)時(shí),單片機(jī)讀出其內(nèi)部定時(shí)器從上一個(gè)脈沖信號(hào)到該返回脈沖信號(hào)所經(jīng)過的定時(shí)時(shí)間,兩個(gè)速度反饋脈沖直接的路程除以該時(shí)間間隔即為瞬時(shí)速
26、度。</p><p> 速度控制輸出原理:是利用單片機(jī)內(nèi)部8位的定時(shí)器2的脈寬調(diào)制功能產(chǎn)生占空比可變的PWM信號(hào)去控制速度。</p><p> 2.3.3 LED數(shù)碼管動(dòng)態(tài)掃描顯示模塊</p><p> LED數(shù)碼管的動(dòng)態(tài)掃描顯示是本出租車計(jì)價(jià)器模擬裝置的核心功能之一,LED數(shù)碼管掃描顯示是否穩(wěn)定直接關(guān)系系統(tǒng)的工作效果。LED數(shù)碼管動(dòng)態(tài)掃描顯示電原理圖如圖2-
27、5所示。</p><p> 圖2-5 LED數(shù)碼管掃描顯示電原理圖</p><p> LED數(shù)碼管動(dòng)態(tài)掃描顯示的原理是:采用四位共陰極LED數(shù)碼管,其位選信號(hào)引腳接到低電平輸出有效的3-8線譯碼器74HC138的輸出端,單片機(jī)控制譯碼器的輸出端來選通某一位數(shù)碼管工作,達(dá)到動(dòng)態(tài)掃描顯示的效果。LED數(shù)碼管的段選信號(hào)引腳接到8位以為寄存器74HC164的并行輸出端,單片機(jī)將要顯示的字型碼信
28、息串行輸入到移位寄存器,再又移位寄存器并行輸出到LED數(shù)碼管的段選引腳,使得已選通的數(shù)碼管某一位顯示特定的數(shù)字。</p><p> 第三章 相關(guān)芯片介紹</p><p> 3.1 ATmega16單片機(jī)</p><p> ATmega16是基于增強(qiáng)的AVR RISC結(jié)構(gòu)的低功耗8 位CMOS微控制器。由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執(zhí)行時(shí)間,ATmega1
29、6 的數(shù)據(jù)吞吐率高達(dá)1 MIPS/MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。</p><p> ATmega16 AVR 內(nèi)核具有豐富的指令集和32 個(gè)通用工作寄存器。所有的寄存器都直接與算邏單元(ALU) 相連接,使得一條指令可以在一個(gè)時(shí)鐘周期內(nèi)同時(shí)訪問兩個(gè)獨(dú)立的寄存器。這種結(jié)構(gòu)大大提高了代碼效率,并且具有比普通的CISC 微控制器最高至10 倍的數(shù)據(jù)吞吐率。</p><p>
30、; ATmega16 有如下特點(diǎn):16K字節(jié)的系統(tǒng)內(nèi)可編程Flash(具有同時(shí)讀寫的能力,即RWW),512 字節(jié)EEPROM,1K 字節(jié)SRAM,32 個(gè)通用I/O 口線,32 個(gè)通用工作寄存器,用于邊界掃描的JTAG 接口,支持片內(nèi)調(diào)試與編程,三個(gè)具有比較模式的靈活的定時(shí)器/ 計(jì)數(shù)器(T/C),片內(nèi)/外中斷,可編程串行USART,有起始條件檢測(cè)器的通用串行接口,8路10位具有可選差分輸入級(jí)可編程增益(TQFP 封裝) 的ADC ,
31、具有片內(nèi)振蕩器的可編程看門狗定時(shí)器,一個(gè)SPI 串行端口,以及六個(gè)可以通過軟件進(jìn)行選擇的省電模式。ATmega16單片機(jī)管腳圖如圖3-1所示。</p><p> 圖3-1 ATmega16管腳圖</p><p> 工作于空閑模式時(shí)CPU 停止工作,而USART、兩線接口、A/D 轉(zhuǎn)換器、SRAM、T/C、SPI 端口以及中斷系統(tǒng)繼續(xù)工作;掉電模式時(shí)晶體振蕩器停止振蕩,所有功能除了中斷和
32、硬件復(fù)位之外都停止工作;在省電模式下,異步定時(shí)器繼續(xù)運(yùn)行,允許用戶保持一個(gè)時(shí)間基準(zhǔn),而其余功能模塊處于休眠狀態(tài); ADC 噪聲抑制模式時(shí)終止CPU 和除了異步定時(shí)器與ADC 以外所有I/O 模塊的工作,以降低ADC 轉(zhuǎn)換時(shí)的開關(guān)噪聲; Standby 模式下只有晶體或諧振振蕩器運(yùn)行,其余功能模塊處于休眠狀態(tài),使得器件只消耗極少的電流,同時(shí)具有快速啟動(dòng)能力;擴(kuò)展Standby 模式下則允許振蕩器和異步定時(shí)器繼續(xù)工作。</p>
33、<p> 本芯片是以Atmel 高密度非易失性存儲(chǔ)器技術(shù)生產(chǎn)的。片內(nèi)ISP Flash 允許程序存儲(chǔ)器通過ISP 串行接口,或者通用編程器進(jìn)行編程,也可以通過運(yùn)行于AVR 內(nèi)核之中的引導(dǎo)程序進(jìn)行編程。引導(dǎo)程序可以使用任意接口將應(yīng)用程序下載到應(yīng)用Flash存儲(chǔ)區(qū)(ApplicationFlash Memory)。在更新應(yīng)用Flash存儲(chǔ)區(qū)時(shí)引導(dǎo)Flash區(qū)(Boot Flash Memory)的程序繼續(xù)運(yùn)行,實(shí)現(xiàn)了RWW 操
34、作。 通過將8 位RISC CPU 與系統(tǒng)內(nèi)可編程的Flash 集成在一個(gè)芯片內(nèi), ATmega16 成為一個(gè)功能強(qiáng)大的單片機(jī),為許多嵌入式控制應(yīng)用提供了靈活而低成本的解決方案。ATmega16 具有一整套的編程與系統(tǒng)開發(fā)工具,包括:C 語言 編譯器、宏匯編、 程序調(diào)試器/ 軟件仿真器、仿真器及評(píng)估板。</p><p> 3.2 3-8線譯碼器74HC138</p><p> 74H
35、C138是一款高速CMOS器件,74HC138引腳兼容低功耗肖特基TTL(LSTTL)系列。74HC138譯碼器可接受3位二進(jìn)制加權(quán)地址輸入(A0, A1和A2),并當(dāng)使能時(shí),提供8個(gè)互斥的低有效輸出(Y0至Y7)。74HC138特有3個(gè)使能輸入端:兩個(gè)低有效(E1和E2)和一個(gè)高有效(E3)。除非E1和E2置低且E3置高,否則74HC138將保持所有輸出為高。利用這種復(fù)合使能特性,僅需4片74HC138芯片和1個(gè)反相器,即可輕松實(shí)現(xiàn)并
36、行擴(kuò)展,組合成為一個(gè)1-32(5線到32線)譯碼器。任選一個(gè)低有效使能輸入端作為數(shù)據(jù)輸入,而把其余的使能輸入端作為選通端,則74HC138亦可充當(dāng)一個(gè)8輸出多路分配器,未使用的使能輸入端必須保持綁定在各自合適的高有效或低有效狀態(tài)。74HC138的管腳圖如圖3-2所示。</p><p> 圖3-2 74HC138管腳圖</p><p> 本設(shè)計(jì)中用于顯示的LED數(shù)碼管是四位共陰極數(shù)碼管,
37、即每四位LED數(shù)碼管顯示計(jì)價(jià)器模擬裝置的一個(gè)參數(shù)。當(dāng)動(dòng)態(tài)掃描顯示的時(shí)候,用74HC138來選通LED數(shù)碼管的位選管腳,既達(dá)到增強(qiáng)LED數(shù)碼管的驅(qū)動(dòng)電流的效果,也能節(jié)省單片機(jī)的IO端口,使硬件設(shè)計(jì)變得簡(jiǎn)潔。</p><p> 3.3 移位寄存器74HC164</p><p> 74HC164、74HCT164 是高速硅門 CMOS 器件,與低功耗肖特基型 TTL (LSTTL) 器件的引
38、腳兼容。74HC164、74HCT164 是 8 位邊沿觸發(fā)式移位寄存器,串行輸入數(shù)據(jù),然后并行輸出。數(shù)據(jù)通過兩個(gè)輸入端(DSA 或 DSB)之一串行輸入;任一輸入端可以用作高電平使能端,控制另一輸入端的數(shù)據(jù)輸入。兩個(gè)輸入端或者連接在一起,或者把不用的輸入端接高電平,一定不要懸空。</p><p> 時(shí)鐘 (CP) 每次由低變高時(shí),數(shù)據(jù)右移一位,輸入到 Q0, Q0 是兩個(gè)數(shù)據(jù)輸入端(DSA 和 DSB)的邏輯
39、與,它將上升時(shí)鐘沿之前保持一個(gè)建立時(shí)間的長度。主復(fù)位 (MR) 輸入端上的一個(gè)低電平將使其它所有輸入端都無效,同時(shí)非同步地清除寄存器,強(qiáng)制所有的輸出為低電平。74HC164的管腳圖如圖3-3所示。</p><p> 圖3-3 74HC164管腳圖</p><p> 本設(shè)計(jì)中用于顯示的LED數(shù)碼管是四位共陰極數(shù)碼管,即每四位LED數(shù)碼管顯示計(jì)價(jià)器模擬裝置的一個(gè)參數(shù)。當(dāng)動(dòng)態(tài)掃描顯示的時(shí)候,
40、用74HC164來將要顯示的字型碼數(shù)據(jù)通過串入并出的方式傳送到LED數(shù)碼管的段選管腳,大大的節(jié)省了單片機(jī)的IO端口,使硬件設(shè)計(jì)變得簡(jiǎn)潔。</p><p><b> 第四章 軟件設(shè)計(jì)</b></p><p> 主控制器芯片為Atmega16,由于處理器速度較快,所以采用C語言編程方便簡(jiǎn)單。軟件編寫使用AVR單片機(jī)軟件開發(fā)平臺(tái)CVAVR編譯器,改編譯器有豐富的AVR單
41、片機(jī)常用函數(shù)模塊、常用外設(shè)硬件驅(qū)動(dòng)動(dòng)態(tài)鏈接庫,使用極其方便,具有高度的人性化。軟件流程圖如圖4-1所示。</p><p> 圖4-1 軟件流程圖</p><p><b> 第五章 系統(tǒng)測(cè)試</b></p><p> 由于時(shí)間不允許,設(shè)計(jì)的出租車計(jì)價(jià)器模擬裝置只在電子仿真平臺(tái)PROTEUS7.0仿真測(cè)試通過。測(cè)試結(jié)果表明,設(shè)計(jì)的出租車計(jì)價(jià)器
42、模擬裝置具有設(shè)計(jì)要求提出的絕大部分功能,并且全部仿真測(cè)試通過。仿真電子線路圖見附件。</p><p><b> 結(jié)論/展望</b></p><p> 在這段時(shí)間里,經(jīng)過自己努力,基本上完成了設(shè)計(jì)要求的內(nèi)容,在系統(tǒng)可行性分析、原理圖設(shè)計(jì)、PCB繪制等方面都作了許多實(shí)際工作,取得了一些成績(jī),同時(shí)也遇到了一些問題,存在一些不足。經(jīng)過這段時(shí)間的學(xué)習(xí)和工作,我覺得自己不論是
43、在理論知識(shí)方面還是在動(dòng)手能力方面都有了不小的進(jìn)步,自己從中受益匪淺。這次設(shè)計(jì)很好的把以前學(xué)到的理論知識(shí)應(yīng)用于實(shí)踐,使我認(rèn)識(shí)到理論知識(shí)與實(shí)踐之間有一定的差距,只有通過不斷的努力學(xué)習(xí)和實(shí)踐才能很好的把理論知識(shí)應(yīng)用到實(shí)踐當(dāng)中,也只有通過不斷的實(shí)踐才能對(duì)理論知識(shí)的理解。</p><p> 通過這次設(shè)計(jì)不僅學(xué)會(huì)了如何去查找相關(guān)資料,更重要的是通過查找資料和翻閱書籍學(xué)到了不少知識(shí),擴(kuò)大了知識(shí)面,提高了知識(shí)水平。經(jīng)過單元設(shè)計(jì)
44、和系統(tǒng)設(shè)計(jì)鞏固了以前所學(xué)的專業(yè)知識(shí),自己真正認(rèn)識(shí)到理論聯(lián)系實(shí)際的重要性,為以后的學(xué)習(xí)和工作提供了很多有價(jià)值的經(jīng)驗(yàn)。通過這次設(shè)計(jì)不僅增強(qiáng)了自己的動(dòng)腦能力和動(dòng)手能力,也提高了我思考問題、分析問題、解決問題的能力,更重要的是學(xué)會(huì)用工程化的思想來解決問題。這在以前的學(xué)習(xí)過程中是不曾學(xué)到的。</p><p> 這次設(shè)計(jì)是我認(rèn)真認(rèn)識(shí)到完整、嚴(yán)謹(jǐn)、科學(xué)分析問題、解決問題的思想是多么的重要,只有擁有了科學(xué)的態(tài)度才能設(shè)計(jì)出有用的
45、產(chǎn)品。另外通過本次設(shè)計(jì),使我認(rèn)識(shí)到自己理論知識(shí)的應(yīng)用能力有很大的欠缺,需要在以后的學(xué)習(xí)中進(jìn)一步提高。</p><p><b> 附錄</b></p><p> 附錄1 出租車計(jì)價(jià)器模擬裝置仿真測(cè)試線路圖</p><p> 附錄2出租車計(jì)價(jià)器模擬裝置電原理圖</p><p> 附錄3出租車計(jì)價(jià)器模擬裝置印制PCB圖
46、</p><p> 附錄4 出租車計(jì)價(jià)器模擬裝置程序清單</p><p> /*****************************************************</p><p> This program was produced by the</p><p> CodeWizardAVR V2.05.0 Pr
47、ofessional</p><p> Automatic Program Generator</p><p> ?Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.</p><p> http://www.hpinfotech.com</p><p> Project : 出租車
48、計(jì)價(jià)器</p><p> Version : 1</p><p> Date : 2011/12/5</p><p> Author : 曾憲金 陳志強(qiáng) 黃寶生</p><p> Company : 廣西大學(xué)電氣工程學(xué)院</p><p> Chip type : ATmeg
49、a16</p><p> Program type : Application</p><p> AVR Core Clock frequency: 8.000000 MHz</p><p> Memory model : Small</p><p> External RAM size
50、 : 0</p><p> Data Stack size : 256</p><p> *****************************************************/</p><p><b> //所需頭文件</b></p><p> #include &l
51、t;mega16.h></p><p> #include <delay.h> </p><p> //預(yù)定義移位寄存器所用端口</p><p> #define HC164_data1 PORTC.0</p><p> #define HC164_clk1 PORTC.1</p><p>
52、 #define HC164_data2 PORTC.2</p><p> #define HC164_clk2 PORTC.3</p><p> #define key_oneway PINC.4</p><p> #define key_pause PINC.5</p><p> #define key_roundtrip PIN
53、C.6</p><p> #define key_clear PINC.7</p><p> #define key_licheng PIND.0</p><p> #define key_jiance PIND.1</p><p> #define key_shezhi PIND.2</p><p> #d
54、efine key_shezhi_jia PIND.4</p><p> #define key_shezhi_jian PIND.5</p><p> //預(yù)定義出租車狀態(tài)所用變量</p><p> #define zhunbei 0</p><p> #define dancheng 1</p><p>
55、 #define zanting 2</p><p> #define wangfan 3 </p><p> #define jiance 4</p><p> #define shezhi 5</p><p> #define mimaqueren 6</p><p> #define lunzi_kon
56、gshu 8 //輪子邊沿所開的孔數(shù),即輪子每轉(zhuǎn)一圈所產(chǎn)生的脈沖數(shù)</p><p> //#define lunzi_banjing 20 //輪子的半徑(單位:mm),用于計(jì)算累加里程 2*3.14*lunzi_banjing即為輪子轉(zhuǎn)過一圈時(shí)里程的累加量(單位也是:mm) </p><p> //定義數(shù)碼管掃描字型碼及位選碼</p><p> fla
57、sh unsigned char led_7[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};</p><p> flash unsigned char position[]={0x00,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x80,0x90,0xa
58、0,0xb0,0xc0,0xd0,0xe0,0xf0};</p><p> //定義taxi結(jié)構(gòu)體</p><p> struct taxi {</p><p> unsigned int licheng;</p><p> unsigned int feiyong;</p><p> unsigned ch
59、ar state; //出租車當(dāng)前狀態(tài),包括單程(1)、往返(2)、暫停三個(gè)狀態(tài)(0) </p><p> unsigned int sudu;</p><p> unsigned int dengdaishijian[2];</p><p> unsigned char fujia_dengdai;</p><p> unsig
60、ned char dancheng_danjia;</p><p> unsigned char wangfan_danjia;</p><p> unsigned int qibujia;</p><p> unsigned char qibulicheng;</p><p> } ; </p>
61、<p> struct taxi mytaxi; //聲明mytaxi結(jié)構(gòu)體</p><p> unsigned char dis_buff[]; //聲明顯示緩存區(qū)</p><p> bit keyflag_oneway = 1;</p><p> bit keyflag_pause = 1;</p>
62、<p> bit keyflag_roundtrip = 1;</p><p> bit keyflag_licheng = 1;</p><p> bit keyflag_jiance = 1;</p><p> bit keyflag_clear = 1;</p><p> bit keyflag_shezhi =
63、 1;</p><p> bit keyflag_shezhi_jia = 1;</p><p> bit keyflag_shezhi_jian = 1;</p><p> bit flag_dancheng=0;</p><p> bit flag_wangfan=0; </p><p> bit fl
64、ag_zanting=0;</p><p> bit flag_jiance=0;</p><p> bit time_lichengleijiajia_ok=0;</p><p> unsigned char qibujia_from_epprom=0;</p><p> unsigned int timecounter = 0;&
65、lt;/p><p> unsigned int interrupt_timecounter = 0; //每?jī)蓚€(gè)車速檢測(cè)脈沖中斷之間的時(shí)間間隔(ms)</p><p> unsigned int speed_time = 0;//輪子轉(zhuǎn)過一圈(輪子邊沿所開的孔數(shù)個(gè)脈沖累計(jì))所需要的時(shí)間</p><p> unsigned char interrupt_c
66、ishu = 0; //判斷是否轉(zhuǎn)過一圈</p><p> unsigned int leijia_licheng = 0; //通過速度來累加里程數(shù)(中間變量)</p><p> //unsigned int licheng_timecounter = 0; //多長時(shí)間更新累加里程數(shù)(因?yàn)槔锍汤奂邮怯眠@個(gè)定時(shí)時(shí)間乘以當(dāng)時(shí)的瞬時(shí)速度得到的,所以這個(gè)定時(shí)時(shí)間必須足夠小才能保
67、證里程累加的準(zhǔn)確性)</p><p> void eeprom_write(unsigned int uiAddress,unsigned char ucData) //寫EEPROM函數(shù)</p><p><b> {</b></p><p> while(EECR&(1<<EEWE)); //Wait for c
68、ompletion of previous write</p><p> EEAR = uiAddress; //Set up address register</p><p> EEDR = ucData; //Set up data register </p><p> EECR |= (1<<EEMWE); //Write
69、 logical one to EEMWE</p><p> EECR |= (1<<EEWE); //Start eeprom write by setting EEWE</p><p><b> } </b></p><p> /*for example</p><p> eeprom_wri
70、te(0x01,135);</p><p> eeprom_write(0x02,246); */ </p><p> unsigned char eeprom_read(unsigned int uiAddress) //讀EEPROM函數(shù)</p><p><b> {</b></p><p> while(
71、EECR&(1<<EEWE)); //Wait for completion of previous write</p><p> EEAR = uiAddress; //Set up address register</p><p> EECR |= (1<<EERE); //Start eeprom read by writting EER
72、E</p><p> return EEDR; //Return data from data register</p><p><b> } </b></p><p> /*for example</p><p> mytaxi.qibulicheng = eeprom_read(0x01);</p&
73、gt;<p> mytaxi.qibujia = eeprom_read(0x02); */</p><p> void init(void) //初始化控制器端口及taxi各項(xiàng)參數(shù)</p><p><b> { </b></p><p> PORTA = 0xff; </p><p&g
74、t; DDRA = 0xff;</p><p> PORTB = 0x00;</p><p> DDRB = 0xff;</p><p> PORTC=0xff;</p><p> DDRC=0x0f; </p><p> PORTD=0xff;</p><p> DDRD=0x8
75、0;</p><p> mytaxi.licheng = 0; //實(shí)際里數(shù)的十倍</p><p> mytaxi.feiyong = 0; //實(shí)際費(fèi)用的100倍</p><p> mytaxi.state = zhunbei;</p><p> mytaxi.sudu = 0; //實(shí)際速度的十倍</p>&
76、lt;p> mytaxi.dengdaishijian[0] = 0; //dengdaishijian[0]為等待時(shí)間分鐘數(shù)</p><p> mytaxi.dengdaishijian[1] = 0; //dengdaishijian[1]為等待時(shí)間秒數(shù) </p><p> mytaxi.fujia_dengdai = 0;</p><p>
77、 //eeprom_write(0x03,20);</p><p> // eeprom_write(0x04,15); //存儲(chǔ)的是起步價(jià)的十倍(char型,最大存儲(chǔ)255),但顯示的是費(fèi)用的百倍</p><p> //mytaxi.qibulicheng = eeprom_read(0x01);</p><p> //qibujia_from_epprom
78、 = eeprom_read(0x02);</p><p> //mytaxi.qibujia = (unsigned int) qibujia_from_epprom*10;</p><p><b> } </b></p><p> void to_disbuffer(void) //更新顯示緩存區(qū)函數(shù)</p>&
79、lt;p><b> {</b></p><p> unsigned char j=0; </p><p> //dis_buff[j++] = 0; //出現(xiàn)了個(gè)debug,找不出來,先把它覆蓋先</p><p> //dis_buff[j++] = 0; </p><p> dis_buff[j++
80、] = mytaxi.feiyong%10;</p><p> dis_buff[j++] = (mytaxi.feiyong%100)/10; </p><p> dis_buff[j++] = (mytaxi.feiyong%1000)/100; </p><p> dis_buff[j++] = (mytaxi.feiyong%10000)/1000;
81、</p><p> dis_buff[j++] = mytaxi.feiyong/10000; </p><p> dis_buff[j++] = mytaxi.licheng%10; </p><p> dis_buff[j++] = (mytaxi.licheng%100)/10; </p><p> dis_buff[j+
82、+] = (mytaxi.licheng%1000)/100; </p><p> dis_buff[j++] = mytaxi.licheng/1000; </p><p> dis_buff[j++] = mytaxi.dengdaishijian[1]%10; </p><p> dis_buff[j++] = mytaxi.dengdaishi
83、jian[1]/10; </p><p> dis_buff[j++] = mytaxi.dengdaishijian[0]%10; </p><p> dis_buff[j++] = mytaxi.dengdaishijian[0]/10; </p><p> dis_buff[j++] = mytaxi.sudu%10;</p><
84、;p> dis_buff[j++] = (mytaxi.sudu%100)/10; </p><p> dis_buff[j++] = (mytaxi.sudu%1000)/100; </p><p> dis_buff[j++] = mytaxi.sudu/1000; </p><p><b> }</b&
85、gt;</p><p> void HC164_sent_bit1(char byte) //移位寄存器1發(fā)送數(shù)據(jù)函數(shù)</p><p><b> {</b></p><p><b> char i;</b></p><p> for(i=0;i<=7;i++)</p>
86、;<p><b> {</b></p><p> HC164_data1=byte&(1<<i);</p><p> HC164_clk1=1; </p><p> HC164_clk1=0; </p><p><b> }</b></p>
87、<p><b> } </b></p><p> void HC164_sent_bit2(char byte) //移位寄存器2發(fā)送數(shù)據(jù)函數(shù)</p><p><b> {</b></p><p><b> char i;</b></p><p
88、> for(i=0;i<=7;i++)</p><p><b> {</b></p><p> HC164_data2=byte&(1<<i);</p><p> HC164_clk2=1; </p><p> HC164_clk2=0; </p><p&
89、gt;<b> }</b></p><p><b> } </b></p><p> void display(void) //數(shù)碼管掃描顯示函數(shù)1(顯示車?yán)锍虜?shù)和金額數(shù))</p><p><b> {</b></p><p> unsigned
90、char temp1,i;</p><p> to_disbuffer();</p><p> for(i=0;i<=7;i++)</p><p><b> {</b></p><p> temp1=led_7[dis_buff[i+1]]; //i+1是為了忽略費(fèi)用的最低位,但是還是存在的,只是不顯示而
91、已 </p><p> if(i==1||i==5)</p><p> HC164_sent_bit1(temp1|=0x80); //小數(shù)點(diǎn)顯示</p><p><b> else</b></p><p> HC164_sent_bit1(temp1); //PORTC&=0x03
92、; //PORTC|=position[(5-i)];</p><p> PORTA = position[i+1]; </p><p> delay_us(2100);</p><p> PORTA = position[0]; </p><p><b> } </b></p>&l
93、t;p><b> }</b></p><p> void display_one(void) //數(shù)碼管掃描顯示函數(shù)2(顯示車速度和等待時(shí)間)</p><p><b> {</b></p><p> unsigned char temp1,i;</p><p> to
94、_disbuffer();</p><p> for(i=8;i<=15;i++)</p><p><b> {</b></p><p> temp1=led_7[dis_buff[i+1]]; //i+1是為了忽略費(fèi)用的最低位,但是還是存在的,只是不顯示而已 </p><p> if(i==10
95、||i==13)</p><p> HC164_sent_bit2(temp1|=0x80); //小數(shù)點(diǎn)顯示</p><p><b> else</b></p><p> HC164_sent_bit2(temp1); //PORTC&=0x03; //PORTC|=position[(5-i)];</p&g
96、t;<p> PORTA = position[i+1]; </p><p> delay_us(2100);</p><p> PORTA = position[0]; </p><p><b> } </b></p><p><b> }</b></p>
97、;<p> /////////////////////////////////////////////////////////////////////////////</p><p><b> /*</b></p><p> unsigned char read_key()</p><p><b> {</
98、b></p><p> static char key_state=0,key_value,key_line;</p><p> char key_return=255,i;</p><p> unsigned char tmp;</p><p> switch(key_state)</p><p>&l
99、t;b> {</b></p><p> case 0:key_line=0x10; </p><p> for(i=1;i<=4;i++)</p><p><b> {</b></p><p> key_port=~key_line;</p><p> key_
100、port=~key_line;</p><p> tmp=key_port;</p><p> tmp=key_port;</p><p> key_value=tmp&0x0f;</p><p> if(key_value==0x0f)</p><p><b> {</b>&l
101、t;/p><p> key_line<<=1;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> key_state++;</p>&
102、lt;p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> break;</b></p><p> case 1:if(key_value==(key_po
103、rt&0x0f))</p><p><b> {</b></p><p> switch(key_value|key_line)</p><p><b> {</b></p><p> case 0x1e:key_return=0;break;</p><p>
104、; case 0x1d:key_return=1;break;</p><p> case 0x1b:key_return=2;break;</p><p> case 0x17:key_return=3;break;</p><p> case 0x2e:key_return=4;break;</p><p> case 0x2d
105、:key_return=5;break;</p><p> case 0x2b:key_return=6;break;</p><p> case 0x27:key_return=7;break;</p><p> case 0x4e:key_return=8;break;</p><p> case 0x4d:key_return=
106、9;break;</p><p> case 0x4b:key_return=10;break;</p><p> case 0x47:key_return=11;break;</p><p> case 0x8e:key_return=12;break;</p><p> case 0x8d:key_return=13;break;
107、</p><p> case 0x8b:key_return=14;break;</p><p> case 0x87:key_return=15;break;</p><p><b> }</b></p><p> key_state++;</p><p><b> }<
108、;/b></p><p><b> else</b></p><p><b> {</b></p><p> key_state--;</p><p><b> }</b></p><p><b> break;</b&g
109、t;</p><p> case 2: key_port=0x0f;</p><p> key_port=0x0f;</p><p> tmp=key_port;</p><p> tmp=key_port;</p><p> if((tmp&0x0f)==0x0f) </p><
110、;p><b> {</b></p><p> key_state=0;</p><p><b> }</b></p><p><b> break;</b></p><p><b> }</b></p><p>
111、return key_return;</p><p><b> }</b></p><p><b> */</b></p><p> /////////////////////////////////////////////////////////////////////////////</p>&l
112、t;p> // Timer 0 output compare interrupt service routine</p><p> interrupt [TIM0_COMP] void timer0_comp_isr(void)</p><p><b> {</b></p><p> //time_scan_ok=1;
113、 //一毫秒定時(shí)到標(biāo)志位 </p><p> /*if(++licheng_timecounter==200)</p><p><b> {</b></p><p> time_lichengleijiajia_ok=1;</p><p> licheng_timecounter=0; <
114、/p><p><b> }*/</b></p><p> if(++interrupt_timecounter%100==0)time_lichengleijiajia_ok=1; //記錄每?jī)蓚€(gè)脈沖中斷之間的時(shí)間間隔 (毫秒值)</p><p> if(flag_zanting) //判斷是否在等待狀態(tài),是則更新等待時(shí)間,否則不更
115、新</p><p> { </p><p> if(++timecounter==10)//1s定時(shí)到 等待時(shí)間加一 暫停狀態(tài)下更新等待時(shí)間</p><p> { </p><p> if(++mytaxi.dengdaishijian[1]>=60)</p>&l
116、t;p><b> {</b></p><p> mytaxi.dengdaishijian[1] = 0; </p><p> mytaxi.dengdaishijian[0] += 1 ; //dengdaishijian[0]為等待時(shí)間分鐘數(shù)</p><p> if(++mytaxi.fujia_dengdai>
117、=5){mytaxi.fujia_dengdai = 0; mytaxi.feiyong += mytaxi.dancheng_danjia*10;} //等待每增加五分鐘增加一公里的費(fèi)用</p><p><b> }</b></p><p> timecounter=0; </p><p><b> }
118、 </b></p><p> //PORTB.7=~PORTB.7; //測(cè)試用 </p><p><b> } </b></p><p><b> }</b></p><p> // External Interrupt 1 service r
119、outine</p><p> interrupt [EXT_INT1] void ext_int1_isr(void)</p><p><b> {</b></p><p> // Place your code here</p><p> //規(guī)定轉(zhuǎn)盤轉(zhuǎn)速為5轉(zhuǎn)/分對(duì)應(yīng)車速5公里/小時(shí),轉(zhuǎn)盤轉(zhuǎn)速為50轉(zhuǎn)/分對(duì)
120、應(yīng)車速50公里/小時(shí),依此類推。</p><p> if(flag_jiance)</p><p><b> {</b></p><p> speed_time += interrupt_timecounter; //累計(jì)脈沖之間的時(shí)間間隔(毫秒)</p><p> interrupt_timecounter
121、= 0;</p><p> if(++interrupt_cishu==lunzi_kongshu)</p><p> { //計(jì)算一分鐘多少轉(zhuǎn),顯示的速度為真實(shí)速度的十倍 (+ 5是為了修正整形數(shù)計(jì)算誤差)</p><p> mytaxi.sudu = 600000/speed_time + 5; //(60秒/分鐘 * 1000毫秒/秒 *10十倍實(shí)
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 出租車計(jì)價(jià)器課程設(shè)計(jì)報(bào)告
- 出租車計(jì)價(jià)器課程設(shè)計(jì)
- 出租車計(jì)價(jià)器課程設(shè)計(jì)
- 出租車計(jì)價(jià)器課程設(shè)計(jì)
- 出租車計(jì)價(jià)器課程設(shè)計(jì)
- 課程設(shè)計(jì)--出租車計(jì)價(jià)器設(shè)計(jì)
- 出租車計(jì)價(jià)器設(shè)計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)---出租車計(jì)價(jià)器設(shè)計(jì)
- 課程設(shè)計(jì)---出租車計(jì)價(jià)器設(shè)計(jì)
- eda課程設(shè)計(jì)報(bào)告--出租車計(jì)價(jià)器
- 硬件課程設(shè)計(jì)報(bào)告--出租車計(jì)價(jià)器
- eda課程設(shè)計(jì)報(bào)告---出租車計(jì)價(jià)器
- 課程設(shè)計(jì)---出租車計(jì)價(jià)器的設(shè)計(jì)
- 課程設(shè)計(jì)--出租車計(jì)價(jià)器的設(shè)計(jì)
- 硬件課程設(shè)計(jì)----出租車計(jì)價(jià)器
- eda課程設(shè)計(jì)--出租車計(jì)價(jià)器
- eda課程設(shè)計(jì)--出租車計(jì)價(jià)器
- 出租車計(jì)價(jià)器課程設(shè)計(jì)論文
- 接口課程設(shè)計(jì)---出租車計(jì)價(jià)器
- 課程設(shè)計(jì)---出租車計(jì)程計(jì)價(jià)器的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論