版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢 業(yè) 設(shè) 計(jì)</b></p><p> 題 目 基于單片機(jī)的出租車計(jì)價(jià)器 </p><p> 畢 業(yè) 設(shè) 計(jì) 任 務(wù) 書</p><p> 畢 業(yè) 設(shè) 計(jì)(論 文)開 題 報(bào) 告</p><p> 畢 業(yè) 設(shè) 計(jì)(論 文)開 題 報(bào) 告</p&
2、gt;<p><b> 摘 要</b></p><p> 隨著城市改革開放的進(jìn)一步深化,出租車行業(yè)迅速發(fā)展,出租車計(jì)價(jià)器的市場需求量也大大增加,計(jì)價(jià)器作為出租車的一個(gè)重要組成部分,計(jì)價(jià)器的普及必將大勢所趨,預(yù)計(jì)未來計(jì)價(jià)器市場將很有發(fā)展前景。與此同時(shí)計(jì)價(jià)器作為出租汽車的經(jīng)營者和乘坐出租汽車的消費(fèi)者之間用于公平貿(mào)易結(jié)算的工具,計(jì)價(jià)器計(jì)價(jià)準(zhǔn)確與否,直接關(guān)系到經(jīng)營者和消費(fèi)者的經(jīng)濟(jì)利
3、益。因此怎樣設(shè)計(jì)出一種既能準(zhǔn)確計(jì)價(jià)又能方便司機(jī)的計(jì)價(jià)器尤為重要。</p><p> 本課題是出租車計(jì)價(jià)器系統(tǒng)的設(shè)計(jì)。以出租車計(jì)價(jià)器的實(shí)用性和節(jié)約成本為起點(diǎn)出發(fā),以AT89S52 單片機(jī)為中心、通過霍爾傳感器對脈沖的計(jì)數(shù)實(shí)現(xiàn)對里程和總金額的統(tǒng)計(jì),人機(jī)交互界面輸出采用LCD1602液晶屏。獨(dú)立按鍵進(jìn)行復(fù)位、清零、白天黑夜模式選擇功能的控制,本電路設(shè)計(jì)的計(jì)價(jià)器不但能實(shí)現(xiàn)基本的計(jì)價(jià),掉電時(shí)進(jìn)行數(shù)據(jù)存儲,而且還能根據(jù)白天
4、、黑夜、中途等待來調(diào)節(jié)單價(jià),進(jìn)行里程、單價(jià)、總車價(jià)相關(guān)信息的顯示。</p><p> 關(guān)鍵詞:出租車計(jì)價(jià)器 AT89S52 霍爾傳感器 軟硬件設(shè)計(jì)</p><p> Title Microcontroller-based taxi meter </p><p><b> Abstract:
5、</b></p><p> With the further deepening of reform and opening up of the city, the taxi industry rapid development, the taximeter market demand also increased significantly, as an important part of the
6、 taxi meter, the meter's popularity is bound to the trend of the times, it is expected that the future meterthe market is promising. At the same time the meter as taxi operators and taxi consumer tools for fair trade
7、 settlement, the accuracy of the meter denominated, directly related to the economic interests of</p><p> The issue is the design of the taxi meter system. Taxi meter practicality and cost savings as the st
8、arting point, AT89S52 microcontroller as pulse count on the mileage and the total amount of statistics, interactive interface output LCD1602 LCD. Independent button reset, clear, day and night control mode selection func
9、tion, the meter circuit design not only to achieve the basic pricing, but also according to the day and night, half-way wait to adjust the unit price, mileage, price, gross vehicle</p><p> Keywords: taxi me
10、ter AT89S52 Hall sensor hardware and software designed</p><p><b> 目 錄</b></p><p> 1 引言 …………………………………………………………………………………………1</p><p> 2 出租車計(jì)價(jià)器的方案論證…………………………………………
11、………………………2</p><p> 2.1 出租車計(jì)價(jià)器的基本功能…………………………………………………………………2</p><p> 2.2 出租車計(jì)價(jià)器的主要設(shè)計(jì)參數(shù)……………………………………………………………2</p><p> 2.3 方案論證與比較……………………………………………………………………………3</p><p&
12、gt; 3 系統(tǒng)硬件設(shè)計(jì)………………………………………………………………………………4</p><p> 3.2 單片機(jī)的介紹………………………………………………………………………………4</p><p> 3.3 硬件電路組成………………………………………………………………………………7</p><p> 3.3.1 復(fù)位電路……………………………………
13、……………………………………………8</p><p> 3.3.2 晶振震蕩電路……………………………………………………………………………9</p><p> 3.3.3 數(shù)據(jù)采集模塊介紹………………………………………………………………………9</p><p> 3.3.4 掉電存儲模塊介紹 ……………………………………………………………………10</p
14、><p> 3.3.5 按鍵模塊介紹 …………………………………………………………………………11</p><p> 4.系統(tǒng)軟件設(shè)計(jì) ………………………………………………………………………………13</p><p> 4.1主程序模塊 ………………………………………………………………………………13</p><p> 4.2 中斷程序流
15、程圖 …………………………………………………………………………13</p><p> 5.系統(tǒng)調(diào)試 ……………………………………………………………………………………16</p><p> 5.1 軟件測試 …………………………………………………………………………………18</p><p> 5.1.1編程工具—C51語言 …………………………………………………
16、……………….18</p><p> 5.1.2 單片機(jī)仿真軟件在線調(diào)試—PROTEUS ………………………………………………18</p><p> 5.2 硬件調(diào)試 …………………………………………………………………………………19</p><p> 結(jié) 論 …………………………………………………………………………………………20</p>&
17、lt;p> 致 謝 …………………………………………………………………………………………21</p><p> 參 考 文 獻(xiàn)……………………………………………………………………………………22</p><p> 附 錄……………………………………………………………………………………………23</p><p><b> 1 引言</
18、b></p><p> 隨著生活水平的提高,人們已不再滿足于衣食住的享受,出行的舒適已受到越來越多人的關(guān)注。于是,出租車行業(yè)以快捷便利的服務(wù)給人們帶來了出行的享受。但是,一直以來存在著的買賣糾紛困擾著行業(yè)的發(fā)展。而在出租車行業(yè)中解決這一矛盾的最好方法就是改良計(jì)價(jià)器。用更加精良的計(jì)價(jià)器來為乘客提供更加方便快捷的服務(wù)。 我國在70年代開始出現(xiàn)出租車,但那時(shí)的計(jì)費(fèi)系統(tǒng)大都是國外進(jìn)口不但不夠準(zhǔn)確,價(jià)格還十
19、分昂貴。隨著改革開放日益深入,出租車行業(yè)的發(fā)展勢頭已十分突出,國內(nèi)各機(jī)械廠家紛紛推出國產(chǎn)計(jì)價(jià)器。出租車計(jì)價(jià)器的功能從剛開始的只顯示路程,到能夠自主計(jì)費(fèi),以及現(xiàn)在的能夠打發(fā)票和語音提示、按時(shí)間自主變動單價(jià)等功能。隨著城市旅游業(yè)的發(fā)展,出租車行業(yè)已成為城市的窗口,象征著一個(gè)城市的文明程度。 鑒于目前有關(guān)出租車計(jì)費(fèi)又出臺了新的政策,在原有政策基礎(chǔ)上新增了等待費(fèi)用,為了與時(shí)俱進(jìn),設(shè)計(jì)一個(gè)計(jì)費(fèi)功能較全面的系統(tǒng)也已是迫在眉睫。 凡乘
20、過出租車的人都知道,只要汽車開動,隨著行駛里程的增加,就會看到汽車前面的計(jì)價(jià)器里程數(shù)字顯示的讀數(shù)從零逐漸增大,而當(dāng)行駛到某一值時(shí)計(jì)費(fèi)數(shù)字顯示開始從起步價(jià)增加。當(dāng)出租車到達(dá)某地需</p><p> 2 出租車計(jì)價(jià)器的方案論證</p><p> 2.1 出租車計(jì)價(jià)器的基本功能</p><p> 本課題所設(shè)計(jì)的出租車計(jì)價(jià)器的主要功能有:數(shù)據(jù)的復(fù)位、白天/晚上轉(zhuǎn)換、
21、計(jì)時(shí)計(jì)價(jià)、路程和總金額的統(tǒng)計(jì),掉電數(shù)據(jù)儲存。當(dāng)按下按鍵后,啟動計(jì)價(jià)器,開始采集脈沖信號,然后傳送到單片機(jī),單片機(jī)進(jìn)行處理,計(jì)算出行駛路程以及總金額,將計(jì)算結(jié)果通過液晶顯示屏顯示,本電路設(shè)計(jì)的計(jì)價(jià)器不但能實(shí)現(xiàn)基本的計(jì)價(jià),還能根據(jù)白天、黑夜、中途等待來調(diào)節(jié)單價(jià),并且在計(jì)價(jià)器掉電后能將數(shù)據(jù)存儲,不影響后續(xù)計(jì)費(fèi)功能。</p><p> 2.2 出租車計(jì)價(jià)器的主要設(shè)計(jì)參數(shù)</p><p> 本課
22、題對出租車計(jì)價(jià)器的設(shè)計(jì)要求如下:</p><p> 設(shè)計(jì)一個(gè)出租車自動計(jì)價(jià)器,計(jì)價(jià)包括起步價(jià)、行車?yán)锍逃?jì)費(fèi)、等待時(shí)間計(jì)費(fèi)三部分,用1602液晶顯示總金額,運(yùn)行時(shí)間,最大值為999元,起步價(jià)為6元,等待時(shí)間單價(jià)為超過等待時(shí)間30秒后每分鐘1元,用液晶顯示總里程、等待時(shí)間和總金額。</p><p><b> 1、計(jì)費(fèi)功能</b></p><p>
23、; 費(fèi)用的計(jì)算是按行駛里程收費(fèi)。設(shè)白天起步價(jià)為6元,晚上起步價(jià)為7元。</p><p> 等待時(shí)間超過30秒后按1元/min計(jì)費(fèi),未超過30秒時(shí)清零等待時(shí)間。</p><p><b> 2、顯示功能</b></p><p> (1)顯示單價(jià):用兩位數(shù)字顯示,顯示方式“XX”,單位為1元/km.</p><p>
24、?。?)顯示行駛里程:用兩位數(shù)字顯示,顯示方式為“XX”,單位為km。計(jì)程范圍0-99km,里程精確到1km。</p><p> ?。?)顯示總費(fèi)用:用三位數(shù)字顯示,顯示方式為“XXX”,單位為元。計(jì)價(jià)范圍0-999元,精確到1元。</p><p> 2.3方案論證與比較</p><p> 方案一: 采用數(shù)字電子技術(shù),利用555定時(shí)芯片構(gòu)成多諧振蕩器,或采用外圍
25、的晶振電路作為時(shí)鐘脈沖信號,計(jì)數(shù)芯片對脈沖的計(jì)數(shù)和分頻,最后通過譯碼電路對數(shù)據(jù)進(jìn)行譯碼,將譯碼所得的數(shù)據(jù)送給數(shù)碼管顯示。</p><p> 方案二:用FPGA(可編程門陣列)實(shí)現(xiàn):利用硬件描述語言編程,仿真調(diào)試后下載到可編程期間上(CPLD)上實(shí)現(xiàn)??梢詫τ?jì)程車整個(gè)過程進(jìn)行判斷、處理。整個(gè)過程完全實(shí)現(xiàn)了自動化和智能化。 </p><p> 方案三:采用單片機(jī)控制。以單片機(jī)為核心,設(shè)計(jì)上
26、采用89S52單片機(jī)為主控器,利用單片機(jī)豐富的IO端口,及其控制的靈活性,實(shí)現(xiàn)基本的里程計(jì)價(jià)功能和價(jià)格選擇功能。不但能實(shí)現(xiàn)所要求的功能而且能在很大的程度上擴(kuò)展功能,而且還可以方便的對系統(tǒng)進(jìn)行升級。</p><p> 通過各個(gè)方案的比較,我們知道采用數(shù)字電路設(shè)計(jì)的計(jì)價(jià)器整體電路的規(guī)模較大,用到的器件多,造成故障率高,并且難調(diào)試,而采用單片機(jī)進(jìn)行設(shè)計(jì),相對來說功能強(qiáng)大,用較少的硬件和適當(dāng)?shù)能浖嗷ヅ浜峡梢院苋菀椎膶?shí)
27、現(xiàn)設(shè)計(jì)要求,且靈活性強(qiáng),有較大的活動空間,可以通過軟件編程來完成更多的附加功能,方便對系統(tǒng)進(jìn)行升級和功能擴(kuò)展。所以我們采用第三方案,用AT89S52單片機(jī)實(shí)現(xiàn)出租車計(jì)價(jià)的功能。</p><p> 系統(tǒng)結(jié)構(gòu)如圖2.1下:</p><p> 圖2.1 系統(tǒng)結(jié)構(gòu)圖</p><p><b> 3. 系統(tǒng)硬件設(shè)計(jì)</b></p>&l
28、t;p> 3.1 硬件設(shè)計(jì)說明</p><p> 單片機(jī)是單片微型計(jì)算機(jī)的簡稱,單片機(jī)以其卓越的性能,得到廣泛的應(yīng)用,已經(jīng)深入到各個(gè)領(lǐng)域。在這次設(shè)計(jì)中,我們用到P0口和P2口,P0口為8位三態(tài)I/O口,此口為地址總線及數(shù)據(jù)總線分時(shí)復(fù)用;P2口為8位準(zhǔn)雙向口,與地址總線高八位復(fù)用;P0口和P2口都有一定的驅(qū)動能力,P0口的驅(qū)動能力較強(qiáng)。 </p><p> 在數(shù)據(jù)采集部分本系統(tǒng)采
29、用霍爾傳感器A3144,</p><p> 在數(shù)據(jù)顯示部分本系統(tǒng)采用的是LCD1602這款液晶屏,由于采用LCD液晶屏顯示器功能強(qiáng)大,可顯示各種字體的數(shù)字、漢字、圖像,還可以自定義顯示內(nèi)容,時(shí)尚美觀,而且液晶的功耗和LED比起來要小的多。</p><p> 我們還設(shè)計(jì)了控制按鍵,能夠很好的對出租車計(jì)價(jià)器控制,如啟動/停止按鍵,清零按鍵,白天黑夜模式選擇等。</p><
30、;p> 3.2 單片機(jī)的介紹</p><p> AT89S52是一種低功耗、高性能CMOS 8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52在眾
31、多嵌入式控制應(yīng)用系統(tǒng)中得到廣泛應(yīng)用。</p><p> AT89S52基本特性:</p><p> 8 位的 CPU, 片內(nèi)有振蕩器和時(shí)鐘電路,工作頻率為0~24MHz片內(nèi)有 256字節(jié) 數(shù)據(jù)存儲器 RAM片內(nèi)有 8K字節(jié) 程序存儲器 ROM4個(gè)8位 的并行I/O口(P0、P1、P2、P3)1個(gè) 全雙工串行通訊口3個(gè)16位 定時(shí)器/計(jì)數(shù)器(T0、T1、T2)可處理 6個(gè)中
32、斷源,兩級中斷優(yōu)先級</p><p> AT89S52的引腳如圖所示3.1: </p><p> 圖3.1 AT89S52的引腳結(jié)構(gòu) 圖3.2 AT89S52封裝圖</p><p> AT89S52各引腳功能說明:</p><p> P0 口:P0口是一個(gè)
33、8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個(gè)TTL邏 輯電平。對P0端口寫“1”時(shí),引腳用作高阻抗輸入。 當(dāng)訪問外部程序和數(shù)據(jù)存儲器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下, P0不具有內(nèi)部上拉電阻。 在flash編程時(shí),P0口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn) 時(shí),需要外部上拉電阻。</p><p> P1 口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,
34、p1 輸出緩沖器能驅(qū)動4 個(gè) TTL 邏輯電平。對P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。</p><p> 此外,P1.0和P1.1分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和定時(shí)器/計(jì)數(shù)器2 的觸發(fā)輸入(P1.1/T2EX)。 在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。</p
35、><p><b> 引腳號第二功能:</b></p><p> P1.0 T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出</p><p> P1.1 T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制)</p><p> P1.5 MOSI(在系統(tǒng)編程用)</p><p> P1
36、.6 MISO(在系統(tǒng)編程用)</p><p> P1.7 SCK(在系統(tǒng)編程用)</p><p> P2 口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個(gè) TTL 邏輯電平。對P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 在訪問外部程序存儲器或用
37、16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR) 時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用 8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲器時(shí),P2口輸出P2鎖存器的內(nèi)容。 在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號。</p><p> P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p3 輸出緩沖器能驅(qū)動4 個(gè) TT
38、L 邏輯電平。對P3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入 口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。 在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號。</p><p> 端口引腳 第二功能:</p><p> P3.0 RXD(串行輸入口)<
39、;/p><p> P3.1 TXD(串行輸出口)</p><p> P3.2 INTO(外中斷0)</p><p> P3.3 INT1(外中斷1)</p><p> P3.4 TO(定時(shí)/計(jì)數(shù)器0)</p><p> P3.5 T1(定時(shí)/計(jì)數(shù)器1)</p><p> P3.6 WR(
40、外部數(shù)據(jù)存儲器寫選通)</p><p> P3.7 RD(外部數(shù)據(jù)存儲器讀選通)</p><p> 此外,P3口還接收一些用于FLASH閃存編程和程序校驗(yàn)的控制信號。</p><p> RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將是單片機(jī)復(fù)位。</p><p> ALE/PROG:當(dāng)訪問外部程序存儲器或數(shù)據(jù)
41、存儲器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時(shí)將跳過一個(gè)ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此
42、外,該引腳會被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無效。</p><p> PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89S52由外部程序存儲器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。</p><p> EA/VPP:外部訪問允許,欲使CPU僅訪問外部程序存儲
43、器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。FLASH存儲器編程時(shí),該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。</p><p> XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。</p><
44、p> XTAL2:振蕩器反相放大器的輸出端。</p><p> 3.3 硬件電路組成</p><p> 本系統(tǒng)硬件電路組成主要包括:復(fù)位電路、晶振震蕩電路、顯示模塊,掉電存儲電路,按鍵電路。</p><p> 整體硬件原理圖如圖3.3所示</p><p> 圖3.3 硬件電路原理圖</p><p>
45、 3.3.1 復(fù)位電路</p><p> 復(fù)位操作有兩種基本形式:一種是上電復(fù)位,另一種是按鍵復(fù)位。本系統(tǒng)采用按鍵復(fù)位(如圖3.4)。</p><p> 按鍵復(fù)位電路原理:在單片機(jī)啟動后,電容C兩端的電壓持續(xù)充電為5V,這是時(shí)候10K電阻兩端的電壓接近于0V,RESET處于低電平所以系統(tǒng)正常工作。當(dāng)按鍵按下的時(shí)候,開關(guān)導(dǎo)通,這個(gè)時(shí)候電容兩端形成了一個(gè)回路,電容被短路,所以在按鍵按下的這
46、個(gè)過程中,電容開始釋放之前充的電量。隨著時(shí)間的推移,電容的電壓從5V釋放到變?yōu)榱?.5V,甚至更小。根據(jù)串聯(lián)電路電壓為各處之和,這個(gè)時(shí)候10K電阻兩端的電壓為3.5V,甚至更大,所以RESET引腳又接收到高電平。單片機(jī)系統(tǒng)自動復(fù)位。</p><p> 圖3.4 按鍵復(fù)位電路</p><p> 3.3.2 晶振震蕩電路</p><p> 單片機(jī)內(nèi)部有一個(gè)高增益、
47、反相放大器,其輸入端為芯片引腳XTAL1,其輸出端為引腳XTAL2。通過這兩個(gè)引腳在芯片外并接石英晶體振蕩器和兩只電容(電容一般取30pF)。這樣就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。振蕩電路脈沖經(jīng)過二分頻后作為系統(tǒng)的時(shí)鐘信號,再在二分頻的基礎(chǔ)上三分頻產(chǎn)生ALE信號,此時(shí)得到的信號是機(jī)器周期信號。晶振電路如圖3.5所示:</p><p> 圖 3.5 晶振震蕩電路</p><p> 3.3.3
48、 數(shù)據(jù)采集模塊介紹</p><p> 里程計(jì)算是通過安裝在車輪上的霍爾傳感器A44E檢測到的信號,送到單片機(jī),經(jīng)處理計(jì)算,送給顯示單元的。其原理如圖3.6所示。</p><p> 圖3.6傳感器測距原理圖 </p><p> 一端接在P3.2口,另一端接地,車輪每轉(zhuǎn)一圈小磁鐵提供一個(gè)磁場,通過霍爾傳感器進(jìn)出磁場來回高低電平的變化,就檢測并輸出信號,引起單片
49、機(jī)的中斷,每中斷一次代表汽車輪胎旋轉(zhuǎn)了一圈。本設(shè)計(jì)以165/70R14這款輪胎為準(zhǔn),165代表胎寬,指輪胎的名義寬度就是165mm,就是輪胎與地面接觸的那個(gè)面得寬度。/70代表扁平比,指輪胎的扁平比是70% ,扁平比可以間接反映胎壁的名義高度胎壁的名義高度計(jì)算式為:名義寬度×扁平比。所以該輪胎的胎壁名義高度為:165mm×70%=115.5mm。</p><p> 輪胎的外圓半徑為:胎壁高度
50、(115.5mm)+輪胎內(nèi)圓半徑(330.2mm/2) ;</p><p> 周長=2*3.14*半徑;所以汽車輪胎轉(zhuǎn)一圈大概行駛1.88米,輪胎旋轉(zhuǎn)圈543轉(zhuǎn)行駛一公里的路程,通過在程序中設(shè)置的里程和金額的信息,就可以在LCD顯示屏上分別顯示總金額和總里程。</p><p> 霍爾傳感器集成芯片管腳圖如圖3.7所示</p><p> 圖3.7 霍爾傳感器集成
51、芯片管腳圖</p><p> 霍爾傳感器集成芯片A44E外部引腳說明:</p><p> Vcc 外接供電電源輸入端</p><p><b> GND外接電源地</b></p><p> OUT 數(shù)字信號輸出端</p><p> 3.3.4 掉電存儲單元設(shè)計(jì) </p>&
52、lt;p> 當(dāng)計(jì)價(jià)器因?yàn)橥饨缫蛩氐挠绊懚l(fā)生掉電現(xiàn)象時(shí),應(yīng)該把統(tǒng)計(jì)得到的里程,總金額,單價(jià)等數(shù)據(jù)進(jìn)行保存,當(dāng)恢復(fù)供電后還能夠繼續(xù)進(jìn)行計(jì)價(jià),這就是掉電保護(hù)模塊的作用??梢赃M(jìn)行存儲的芯片有很多種,在這個(gè)設(shè)計(jì)中采用了AT24C08這款芯片。</p><p> AT24C08是一個(gè)2K串行CMOS EPROM,內(nèi)部有1024個(gè)8位字節(jié),CATALYST公司的先進(jìn)CMOS技術(shù)實(shí)質(zhì)上減少了器件的功耗,AT24C08
53、還有一個(gè)16字節(jié)頁寫緩沖器。</p><p> 當(dāng)遇到意外斷電的情況,通過程序每次都會自動從AT24C08中讀取信息,這樣就達(dá)到了對單價(jià),路程,總費(fèi)用信息的保護(hù),避免司機(jī)和乘客因?yàn)榈綦姅?shù)據(jù)丟失而造成不必要的價(jià)格糾紛。</p><p> AT24C08管腳圖如圖3-6所示。</p><p> 圖3-6 AT24C08管腳圖</p><p>
54、; AT24C08管腳描述見表3-1。</p><p> 表3-1 AT24C08管腳描述</p><p> 所有引腳中只需要將SCL和SDA加到單片機(jī)的數(shù)據(jù)端,其它引腳接地就可以了。</p><p> 3.3.5 顯示模塊介紹</p><p> 顯示部分要求顯示里程、等待時(shí)間、總金額信息的顯示。</p><
55、;p> 下面是LCD1602的基本參數(shù)和各個(gè)引腳的功能,必須根據(jù)下面的參數(shù)來設(shè)計(jì)顯示電路的原理圖。</p><p> LCD1602的基本參數(shù)及各引腳功能見表3-2和3-3。</p><p> 表3-2 LCD1602主參數(shù) </p><p> 表3-3 LCD1602接口信號說明</p><p> 根據(jù)LCD1602的基
56、本工作參數(shù)和引腳接口信號的介紹,設(shè)計(jì)出顯示電路,顯示模塊如圖3.7所示。</p><p> 圖 3.7 LCD1602液晶顯示屏</p><p> 此模塊電路電源電壓為5V,由接口VCC引入,上電后可看到發(fā)光二極管被點(diǎn)亮。數(shù)據(jù)端8位接分別由單片機(jī)的P1 I/O口與其線連接,3個(gè)控制端口分別有P05~P06端口來控制,8位雙向數(shù)據(jù)線7~14與單片機(jī)的P1端口相連,實(shí)現(xiàn)液晶與單片機(jī)的通信。
57、液晶對比度通過1602的第三腳接可調(diào)電阻來提供可調(diào)。</p><p> 3.3.6 按鍵模塊介紹</p><p> 單片機(jī)常用的鍵盤分為獨(dú)立式鍵盤和矩陣式鍵盤。</p><p> 獨(dú)立式鍵盤特點(diǎn):每個(gè)按鍵占用一條I/O線,當(dāng)按鍵數(shù)量較多時(shí),I/O口利用率不高,但程序編制簡單。適用于所需按鍵較少的場合。</p><p> 矩陣鍵盤特點(diǎn):
58、電路連接復(fù)雜,但提高了I/O口利用率,軟件編程較復(fù)雜。適用于需使用大量按鍵的場合。</p><p> 由于本設(shè)計(jì)用到的按鍵較少如果使用矩陣鍵盤(如圖3.8所示),掃描時(shí)需要較長的時(shí)間,因此利用三個(gè)獨(dú)立按鍵作為系統(tǒng)開始,結(jié)束和白天黑夜模式切換的按鍵,運(yùn)用比較方便。 </p><p><b> 圖3.8 獨(dú)立按鍵</b></
59、p><p><b> 4.程序設(shè)計(jì)</b></p><p><b> 4.1主程序模塊</b></p><p> 主程序軟件的任務(wù)要求包括定時(shí)器的設(shè)置、按鍵的掃描、按鍵的功能處理、脈沖的計(jì)數(shù)、路途等待超3分鐘的計(jì)時(shí)以及總金額的計(jì)算等。</p><p> 程序設(shè)計(jì)的思路:使用中斷方式對定時(shí)器的溢出
60、進(jìn)行計(jì)數(shù)實(shí)現(xiàn)3分鐘的計(jì)時(shí)。主程序采用查詢外部中斷標(biāo)志實(shí)現(xiàn)脈沖的計(jì)數(shù),由于每個(gè)脈沖代表 1.88m,因此,當(dāng)脈沖計(jì)數(shù)超過543時(shí),計(jì)價(jià)器按照收費(fèi)標(biāo)準(zhǔn)計(jì)價(jià)。主程序在初始化變量和定時(shí)器參數(shù)設(shè)置之后,進(jìn)入一個(gè)循環(huán)結(jié)構(gòu),循環(huán)掃描鍵盤、查詢脈沖的中斷、數(shù)碼管的動態(tài)掃描等功能,當(dāng)脈沖的中斷標(biāo)志被查詢到,若路途等待時(shí)間未超3分鐘時(shí),要及時(shí)將路途等待時(shí)間的值清除為零。主程序的流程圖如圖 4-1 所示。</p><p><b&
61、gt; N</b></p><p><b> N</b></p><p><b> Y</b></p><p><b> N</b></p><p><b> Y</b></p><p><b>
62、N</b></p><p><b> Y</b></p><p> 圖 4.1 主程序流程圖</p><p><b> 以下是主函數(shù)程序</b></p><p> void main()</p><p><b> {</b><
63、/p><p> LcdInitiate();</p><p> EX0=1; //允許使用外中斷</p><p> IT0=1; //選擇負(fù)跳變來觸發(fā)外中斷</p><p> EA=1; //開總中斷</p><p>
64、 ET0=1; //定時(shí)器T0中斷允許 </p><p> TMOD=0x01; //使用定時(shí)器T0的模式1</p><p> TH0=0x4C; //定時(shí)器T0的高8位賦初值</p><p> TL0=0x00; //定時(shí)器T0的高8位賦初值</p>
65、<p> TR0=0; //啟動定時(shí)器 TR0=1時(shí)啟動計(jì)數(shù) TR0=0時(shí)停止計(jì)數(shù)</p><p><b> while(1)</b></p><p><b> {</b></p><p> key_val=scan_key(); //255</p>&l
66、t;p> if(key_val!=key_val_old)</p><p><b> {</b></p><p> key_val_old=key_val;</p><p> if(key_val!=255)</p><p> {switch(key_val)</p><p>&l
67、t;b> {</b></p><p> case 0://啟動鍵</p><p><b> TR0=1;</b></p><p><b> begin=0;</b></p><p> if(flag==0)</p><p><b> {
68、 </b></p><p> if(state_val==0)</p><p><b> {</b></p><p> cnt_cost=6;</p><p><b> }</b></p><p><b> else</b><
69、/p><p> cnt_cost=7;</p><p> flag=1; //啟動計(jì)時(shí),TR0=1為啟動了的標(biāo)志</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p&g
70、t;<p><b> flag=0;</b></p><p><b> }</b></p><p><b> break;</b></p><p> case 1://清除鍵</p><p> init_variant();//清除變量</p>
71、;<p> TR0=0; //關(guān)閉定時(shí)器</p><p><b> break;</b></p><p> case 2://白天/黑夜的切換</p><p> if(state_val==0)</p><p><b> {</b></p><p>
72、 state_val=1;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> state_val=0;</p><p><b> }</b&
73、gt;</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> lcd_show();</p
74、><p><b> }</b></p><p><b> }</b></p><p> 4.2 中斷程序流程圖</p><p> 中斷服務(wù)程序主要實(shí)現(xiàn)計(jì)時(shí)功能,當(dāng)啟動鍵按下之后,定時(shí)器開始工作,用一個(gè)變量對定時(shí)器溢出中斷的次數(shù)進(jìn)行計(jì)數(shù),達(dá)到計(jì)時(shí)功能,該變量在每次脈沖到來時(shí)被清零,當(dāng)脈沖長時(shí)間沒有
75、來,則當(dāng)該變量計(jì)數(shù)超過 30 秒時(shí),總金額按照途中等待計(jì)費(fèi)標(biāo)準(zhǔn)進(jìn)行計(jì)價(jià)。</p><p> 中斷子程序的流程圖如圖 3-13 所示。</p><p><b> 以下是中斷程序</b></p><p> void Time0(void) interrupt 1 using 0 </p><p><b>
76、{</b></p><p><b> T0_cnt++;</b></p><p> if(T0_cnt>40) //如果計(jì)數(shù)>3999,計(jì)時(shí)1s</p><p><b> { </b></p><p><b> T0_cnt=0;</b><
77、/p><p> if(cnt_3<180) </p><p><b> { </b></p><p><b> cnt_3++;</b></p><p><b> }</b></p><p> else //超過30秒,途中等待計(jì)價(jià)&
78、lt;/p><p><b> {</b></p><p><b> cnt_3=0;</b></p><p> cnt_cost=cnt_cost+cost_val[2];}</p><p> } </p><p> TH0=0x4C; //定時(shí)
79、器T0的高8位重新賦初值</p><p> TL0=0x00; //定時(shí)器T0的高8位重新賦初值</p><p><b> }</b></p><p><b> Y</b></p><p><b> Y</b></p><p><b>
80、 N</b></p><p> 圖 4.2 中斷程序流程圖</p><p><b> 5.系統(tǒng)調(diào)試</b></p><p> 根據(jù)系統(tǒng)設(shè)計(jì)方案,本系統(tǒng)的調(diào)試共分為兩大部分:軟件調(diào)試,硬件調(diào)試。</p><p><b> 5.1 軟件調(diào)試</b></p><
81、p> 5.1.1編程工具—C51語言</p><p> 8051單片機(jī)的應(yīng)用程序設(shè)計(jì),使用C51語言進(jìn)行程序設(shè)計(jì)雖然相對于匯編語言代碼效率有所下降,但可以方便地實(shí)現(xiàn)程序設(shè)計(jì)模塊化,代碼結(jié)構(gòu)清晰、可讀性強(qiáng),易于維護(hù)、更新和移植,適合較大規(guī)模的單片機(jī)程序設(shè)計(jì)。近年來,隨著C51語言的編譯器性能的不斷提高,在絕大多數(shù)應(yīng)用環(huán)境下,C51程序的執(zhí)行效率已經(jīng)非常接近匯編語言,因此,使用C51進(jìn)行單片機(jī)程序設(shè)計(jì)已經(jīng)成
82、為單片機(jī)程序設(shè)計(jì)的主流選擇之一。</p><p> 本設(shè)計(jì)的軟件都是在 Keil μ Vision 7.5上進(jìn)行編寫,編譯,調(diào)試以及運(yùn)行操作并生成Hex文件。</p><p> 5.1.2 單片機(jī)仿真軟件在線調(diào)試—PROTEUS</p><p> 1.打開Proteus軟件。</p><p> 2.選擇file菜單下的 open de
83、sign選項(xiàng),找到所需的元器件,元器件上單擊右鍵選中,再單擊左鍵對其進(jìn)行命名和賦值,接著在編輯器左邊的一欄中,找出并繪制設(shè)計(jì)所要的各種元器件,按照電路圖連接后并保存。</p><p> 3.將用keil編譯產(chǎn)生的hex文件下載到單片機(jī)中:雙擊51單片機(jī),在對話框中把保存過的hex文件打開,再單擊確定。 </p><p> 4.單擊左下角運(yùn)行按鈕,進(jìn)行軟件仿真調(diào)試,直到出現(xiàn)正確的結(jié)果。&
84、lt;/p><p> 下圖是在PROTEUS中仿真通過的整體硬件原理圖。</p><p> 圖 5.1 PROTEUS仿真原理圖</p><p><b> 5.2 硬件調(diào)試</b></p><p> 由于本系統(tǒng)的硬件電路完全符合銳志單片機(jī)開發(fā)板的電路結(jié)構(gòu),所以我們將程序燒進(jìn)銳志單片機(jī)開發(fā)板進(jìn)行硬件調(diào)試,表5.1 的測
85、試條件是:設(shè)定白天的起步價(jià)是6 元,晚上起步價(jià)是7元,等待價(jià)格測得數(shù)據(jù)如表5-1。</p><p> 表5-1 硬件測試數(shù)據(jù)表</p><p> 從上表的測得的數(shù)據(jù)得出,本計(jì)價(jià)器運(yùn)行穩(wěn)定,測得的數(shù)據(jù)滿足計(jì)價(jià)器的需求。</p><p><b> 結(jié) 論</b></p><p> 在本次設(shè)計(jì)中,我們采用AT89S
86、52芯片為核心器件,設(shè)計(jì)出了簡單的出租車計(jì)價(jià)器,能夠?qū)崿F(xiàn)顯示總金額和總里程,按鍵控制清零,調(diào)價(jià),白天,黑夜模式的轉(zhuǎn)換,還能進(jìn)行掉電數(shù)據(jù)保存。</p><p> 選題后,我便開始復(fù)習(xí)單片機(jī)方面的知識,也查閱、搜索了很多相關(guān)資料,進(jìn)行總體設(shè)計(jì)與具體設(shè)計(jì),同時(shí)也學(xué)習(xí)仿真軟件Protues和編程軟件KeiC。由于以前都采用匯編語言實(shí)現(xiàn)編程,對用C語言來實(shí)現(xiàn)單片機(jī)的編程不太習(xí)慣,花費(fèi)了一些時(shí)間來熟悉C語言的編程。在設(shè)計(jì)開
87、始,要形成流程圖,它可以使設(shè)計(jì)有一定的邏輯性與嚴(yán)密性,使得設(shè)計(jì)思路明確。采用模塊化的設(shè)計(jì)思想很重要,它方便編寫、修改與調(diào)試,另外加上必要的注釋,便于交流與理解。</p><p> 這次畢業(yè)設(shè)計(jì)完成后,體會頗多,在學(xué)與做的過程中,取長補(bǔ)短,不斷學(xué)習(xí)新的知識,吸取經(jīng)驗(yàn),達(dá)到進(jìn)步的目的。通過自身的努力以及相關(guān)圖書資料的幫助,逐漸熟悉了KEIL、PROTEUS和C語言等軟件的使用以及硬件調(diào)試與檢測過程中的一些小技巧。本
88、次設(shè)計(jì)我學(xué)習(xí)到不少單片機(jī)的知識,但由于自己的理論知識水平有限,實(shí)踐知識和設(shè)計(jì)經(jīng)驗(yàn)不足,在設(shè)計(jì)過程中難免存在一些問題。懇請各位老師批評指正,以使我在以后的學(xué)習(xí)和實(shí)踐中加以改進(jìn)和提高。</p><p><b> 致 謝</b></p><p> 本論文是在我的指導(dǎo)老師*老師的悉心指導(dǎo)下完成的。徐老師作為一名優(yōu)秀的、經(jīng)驗(yàn)豐富的教師,具有豐富的知識和教學(xué)經(jīng)驗(yàn),在整個(gè)論文
89、實(shí)驗(yàn)和論文寫作過程中,對我進(jìn)行了耐心的指導(dǎo)和幫助,提出嚴(yán)格要求,引導(dǎo)我不斷開闊思路,為我答疑解惑,鼓勵(lì)我大膽創(chuàng)新,使我在這一段寶貴的時(shí)光中,既增長了知識、開闊了視野、鍛煉了心態(tài),又培養(yǎng)了良好的實(shí)驗(yàn)習(xí)慣和科研精神。在此,我向我的指導(dǎo)老師表示最誠摯的謝意! 在論文即將完成之際,我的心情久久無法平靜,本次畢業(yè)設(shè)計(jì)培養(yǎng)了我們獨(dú)立思考問題,分析問題與解決問題的能力,在指導(dǎo)老師的指導(dǎo)下,加上同組同學(xué)的討論與分析,使所遇到的問題逐步得到解決。
90、本次畢業(yè)設(shè)計(jì)所得到的經(jīng)驗(yàn)也并將繼續(xù)影響我今后的學(xué)習(xí)和工作。</p><p> 我們的大學(xué)即將結(jié)束,今天所取得的成績也一直以來關(guān)心、教導(dǎo)我的父母、老師密不可分,在此祝愿他們身體健康、工作順利、萬事如意!</p><p> 我再次感謝學(xué)校和老師給了我這次實(shí)踐鍛煉的機(jī)會,以及很多同學(xué)對我的幫助,為此我將盡最大的努力,并以最好的心態(tài)來回報(bào)社會,服務(wù)祖國。</p><p>
91、;<b> 參 考 文 獻(xiàn)</b></p><p> [1]. 吳承琦,孫培生. 出租汽車計(jì)價(jià)器發(fā)展歷程回顧、感悟及展望[R].北京.《中國計(jì)量》 2008年03期 </p><p> [2].秦浩華 具有區(qū)域識別功能出租車計(jì)價(jià)器車載定位模塊的研制[J].遼寧技術(shù)工程學(xué)院工學(xué)報(bào),2005.</p><p> [3].陳偉宏、肖衛(wèi)初、邱飚
92、 基于PROTEUS的多功能出租車計(jì)價(jià)器設(shè)計(jì)[J].重慶工學(xué)院學(xué)報(bào),2009.</p><p> [4]胡泉、謝芳.C語言程序設(shè)計(jì).華中科技大學(xué)出版社,2009</p><p> [5]戴 佳.51單片機(jī)C語言應(yīng)用程序設(shè)計(jì)實(shí)例精講.電子工業(yè)出版社,2007</p><p> [6]張毅剛.單片機(jī)原理及應(yīng)用.高等教育出版社,2004</p>&l
93、t;p> [7].陳偉宏、肖衛(wèi)初、楊明 基于單片機(jī)的多功能出租車計(jì)價(jià)器的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2008.</p><p> [8].楊世品、陳林 基于PROTEUS的單片機(jī)出租車計(jì)價(jià)器的設(shè)計(jì)[J].《微計(jì)算機(jī)信息》期刊,2007.</p><p> [9]. 邱淑賢.霍爾式汽車車速傳感器檢測系統(tǒng)[J]. 長春工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版), 2010, 31(3).
94、</p><p> [10]馬忠梅.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)(第三版).北京航空航天大學(xué)出版社,2004</p><p> [11]胡漢才.單片機(jī)原理及其接口技術(shù).北京:清華大學(xué)出版社,1995</p><p> [12]潘永雄.新編單片機(jī)原理與應(yīng)用.西安電子科技大學(xué)出版社,2003</p><p> [13]肖玲妮、袁增貴.Pro
95、tel 99 SE印刷電路板設(shè)計(jì)教程.清華大學(xué)出版社,2003 </p><p> [14]戴梅萼 史嘉權(quán).微型計(jì)算機(jī)技術(shù)與應(yīng)用.清華大學(xué)出版社,2003</p><p> [15] 譚浩強(qiáng)C語言程序設(shè)計(jì)[M]。清華大學(xué)出版社。2005 </p><p><b> 附 錄</b></p><p><b>
96、; 程序清單</b></p><p> #include<reg52.h></p><p> #include<stdlib.h> //包含隨機(jī)函數(shù)rand()的定義文件</p><p> #include<intrins.h> //包含_nop_()函數(shù)定義的頭文件</p><p&g
97、t; #defineOP_READ0xa1// 器件地址以及讀取操作,0xa1即為1010 0001B</p><p> #defineOP_WRITE 0xa0// 器件地址以及寫入操作,0xa1即為1010 0000B</p><p> #define uchar unsigned char</p><p> #define uint un
98、signed int</p><p> sbit K5=P3^2;</p><p> sbit RS=P2^0; //寄存器選擇位,將RS位定義為P2.0引腳</p><p> sbit RW=P2^1; //讀寫選擇位,將RW位定義為P2.1引腳</p><p> sbit E=P2^2; //使能信號位,將E位
99、定義為P2.2引腳</p><p> sbit BF=P0^7; //忙碌標(biāo)志位,,將BF位定義為P0.7引腳</p><p> sbit SCL=P3^4; //將串行時(shí)鐘總線SCL位定義在為P3.4引腳</p><p> sbit SDA=P3^5;</p><p> uint data T0_cnt,D_
100、cnt;</p><p> uchar data cnt_3,cnt_distance,cnt_cost,begin;</p><p> uchar data lose_power=1;</p><p> uchar data state_val,flag=0; </p><p> uchar data key_va
101、l,key_val_old; //定義新舊鍵值</p><p> uchar code cost_val[3]={1,2,1}; //收費(fèi)標(biāo)準(zhǔn) cost_val[0]白天 cost_val[1]黑夜 cost_val[2]等待</p><p> uchar code digit[ ]={"0123456789"}; //定義字符數(shù)組顯示數(shù)字</p&g
102、t;<p> uchar code string1[ ]={"price:"}; //定義字符數(shù)組顯示提示信息</p><p> uchar code string2[ ]={"/km"};</p><p> uchar code string3[ ]={"total:"};</p><p&
103、gt; uint h,d,t;</p><p> void delay(uint i) //1ms延時(shí)基準(zhǔn)函數(shù)</p><p><b> {</b></p><p><b> uchar j;</b></p><p> while(i--)</p><p><
104、b> {</b></p><p> for(j=0;j<115;j++);</p><p><b> }</b></p><p><b> }</b></p><p> void delaynms(uint n)</p><p><b&
105、gt; {</b></p><p><b> delay(n);</b></p><p><b> }</b></p><p> void init_variant()//初始化一些變量的內(nèi)容</p><p><b> {</b></p>&
106、lt;p> cnt_3=0; //3分鐘的計(jì)時(shí)</p><p> D_cnt=0; //脈沖的個(gè)數(shù)</p><p> cnt_distance=0;//距離的計(jì)數(shù)</p><p> cnt_cost=0; //保存總價(jià)格</p><p><b> }</b></p><p> u
107、char scan_key()</p><p><b> { </b></p><p> uchar i,k;</p><p><b> i=P1;</b></p><p> if(i==0xff)</p><p><b> {</b><
108、/p><p><b> k=255;</b></p><p><b> } //無鍵按下</b></p><p> else //有鍵按下</p><p><b> {</b></p><p> delay(10);//延時(shí)去抖動</p>
109、;<p><b> if(i!=P1)</b></p><p><b> {</b></p><p><b> k=255;</b></p><p><b> }</b></p><p><b> else</b&g
110、t;</p><p><b> {</b></p><p> switch (i)</p><p><b> {</b></p><p> case 0xef:k=0;</p><p> break;//P1.4按下,啟動鍵</p><p>
111、 case 0xdf:k=1;</p><p> break;//P1.5按下,清除鍵</p><p> case 0xbf:k=2;</p><p> break;//P1.6按下,切換鍵</p><p><b> }</b></p><p><b> }</b>
112、;</p><p><b> }</b></p><p><b> return k;</b></p><p><b> }</b></p><p> /***************************************************</p&
113、gt;<p> 函數(shù)功能:開始數(shù)據(jù)傳送</p><p> ***************************************************/</p><p> void start()</p><p><b> // 開始位</b></p><p><b> {&l
114、t;/b></p><p> SDA = 1; //SDA初始化為高電平“1”</p><p> SCL = 1; //開始數(shù)據(jù)傳送時(shí),要求SCL為高電平“1”</p><p> _nop_(); //等待一個(gè)機(jī)器周期</p><p> _nop_(); //等待一個(gè)機(jī)器周期</p>&
115、lt;p> _nop_(); //等待一個(gè)機(jī)器周期</p><p> _nop_(); //等待一個(gè)機(jī)器周期</p><p> _nop_(); //等待一個(gè)機(jī)器周期</p><p> SDA = 0; //SDA的下降沿被認(rèn)為是開始信號</p><p> _nop_(); //等待一個(gè)機(jī)
116、器周期</p><p> _nop_(); //等待一個(gè)機(jī)器周期</p><p> _nop_(); //等待一個(gè)機(jī)器周期</p><p> _nop_(); //等待一個(gè)機(jī)器周期</p><p> _nop_(); //等待一個(gè)機(jī)器周期</p><p> SCL = 0;
117、 //SCL為低電平時(shí),SDA上數(shù)據(jù)才允許變化(即允許以后的數(shù)據(jù)傳遞) </p><p><b> }</b></p><p> /***************************************************</p><p> 函數(shù)功能:結(jié)束數(shù)據(jù)傳送</p><p> *******
118、********************************************/</p><p> void stop()// 停止位</p><p><b> {</b></p><p> SDA = 0; //SDA初始化為低電平“0”_n</p><p> SCL = 1; //
119、結(jié)束數(shù)據(jù)傳送時(shí),要求SCL為高電平“1”</p><p> _nop_(); //等待一個(gè)機(jī)器周期</p><p> _nop_(); //等待一個(gè)機(jī)器周期</p><p> _nop_(); //等待一個(gè)機(jī)器周期</p><p> _nop_(); //等待一個(gè)機(jī)器周期</p><
120、p> _nop_(); //等待一個(gè)機(jī)器周期</p><p> SDA = 1; //SDA的上升沿被認(rèn)為是結(jié)束信號</p><p> _nop_(); //等待一個(gè)機(jī)器周期</p><p> _nop_(); //等待一個(gè)機(jī)器周期</p><p> _nop_(); //等待一個(gè)機(jī)器周期
121、</p><p> _nop_(); //等待一個(gè)機(jī)器周期</p><p> _nop_(); //等待一個(gè)機(jī)器周期</p><p><b> SDA=0;</b></p><p><b> SCL=0;</b></p><p><b>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)的出租車計(jì)價(jià)器畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的出租車計(jì)價(jià)器畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的出租車計(jì)價(jià)器系統(tǒng)
- 基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)
- 基于單片機(jī)的出租車計(jì)價(jià)器
- 基于單片機(jī)的出租車計(jì)價(jià)器的設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的出租車計(jì)價(jià)器的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----多功能單片機(jī)出租車計(jì)價(jià)器
- 基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 基于51單片機(jī)的出租車計(jì)價(jià)器畢業(yè)設(shè)計(jì)論文
- 基于單片機(jī)出租車多功能計(jì)價(jià)器設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的出租車計(jì)價(jià)器的設(shè)計(jì)
- 基于51單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)控制的出租車計(jì)價(jià)器的畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)【畢業(yè)論文】
- 畢業(yè)論文--基于單片機(jī)的出租車計(jì)價(jià)器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--出租車計(jì)價(jià)器
- 單片機(jī)課程設(shè)計(jì)--出租車計(jì)價(jià)器
評論
0/150
提交評論