基于51單片機(jī)的出租車計(jì)價(jià)器_第1頁(yè)
基于51單片機(jī)的出租車計(jì)價(jià)器_第2頁(yè)
基于51單片機(jī)的出租車計(jì)價(jià)器_第3頁(yè)
基于51單片機(jī)的出租車計(jì)價(jià)器_第4頁(yè)
基于51單片機(jī)的出租車計(jì)價(jià)器_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于51單片機(jī)的出租車計(jì)價(jià)器摘要這款計(jì)價(jià)器設(shè)計(jì)應(yīng)用場(chǎng)景是用于出租車運(yùn)營(yíng),要求有計(jì)程計(jì)價(jià)的性能。計(jì)價(jià)器由STC89C52單片機(jī)為主體,通過(guò)單片機(jī)豐富的借口連接,以復(fù)位電路,時(shí)鐘電路,鍵盤(pán)電路等外圍芯片為輔助,組成一個(gè)整體進(jìn)行工作。復(fù)位電路的意義是重啟單片機(jī),任何一款能正常使用的計(jì)價(jià)器都必備的功能,必要時(shí)也能擺脫操作錯(cuò)誤的窘境,通過(guò)復(fù)位電路的功能可以重新進(jìn)行工作。作為計(jì)時(shí)部分的12MHz晶體時(shí)鐘電路的用途,是為計(jì)價(jià)器提供具有高的精度的系統(tǒng)時(shí)鐘源。使用了Proteus等仿真軟件,對(duì)計(jì)價(jià)器的軟硬件部分模擬運(yùn)行,用于調(diào)試。通過(guò)連接上電源,字符型液晶1602可以顯示三種收費(fèi):最低起步距離內(nèi)的起步價(jià),超出最低里程后,按公里數(shù)以及中途等候時(shí)間向,乘客收費(fèi)。根據(jù)應(yīng)用場(chǎng)景的不同,可以使用按鍵在里程收費(fèi),起步價(jià),等候時(shí)間三種模式之間切換。仿照出租車在載客運(yùn)營(yíng)的行為模式,暫停與結(jié)束。與至相關(guān)的運(yùn)行時(shí)間和暫停時(shí)間等信息可以在1602液晶上查看到,總成本和總距離可以通過(guò)計(jì)算得出來(lái)。STC89C52控制器單片機(jī)為主體,P0端口與LCD模塊1602的顯示芯片連接,P1端口為鍵盤(pán)模塊的連接端口,按鍵負(fù)責(zé)輸入。關(guān)鍵詞:AT89S52;1602液晶;出租車計(jì)價(jià)器;DS1302;K24C021刖言自國(guó)家實(shí)行改革開(kāi)放以來(lái),生活質(zhì)量得到了極大的改善,出行的方式也多樣化起來(lái)。汽車是我們出行的工具,同時(shí),出租車的隊(duì)伍也跟隨著一起壯大了起來(lái),與之相關(guān)的出租車計(jì)價(jià)器的地位愈發(fā)重要,因?yàn)橛?jì)價(jià)器的作用是保證司機(jī)與乘客之間公平交易的媒介。通過(guò)幾十年的發(fā)展,如今我們國(guó)家的出租車保有量超140萬(wàn)輛,出租車乘坐滲透入人民生活的方方面面。而計(jì)程車行業(yè)能否健康發(fā)展,取決于它所使用的儀器是否公正。出租車計(jì)價(jià)器是依靠電磁感應(yīng)等方式,把車輪轉(zhuǎn)動(dòng)的次數(shù)紀(jì)錄下來(lái),判斷運(yùn)營(yíng)行駛的距離,并衡量出價(jià)格的一種儀器。出租車計(jì)價(jià)器是相關(guān)運(yùn)營(yíng)行業(yè)立身誠(chéng)信的根本,計(jì)價(jià)器如果不準(zhǔn)確,將會(huì)損害經(jīng)營(yíng)者或乘客的利益。國(guó)家制定了相關(guān)法律法規(guī),為保障司機(jī)與乘客的權(quán)益,將出租車計(jì)價(jià)器列為國(guó)家六類重點(diǎn)計(jì)量器具之一。只有公正的標(biāo)準(zhǔn)才能保證出租車的運(yùn)營(yíng)。國(guó)內(nèi)外出租車計(jì)價(jià)器的研究現(xiàn)狀:長(zhǎng)久以來(lái),國(guó)內(nèi)使用的出租車計(jì)價(jià)器只有單一的計(jì)量距離功能。世界上大部分計(jì)價(jià)器產(chǎn)自臺(tái)灣。而我國(guó)的出租車計(jì)價(jià)器企業(yè)主要集中分布在北上廣和沈陽(yáng)這幾個(gè)城市。而接著第二代計(jì)價(jià)器登上歷史的舞臺(tái)。與傳統(tǒng)的單一功能相比,新一代的計(jì)價(jià)器可謂進(jìn)步頗多,運(yùn)用了齒輪傳動(dòng)的機(jī)械結(jié)構(gòu)搭建主體,用于量程。還簡(jiǎn)單的配備的了計(jì)算功能用于核算乘客的應(yīng)付車資。隨著電子線路的制作越來(lái)越精巧,印刷線路板的誕生,計(jì)價(jià)器也迎來(lái)了第三代模式。如今的計(jì)價(jià)器也是屬于這個(gè)類型。精密的線路使得更多的功能可以集成在計(jì)價(jià)器的核心里,在保證了原有的功能,在具備顯示功能。精度高,可靠性好。隨著集成電路的日益精密,單片機(jī)和各種電子芯片的功能也是日新月異。使得計(jì)價(jià)器精度更高同時(shí)性能也比之前的更穩(wěn)定,并產(chǎn)生了諸多的附加功能。例如:LCD顯示功能、時(shí)鐘功能、信息存儲(chǔ)功能等。新一代的計(jì)價(jià)器有很多拓展空間,可以根據(jù)用戶的需求進(jìn)行添加。2設(shè)計(jì)任務(wù)2.1出租車計(jì)價(jià)器原理設(shè)計(jì)一款基于STC89C52單片機(jī)的出租車計(jì)價(jià)器。2.2出租車計(jì)價(jià)器細(xì)節(jié)設(shè)計(jì)2.2.1實(shí)際運(yùn)營(yíng)的收費(fèi)標(biāo)準(zhǔn)白班,夜班和途中等待(等待時(shí)間3分鐘起開(kāi)始收費(fèi))2.2.2計(jì)價(jià)器復(fù)位功能設(shè)計(jì)2.2.3IO口分配的簡(jiǎn)易要求利用霍爾開(kāi)關(guān)A44E型號(hào)的電磁感應(yīng)原理,測(cè)算車輪的轉(zhuǎn)動(dòng)次數(shù)從而測(cè)出距離白天/晚上收費(fèi)標(biāo)準(zhǔn)根據(jù)時(shí)間計(jì)算2.2.4數(shù)據(jù)輸出(采用LCD1602)單價(jià)輸出:兩位路程輸出:兩位總金額輸出:三位2.2.5按鍵等待時(shí)鐘調(diào)節(jié)白天/晚上轉(zhuǎn)換2.2.6發(fā)揮部分要求具備計(jì)價(jià)功能。要求時(shí)鐘顯示功能一直存在。要求性能穩(wěn)定,計(jì)價(jià)準(zhǔn)確。2.3系統(tǒng)主要功能本次依靠單片機(jī)設(shè)計(jì)的出租車計(jì)價(jià)器可以實(shí)現(xiàn)以下功能:數(shù)據(jù)結(jié)束或異常時(shí)的復(fù)位,晝/夜運(yùn)營(yíng)的價(jià)格轉(zhuǎn)換,數(shù)據(jù)傳輸,里程與價(jià)格的計(jì)算,最終價(jià)格輸出數(shù)據(jù)信息。信息顯示通過(guò)1602液晶顯示屏展現(xiàn)。該電路的設(shè)計(jì),不僅實(shí)現(xiàn)了基本的儀表定價(jià),還能同時(shí)使用于白班與夜班的情景中,中途等待也能公平計(jì)費(fèi),同時(shí)還能作為一個(gè)常規(guī)的時(shí)鐘顯示時(shí)間,方便司機(jī)與乘客。2.4方案論證與比較方案一:采用自動(dòng)化電子設(shè)計(jì)技術(shù),在EDA軟件平臺(tái)上把計(jì)價(jià)器問(wèn)題由上往下分層數(shù)個(gè)層次。依其系統(tǒng)框圖如圖2.1所示:分為分頻,控制,計(jì)量,譯碼和動(dòng)態(tài)掃描顯示等模塊。方案二:使用傳統(tǒng)的單片機(jī)方案。單片機(jī)采用51單片機(jī)系列里的STC89C52,作主要核心,由其他芯片組成子部件用作顯示模塊,計(jì)程模塊,時(shí)鐘模塊等。利用單片機(jī)豐富的IO口進(jìn)行連接,不僅可以實(shí)現(xiàn)出租車計(jì)價(jià)器的上述功能,還有很多拓展的空間,方便對(duì)系統(tǒng)進(jìn)行升級(jí)如圖2所示:鍵盤(pán)控制AT89C52測(cè)速電路圖2.2方案二3出租車計(jì)價(jià)器硬件設(shè)計(jì)硬件是一個(gè)電子器具能否順利運(yùn)行的重要保障,它是軟件的物質(zhì)基礎(chǔ)和載體。本系統(tǒng)的硬件設(shè)計(jì)主要包含K24C02記憶存儲(chǔ)模塊,用于存儲(chǔ)數(shù)據(jù);DS1302時(shí)鐘模塊,為計(jì)價(jià)器計(jì)時(shí);A44E霍爾傳感器電路,丈量里程;數(shù)據(jù)顯示部件,把信息顯示在液晶屏上;里程計(jì)算及計(jì)價(jià)單元的設(shè)計(jì),把單價(jià)與里程進(jìn)行運(yùn)算;以及最重要的單片機(jī)STC89C52。充分發(fā)揮各部分硬件部件的功能特點(diǎn),組成此多用途的出租車計(jì)價(jià)器設(shè)計(jì)。合理搭配使用,盡量兼顧性能與性價(jià)比。3.1系統(tǒng)的硬件構(gòu)成及功能硬件大體上可分為7個(gè)模塊,方案圖如圖3T。包含了以下部件:STC89C52,每公里價(jià)格與總價(jià)顯示部件,鍵盤(pán)操作部分,里程計(jì)算部分,1302時(shí)鐘顯示模塊,K24C02存儲(chǔ)器存儲(chǔ)模塊。通過(guò)正確的鏈接單片機(jī)上的多種IO端口,達(dá)到可以顯示里程計(jì)算功能,調(diào)價(jià)功能以及時(shí)間展示功能。不僅能達(dá)到所要求的功能,而且具有充足的拓展余地,還能非常便利地提升系統(tǒng)功能。后面“多功能出租車計(jì)價(jià)器總體電路圖”有更為詳細(xì)的內(nèi)容。鍵盤(pán)控制液晶顯示部分測(cè)速電路STC89C52單片機(jī)24C02記憶存

借DS1302時(shí)鐘顯

示模塊24C02記憶存

鍵盤(pán)控制液晶顯示部分測(cè)速電路STC89C52單片機(jī)24C02記憶存

借DS1302時(shí)鐘顯

示模塊24C02記憶存

儲(chǔ)圖3.1單片機(jī)控制方案圖3.2STC89C52單片機(jī)說(shuō)明STC89C52是一種耗能不高、性能高CMOS8位微控制器。屬于增強(qiáng)型的51單片機(jī)并具有可編程Flash存儲(chǔ)器。作為一款內(nèi)含8位CPU的單芯片,在系統(tǒng)可編程Flash,具有很強(qiáng)的拓展空間,計(jì)價(jià)器一直處于發(fā)展?fàn)顟B(tài),以后更新升級(jí)也比較方便。這款單片機(jī)有這些部件:看門(mén)狗定時(shí)器、8k字節(jié)Flash、32位I/O口線、MAX810復(fù)位電路、內(nèi)置512字節(jié)RAM、4KB的EEPROM以及三個(gè)16位定時(shí)器/計(jì)數(shù)器和一個(gè)6向量2級(jí)中斷結(jié)構(gòu),還有全雙工串行口。另外STC89C52可降至0Hz靜態(tài)分析邏輯進(jìn)行操作。閑暇模式下,CPU停止,允許RAM,定時(shí)器/計(jì)數(shù)器,

串行口,中斷工作。掉電保護(hù)管理方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),計(jì)價(jià)器的STC89C52所有工作停止,直到下一個(gè)中斷或硬件系統(tǒng)復(fù)位為止。最大操作頻率35MHz時(shí),6T/12T可選的。22£522£56g9]Q112]3Pl]5J617]S1920P1.0V;C€40PL.lPO.O39PL.2PO.l3SPL1P0.2.37PL.4P0.336PL.5P0.435PL.6P0.534PL.7PO.d33FST^ZPTPO732P;3.0/RXDKWPPsiP3l/TXDAIE齊30P3.2/INT0蟲(chóng)/SEjM292SP3.3/INT1PJ.7P3.4/T0P:-.627P3vripj526pji.eZVkP2.425P3.7麗P:324XTAL1P3.223XTAL2P2.122vcsPIO21圖3.289C52引腳圖引腳功能說(shuō)明VCC:電源GND:接地P0口:這個(gè)端口有8位漏極開(kāi)路,是個(gè)雙向的I/O口。一般為信息輸入的端口,總共能驅(qū)動(dòng)8位X8的TTL的邏輯電平。把P0端口設(shè)置為“1”時(shí),引腳可以用作高阻抗數(shù)據(jù)輸入。當(dāng)訪問(wèn)別處的RAM或外部的程序時(shí),P0端口的用處就是8位地址/數(shù)據(jù)復(fù)用。P1口:作為8為位雙向I/。口,P1口輸出緩沖器能驅(qū)動(dòng)的邏輯電平有4個(gè),且擁有內(nèi)部上拉電阻。把P1端口設(shè)置為“1”時(shí),端口位會(huì)被內(nèi)部上拉電阻拉高,此時(shí)我們可以利用它作為輸入口設(shè)計(jì)使用。當(dāng)P1口被用于數(shù)據(jù)的輸入功能時(shí),會(huì)輸出ILL的電流,因?yàn)橥獠坷土艘_,影響了內(nèi)部電阻。而P1.0可作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入,P1.2可作時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入。在閃存編程和驗(yàn)證,P1端口接收的低位地址位。表3.189C52引腳說(shuō)明引腳號(hào)第二功能P1.0T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出P1.1T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制)P1.5MOSI(在系統(tǒng)編程用)P1.6MISO(在系統(tǒng)編程用)P1.7SCK(在系統(tǒng)編程用)P2口:為8為位雙向I/O口,其內(nèi)部含有一個(gè)上拉電阻,P2輸出緩沖器可以驅(qū)動(dòng)4個(gè)TTL邏輯電平,把P2端口設(shè)置為“1”時(shí),可以把這個(gè)端口用作輸入口,因?yàn)閮?nèi)部端口被上拉電阻拉高。如果有數(shù)據(jù)輸入時(shí),引腳被外部拉低后由于端口內(nèi)部電阻的存在,輸出電流(IIL)。P2口在有需要的時(shí)候也能送出高八位地址,如用16位地址讀取外部ROM或訪問(wèn)外部程序RAM時(shí),P2口憑借其內(nèi)部上拉輸入信號(hào)“1”。P2端口會(huì)在使用8位地址對(duì)外部RAM訪問(wèn)時(shí),輸出P2鎖存器的信息。在閃存編程和校驗(yàn)過(guò)程中,一些控制信號(hào)和高8位地址字節(jié)也能被該端口接收。P3口:作為8為位雙向I/??冢鋬?nèi)部含有一個(gè)上拉電阻,P2輸出緩沖器可以驅(qū)動(dòng)4個(gè)TTL邏輯電平,把P3端口設(shè)置為“1”時(shí),可以把這個(gè)端口用作輸入口,因?yàn)閮?nèi)部端口被上拉電阻拉高。如果有數(shù)據(jù)輸入時(shí),引腳被外部拉低后由于端口內(nèi)部電阻的存在,輸出電流(IIL)。P3口作為這款單片機(jī)的特別功能使用,可查看下面表格更多內(nèi)容。在閃存編程和驗(yàn)證,控制信號(hào)還能被P3口接收。表3.289CS52引腳說(shuō)明引腳號(hào)第二功能P3.0RXD(串行輸入)P3.1TXD(串行輸出)P3.2INTO(外部中斷0)P3.3INT1(外部中斷1)P3.4T0(定時(shí)器0外部輸入)P3.5T1定時(shí)器1外部輸入)P3.6WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)P3.7RD(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通RST:使單片機(jī)作出復(fù)位動(dòng)作的引腳。當(dāng)晶體振動(dòng)工作時(shí),想要用高電平將終止當(dāng)前功能,使單片機(jī)復(fù)位,需要第一個(gè)腳持續(xù)2個(gè)機(jī)器周期即24個(gè)時(shí)鐘周期。在WDT完成計(jì)時(shí)后,復(fù)位引腳會(huì)輸出高電平,共計(jì)96個(gè)晶振周期。想要使復(fù)位功能無(wú)效可以借助一直獨(dú)特的AUXR寄存器。其DISRTO位能令復(fù)位功能暫停使用。不過(guò)寄存器AUXR在正常的默認(rèn)模式下是設(shè)定復(fù)位電路有效的。ALE/PROG:該引腳是專門(mén)負(fù)責(zé)發(fā)送地址鎖存信號(hào)的端口。當(dāng)單片機(jī)與外部的ROM有訪問(wèn)需求時(shí),地址鎖存信號(hào)發(fā)出low8位的控制信號(hào)。在編程時(shí),輸入脈沖也可以由該引腳發(fā)出。在沒(méi)有訪問(wèn)外部ROM需求時(shí),此引腳按1/6的固定頻率,向外發(fā)射電子脈沖,定時(shí)器和時(shí)鐘就是依照此原理來(lái)進(jìn)行工作的處。需要注意的是,ALE脈沖會(huì)被跳過(guò),如果單片機(jī)出于訪問(wèn)外部ROM的時(shí)候。根據(jù)應(yīng)用需求,我們可以將位于8EH的特殊功能寄存器最前面的位置寫(xiě)一,可以無(wú)效化ALE的操作。此處為“1”時(shí),只有查表指令或外部數(shù)據(jù)存儲(chǔ)器的傳送指令時(shí),ALE的執(zhí)行才有效。若非如此,會(huì)把地址鎖存控制信號(hào)輕微拉高。當(dāng)微控制器系統(tǒng)在一個(gè)外部環(huán)境中執(zhí)行管理模式時(shí),ALE的使能標(biāo)志對(duì)其無(wú)效。PSEN:該引腳是通選信號(hào),用于允許輸出外部程序ROM的時(shí)候。該單片機(jī)的外部ROM執(zhí)行外部代碼時(shí),此引腳會(huì)被激活,每一個(gè)機(jī)器周期PSEN會(huì)生效兩次。其他情況下PSEN為待激活狀態(tài),如訪問(wèn)外部RAM時(shí)。EA/VPP:訪問(wèn)外部ROM的控制信號(hào)。必須接地,以保證由0000H到FFFFH的使能可以讀取ROM內(nèi)的指令。當(dāng)接到VCC的時(shí)候,可以執(zhí)行內(nèi)部程序指令。VPP的電壓能在閃存編輯期間接收到12伏。XTAL1:輸入振蕩器、逆變器、放大器和內(nèi)部時(shí)鐘發(fā)生器電路。XTAL2:輸出振蕩器、逆變器、放大器。3.3A44E霍爾傳感器檢測(cè)單元圖3.3傳感器測(cè)距示意圖里程計(jì)算是車轍上安裝的傳感器通過(guò)電磁感應(yīng)原理,將車轍的圓周運(yùn)動(dòng)轉(zhuǎn)換成電信號(hào)輸出到單片機(jī)里,換算成對(duì)應(yīng)的公里數(shù)和價(jià)格最后顯現(xiàn)在屏幕上。通過(guò)A44E轉(zhuǎn)換成數(shù)字信號(hào)符合TTL電平標(biāo)準(zhǔn),因?yàn)樗墓ぷ麟妷罕容^大,在4.5~18V。屬于開(kāi)關(guān)型霍爾元件。其端口可以與STC89C52直接相連,1MHZ是目前能達(dá)到的最高頻率檢測(cè)。這個(gè)集成霍耳開(kāi)關(guān)由霍爾器,穩(wěn)壓片,差分放大器,OC輸出門(mén)和施密特觸發(fā)器五部分組成。依照霍爾原理可知,霍爾電勢(shì)發(fā)生器的兩端通過(guò)穩(wěn)壓器的連接,與輸入端輸入的電壓接通后,當(dāng)霍爾片在磁場(chǎng)中,目前應(yīng)用在垂直于磁場(chǎng)方向,然后大廳電位差HV輸出將生成的方向垂直于兩個(gè)方向,和HV信號(hào)將被放大的放大器和施密特觸發(fā)器整形,所以它變成了一個(gè)方波和傳播0C門(mén)的輸出。當(dāng)存在的磁場(chǎng)強(qiáng)度滿足要求時(shí),達(dá)到了工作點(diǎn)(0PB),觸發(fā)器相對(duì)于大地輸出的電壓為高電壓,導(dǎo)通了三極管,而0C門(mén)處,低電壓輸出,霍爾開(kāi)關(guān)此時(shí)被打開(kāi)。當(dāng)存在的磁場(chǎng)強(qiáng)度滿足要求時(shí),達(dá)到釋放點(diǎn)(即rPB)時(shí),低電壓從觸發(fā)器處輸出,使得高電壓從0C門(mén)處輸出,霍爾開(kāi)關(guān)此時(shí)被關(guān)閉。經(jīng)過(guò)這樣一開(kāi)一關(guān),完成了霍爾開(kāi)關(guān)的一個(gè)工作周期。為了使程序設(shè)計(jì)比較容易一點(diǎn),我把信號(hào)的輸入端定在了P3.2,內(nèi)部為外部中斷0,為方便計(jì)算,我假定出租車輪轂旋轉(zhuǎn)一圈周長(zhǎng)為1米,當(dāng)車輪完成一次轉(zhuǎn)動(dòng),霍爾開(kāi)關(guān)就經(jīng)過(guò)一個(gè)周期,發(fā)出脈沖,使得SCT89C52發(fā)生中斷,然后紀(jì)錄下來(lái)的,當(dāng)中斷了一千次時(shí),就代表了出租車行駛了一公里,計(jì)價(jià)器上的價(jià)格就會(huì)更新跳動(dòng)一次,金額等于當(dāng)前每公里單價(jià)乘于行駛的公里數(shù)。GNDVCCGNDVCCOUT圖3.4傳感器電路圖3.4數(shù)據(jù)顯示單元設(shè)計(jì)在單片機(jī)設(shè)計(jì)中,有多種多樣的信息顯示器件,其中最為廣泛應(yīng)用的就是字符型液晶模塊。為了滿足占體小,節(jié)能低耗,又得保證顯示的內(nèi)容足夠豐富,我選用了1602型LCD顯示模塊。這個(gè)顯示模塊能顯示上下兩行,每行8個(gè)字符,有DO?D7共計(jì)8位的數(shù)據(jù)總線。這款模塊還有RS,R/W,EN三個(gè)控制端口,在5V電壓下可以正常工作,附帶背光情況下使用,可以調(diào)節(jié)字符對(duì)比度的功能。用于顯示出租車運(yùn)行中的相關(guān)信息。接口信號(hào)說(shuō)明:1602型LCD的接口信號(hào)說(shuō)明如表3.3所示。表3.31602型LCD的接口信號(hào)說(shuō)明第1腳VSS電源地第9腳D2雙向數(shù)據(jù)線第2腳VDD+5V電源第10腳D3雙向數(shù)據(jù)線第3腳VEE液晶顯示偏壓信號(hào)第11腳D4雙向數(shù)據(jù)線第4腳RS數(shù)據(jù)/命令選擇端第12腳D5雙向數(shù)據(jù)線第5腳R/W讀/寫(xiě)選擇端第13腳D6雙向數(shù)據(jù)線第6腳E使能端第14腳D7雙向數(shù)據(jù)線第7腳DO雙向數(shù)據(jù)線第15腳BLA背光源正極第8腳D1雙向數(shù)據(jù)線第16腳BLK背光源負(fù)極表3.41602型LCD的主要技術(shù)參數(shù)顯示容量16x2個(gè)字符芯片工作電壓4.5?5.5V工作電流2.0mA(5.0V)模塊最佳工作電壓5.0V字符尺寸2.95x4.35(WXH)mm表3.5基本操作程序

讀狀態(tài)令RS=L,RW=L,E=HD0~D7=狀態(tài)字讀數(shù)據(jù)令RS=H,RW=H,E=H無(wú)寫(xiě)指令令RS=L,RW=L,D0~D7=指令碼,E=高脈沖D0~D7=數(shù)據(jù)寫(xiě)數(shù)據(jù)令RS=H,RW=L,D0~D7=數(shù)據(jù),E=高脈沖無(wú)指令內(nèi)容輸出圖3.5單片機(jī)與LCD1602的連接圖3.5時(shí)鐘電路設(shè)計(jì)美國(guó)TheDallasGroupofAmerica公司推出了一款名為DS1302的時(shí)鐘芯片。其特點(diǎn)是性能高、功耗低、工作時(shí)功率小于1mW。內(nèi)含一個(gè)31字節(jié)的靜態(tài)RAM的實(shí)時(shí)時(shí)鐘電路,這款芯片能在時(shí)分秒,年月日等單位進(jìn)行計(jì)時(shí),每月的天數(shù)和平潤(rùn)年區(qū)別都可以自定調(diào)整,芯片DS1302能在2.5V~5.5V間正常使用。DS1302內(nèi)部有兩類與RAM相關(guān)的寄存器。用于時(shí)鐘電路的程序存儲(chǔ)。一類是由31個(gè)RAM單元,,獨(dú)立組成的,每一個(gè)單元有8個(gè)字節(jié)的RAM寄存器,掉電丟失,用于暫時(shí)儲(chǔ)放信息。另一類突發(fā)方式寄存器能必要時(shí)候?qū)⒍鄠€(gè)字節(jié)的RAM數(shù)據(jù)和時(shí)鐘信號(hào)通過(guò)CPU與三線接口同步通信

的方式,一次傳送出來(lái)。作為一款升級(jí)版時(shí)鐘芯片,DS1302不僅與前版本芯片兼容,而且米用了備用源VCC1、主電源VCC2雙電源引腳,同時(shí)VCC1具備小電流充電能力。通過(guò)串行接口進(jìn)行數(shù)據(jù)傳輸。振蕩源接口出的外接處,連接32.768kHz的晶振。3.5.1DS1302引腳說(shuō)明LI”LI”8xia2736igndIZ45nnnn圖3.6DS1302引腳主電源引腳為VCC2,備用電源引腳為VCC1。主電源正常工作時(shí)電容就處在充電狀態(tài),當(dāng)主電源斷開(kāi)后,這個(gè)電容能短時(shí)間內(nèi)繼續(xù)給DS1032供能。主流引腳比備用電源引腳高時(shí),DS1302由主流引腳供電,反之,由備用引腳供電。DS1302開(kāi)始運(yùn)行,直到主輸入引腳大于兩伏特前,引腳RST都必須保持低電平。想要將RST置為高電平,只有在通信時(shí)鐘引腳為低電平才行。I/O引腳是連接單片機(jī)STCC52,負(fù)責(zé)數(shù)據(jù)串行數(shù)據(jù)雙向傳輸?shù)摹CLK是單向輸入引腳,為通信時(shí)鐘的輸入端。具體的引腳說(shuō)明如表3.6o表3.6DS1302引腳功能說(shuō)明引腳號(hào)名稱功能1VCC1備份電源輸入2X132.768KHZ輸入3X232.768KHZ輸出4GND地5RST控制移位寄存器/復(fù)位這款時(shí)鐘芯片采用串行外接設(shè)備接口的驅(qū)動(dòng)方式,編程時(shí)須留意時(shí)鐘芯片的讀寫(xiě)時(shí)序。它不僅可以通過(guò)控制字的寫(xiě)入來(lái)向寄存器輸入信息,還能從正確的寄存器里獲取到相應(yīng)的數(shù)據(jù)信息。只有熟悉并掌握了DS1302時(shí)鐘芯片的控制字,才能發(fā)揮它的通信用途。該時(shí)鐘芯片的控制字的詳細(xì)信息在表3.6處。為了實(shí)現(xiàn)時(shí)鐘芯片的不同時(shí)間類型的顯示,需要將各種數(shù)據(jù)寫(xiě)入寄存器,想要傳送不同的信息內(nèi)容,制定其正確的工作方式,只需認(rèn)真學(xué)習(xí)了解控制字就能實(shí)現(xiàn)。因?yàn)閿?shù)據(jù)的每次傳輸都從控制字開(kāi)始。DS1302的一條指令有0~7共計(jì)8位字節(jié),第7位字節(jié)必須固定唯1,因?yàn)楫?dāng)它為0時(shí),寫(xiě)進(jìn)去DS1302的指令就是無(wú)效的。第6位:是RAM/CK。當(dāng)?shù)诹皇?時(shí)表示我們使用的是尋址內(nèi)部寄存器CK功能,存取時(shí)鐘數(shù)據(jù),要使用尋址內(nèi)部存儲(chǔ)器RAM的功能則把第六位設(shè)為1。A4、A3、A2、ALA0分別表示第五位到第一位,都是負(fù)責(zé)定義AM片內(nèi)寄存器的地址。當(dāng)?shù)?位為0時(shí)執(zhí)行CK時(shí)鐘功能時(shí),定義一個(gè)時(shí)鐘和其他數(shù)據(jù)寄存器的地址。A4至A0=0至6,第二,分鐘,小時(shí),日期,月份,星期,寄存器順序。如果A4至A0=7,則寫(xiě)入芯片保護(hù)開(kāi)關(guān)的地址。當(dāng)A4至A0=8時(shí),選擇慢充電參數(shù)的寄存器。當(dāng)A4至A0=31時(shí),選擇寄存器進(jìn)行字節(jié)處理模式。當(dāng)?shù)?位為1時(shí),則執(zhí)行寄存器RAM地址定義,A4至A0=0至30,根據(jù)每個(gè)子地址的RAM,該地址對(duì)應(yīng)于用于多字節(jié)模式選擇的31RAM模式。4.第0位是最低位:當(dāng)最低位取0,DS1302可以進(jìn)行寫(xiě)操作,當(dāng)最低位取1,則行使讀操作。當(dāng)數(shù)據(jù)需要進(jìn)行交換傳輸時(shí),信號(hào)CE引腳應(yīng)該低到高,當(dāng)CE被驅(qū)動(dòng)到邏輯1狀態(tài)時(shí),邏輯0一定在SCLK,串行數(shù)據(jù)的輸入出現(xiàn)在SCLK的上升沿,不管是讀或?qū)懼芷谥芷诨騻鬏斚到y(tǒng)是否是單字節(jié)或多字節(jié),40字節(jié)的要被存取的必須由控制字來(lái)指定,在八個(gè)時(shí)鐘周期命令字的開(kāi)頭(具有地址和控制的8位數(shù)據(jù)裝配在移位寄存器后信息),在讀操作中的時(shí)鐘輸出的附加數(shù)據(jù),在輸入數(shù)據(jù)的寫(xiě)入操作中,所有的數(shù)據(jù)更改時(shí)鐘下降沿。所有的讀入和寫(xiě)出均無(wú)法直接操作,想要進(jìn)行信息的傳輸交換,都是依靠發(fā)送字節(jié)命令的方式。對(duì)于單字節(jié)操作,包括命令字節(jié)在內(nèi),各兩個(gè)字節(jié),需要16個(gè)時(shí)鐘,多字節(jié)的操作的時(shí)鐘/日歷模式,每一個(gè)字節(jié)是7,它需要72個(gè)時(shí)鐘,以及用于操作的多字節(jié)RAM模式,32每字節(jié),最多256個(gè)時(shí)鐘相比較,這里只單個(gè)字節(jié)序列,向其中操作類似的多字節(jié)模式,不同之處以及與具有多于一個(gè)字。—^ULrLrLrLTLrLnRrLrLrLrLrLrL

《恥A&AlHASAdR啟"H口1典I皿D406^57rLrLnrLrLFmrLrLrmLFLrLrurm 圖3.8DS1302單字節(jié)讀寫(xiě)時(shí)序3.5.3DS1302片內(nèi)寄存器說(shuō)明通過(guò)使用控制字對(duì)時(shí)鐘芯片的選擇工作區(qū)對(duì)應(yīng)的寄存器,開(kāi)始進(jìn)行相應(yīng)的指令操作時(shí),須得了解芯片中各類寄存器的功能定義。表3.9片內(nèi)各寄存器各位的功能定義表在讀寄存器寫(xiě)寄存器BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0范圍這款時(shí)鐘芯片十個(gè)功能的寄存器81H80HCH10秒秒00?5983H82H10分分00?5985H84H12/24010時(shí)時(shí)1?12AM/PM0?2387H86H0010日日1?3189H88H0010月月1?128BH8AH00000周日1?78DH8CH10年年00?998FFH8EHWP0000000—中,里面7個(gè)寄存器是與時(shí)鐘/日歷有關(guān)的,S1H/80H表示秒鐘,83H/82H表示分鐘,85H/84H表示小時(shí)(有12進(jìn)制和24進(jìn)制),87H/86H表示日期,89H/88H表示月份,8BH/8AH表示星期,8DH/8CH表示年份。寄存器三85H/84H的最高位bit7決定了時(shí)鐘芯片的小時(shí)是12進(jìn)制還是24進(jìn)制,當(dāng)bit7為1是12小時(shí)制,bit7為0是24小時(shí)制。在bit7=1(12小時(shí)制)時(shí),第5位0表示上午am,1表示下午pm。在bit7=0(24小時(shí)制)時(shí),第位5是24個(gè)小時(shí)里的十位數(shù),低4位是小時(shí)里的個(gè)位數(shù)。

圖3.8單片機(jī)與時(shí)鐘芯片DS1302連接圖這種硬件連接線路方式簡(jiǎn)潔明了,不容易受外界因素的影響。如圖,時(shí)鐘芯片DS1302的RST端徑直項(xiàng)鏈在單片機(jī)的p2.2引腳上,聯(lián)通電源,單片機(jī)的引腳P2.2會(huì)為時(shí)鐘芯片輸出一個(gè)高電平。串行時(shí)鐘接口則連接單片機(jī)P2.0的引腳,時(shí)鐘數(shù)據(jù)的I/O端口連接單片機(jī)引腳p2.1。時(shí)鐘芯片使用VCC1+VCC2主備供電,這么做的好處是保證了電源的穩(wěn)定性。平時(shí)由大電源供電,當(dāng)大電源失效之后,由圖中+3V的小電源對(duì)計(jì)價(jià)器輸出電壓。連接時(shí)需額外注意XI和X2的的,前者接晶振的輸入端,后者接輸出端。3.6鍵盤(pán)調(diào)整電路按鍵部分采用7個(gè)獨(dú)立按鍵圖3.9鍵盤(pán)調(diào)整按鍵電路K1:第一次按下開(kāi)始計(jì)價(jià),第二次按下停止計(jì)價(jià),第三次按下計(jì)價(jià)數(shù)據(jù)清零,并返回時(shí)間顯示頁(yè)面。K3:暫停出租車(直流電機(jī))的轉(zhuǎn)動(dòng)。K4:?jiǎn)?dòng)出租車(直流電機(jī))的轉(zhuǎn)動(dòng)。K5:時(shí)間日期設(shè)置鍵。K6:里程單價(jià)和起步價(jià)的設(shè)置鍵。K7:在設(shè)置狀態(tài)下,是增大鍵;在不設(shè)置的狀態(tài)下按下顯示當(dāng)天的總價(jià)。K8:在設(shè)置狀態(tài)下,是減小鍵;在顯示當(dāng)天總價(jià)的時(shí)候,按下使當(dāng)天的總價(jià)清零。3.7K24C02的電路設(shè)計(jì)記憶存儲(chǔ)模塊我們選用EEPROM中的K24C02電可擦除可編程只讀存儲(chǔ)器,K24C02包含每個(gè)8位,共計(jì)256個(gè)的字節(jié)存儲(chǔ)空間。K24C02的工作電壓為1.8—6.0伏特,可以在多種場(chǎng)景多種方式下應(yīng)用。時(shí)鐘及數(shù)據(jù)傳輸:數(shù)據(jù)傳送通常取決于SCL端口所接的能發(fā)出串行時(shí)鐘信號(hào)的主器件。外圍器件通常會(huì)把端口SDA的電壓拉高。只有當(dāng)接串行時(shí)鐘的SCL端口處于低電位時(shí),用于器件所有數(shù)據(jù)的發(fā)送或接收的SDA管腳才能發(fā)生變動(dòng)(參見(jiàn)圖2-10);當(dāng)串行時(shí)鐘端口SCL為高時(shí),SDA端口如果出現(xiàn)變化,這個(gè)變化將視為一條特殊的命令,表示啟動(dòng)或停止,下文有闡述。起始條件:當(dāng)串行端口的SCL表現(xiàn)為高位電壓時(shí),SDA端口出現(xiàn)了電壓從高位變化到低位,則此變化會(huì)被定義為起始命令。如果我們想要進(jìn)行讀取或?qū)懭?,都必須要憑借該命令進(jìn)行(參見(jiàn)圖2T1)。停止條件:當(dāng)串行端口的SCL表現(xiàn)為高位電壓時(shí),SDA端口出現(xiàn)了電壓從低位變化到高位,則此變化會(huì)被定義為停止命令,再一次讀的動(dòng)作完成后,這個(gè)動(dòng)作將會(huì)發(fā)出命令使得EEROM不再應(yīng)答主器件的請(qǐng)求,進(jìn)入等待模式。(參見(jiàn)圖2-11)。應(yīng)答:每8位bit,根據(jù)字節(jié)的定義,組成一個(gè)地址和數(shù)據(jù)字節(jié)用于輸入或輸出。每當(dāng)接收了一組由8位構(gòu)成的信息后,將會(huì)輸出一個(gè)返回信號(hào),在第九個(gè)時(shí)鐘周期,用于表示應(yīng)答。主控器件如果要繼續(xù)接受數(shù)據(jù),當(dāng)它在第一到第八時(shí)鐘周期內(nèi)接到一組數(shù)據(jù)后,應(yīng)答向EEPROM作出應(yīng)答,這個(gè)信號(hào)在第九周期。只有收到的這個(gè)應(yīng)答的請(qǐng)求,EEPROM才會(huì)向主控器件發(fā)送下一組8位的數(shù)據(jù)。等待模式:K24C02如果想暫停使用又不想關(guān)閉它,可以使其進(jìn)入等待模式,在此模式下功耗將會(huì)被壓縮到極低。想進(jìn)入等待模式有兩種方法,一個(gè)是上電:一個(gè)是內(nèi)部沒(méi)有任何操作時(shí)收到停止位。器件復(fù)位:當(dāng)出現(xiàn)異常情況導(dǎo)致協(xié)議中斷,電源斷開(kāi)或系統(tǒng)發(fā)生復(fù)位后,想要將器件復(fù)位需要按照下面3步進(jìn)行操作:先把9個(gè)時(shí)鐘連續(xù)輸入進(jìn)去,在此期間位置SCL和SDA同時(shí)都為高位,在每個(gè)時(shí)鐘周期中,然后建立一個(gè)起始條件即可。數(shù)賣受化圖3.10圖3.11K24C02斷電存儲(chǔ)部分電路如下:VCCU1GND圖圖3.11K24C02斷電存儲(chǔ)部分電路如下:VCCU1GND圖3.124系統(tǒng)的軟件設(shè)計(jì)本系統(tǒng)的軟件設(shè)計(jì)主要分為8個(gè)部分,對(duì)于轉(zhuǎn)換公里數(shù)為價(jià)格的主程序模塊,定時(shí)中斷程序,里程技術(shù)中斷程序,客人中途要求我們等待時(shí)的中途等待中斷服務(wù)程序顯示子程序服務(wù)程序,控制鍵盤(pán)邏輯關(guān)系的鍵盤(pán)服務(wù)程序,用于計(jì)時(shí),顯示時(shí)間的DS1302時(shí)鐘程序以及K24C02的數(shù)據(jù)斷電保護(hù)程序。下面對(duì)各部分模塊作介紹。4.1系統(tǒng)主程序設(shè)計(jì)我們的主程序模塊需要在計(jì)價(jià)器開(kāi)始工作時(shí)初始化計(jì)價(jià)器里的各個(gè)芯片,重新開(kāi)始計(jì)算里程和金額,并通過(guò)里程寄存器來(lái)進(jìn)行運(yùn)算分析,當(dāng)前的行駛里程何時(shí)會(huì)超過(guò)規(guī)定的起價(jià)公里數(shù)。在起步價(jià)的里程內(nèi),車資按照起步價(jià)算。當(dāng)行程超出了起步價(jià)里程,則根據(jù)超出的里程以及每公里的單價(jià)數(shù)進(jìn)行運(yùn)算,再加上起步價(jià),即為當(dāng)前出租車應(yīng)收的車資,并將結(jié)果保存在寄存器里,最后通過(guò)顯示屏公示出來(lái)。開(kāi)始總路程加1顯示金額至單愴圖4.1主程序流程圖4.2里程計(jì)數(shù)中斷服務(wù)程序給出租車計(jì)價(jià)器設(shè)置一個(gè)計(jì)數(shù)上限,規(guī)定:當(dāng)計(jì)價(jià)器完成了1000次里程價(jià)格計(jì)算時(shí),單片機(jī)就不再繼續(xù)運(yùn)行,中斷當(dāng)前工作,使得計(jì)價(jià)器停止服務(wù)。為了完成這一操作,需要把對(duì)計(jì)價(jià)器內(nèi)里程價(jià)格計(jì)算的操作累加計(jì)數(shù),并把結(jié)果存入里程和總額寄存器中。。4.3中途等待中斷服務(wù)程序當(dāng)出租車服務(wù)已經(jīng)開(kāi)始后,乘客因個(gè)人原因需要出租車司機(jī)原地等待的,就要應(yīng)用到這個(gè)中途等待的功能。司機(jī)按下休息鍵,車子原地等候乘客期間,進(jìn)行等候計(jì)費(fèi)模式。每次計(jì)時(shí)滿3分鐘,就對(duì)當(dāng)前車費(fèi)加上每3分鐘等待的金額。4.4顯示子程序出租車計(jì)價(jià)器的顯示模塊我應(yīng)用了1602液晶顯示器,這個(gè)顯示器可以寫(xiě)兩行X40字符,共計(jì)80個(gè)字符,并且自帶字符庫(kù)。關(guān)于程序的編輯,一般是先寫(xiě)命令,然把字符顯示設(shè)置好,數(shù)據(jù)放在最后才寫(xiě)。每次我們都需要判斷顯示器是否正忙,再去寫(xiě)命令或數(shù)據(jù)。4.5DS1302時(shí)鐘程序DS1302程序操作流程圖如下:根據(jù)上述點(diǎn)流程圖,設(shè)計(jì)DS1302時(shí)鐘程序:(程序參考系統(tǒng)源程序)4.6K24C02數(shù)據(jù)斷電保護(hù)程序K24C02器件基本操作如下:數(shù)據(jù)傳送通常取決于SCL端口所接的能發(fā)出串行時(shí)鐘信號(hào)的主器件。外圍器件通常會(huì)把端口SDA的電壓拉高。只有當(dāng)接串行時(shí)鐘的SCL端口處于低電位時(shí),用于器件所有數(shù)據(jù)的發(fā)送或接收的SDA管腳才能發(fā)生變動(dòng)(參見(jiàn)圖2-10);當(dāng)串行時(shí)鐘端口SCL為高時(shí),SDA端口如果出現(xiàn)變化,這個(gè)變化將視為一條特殊的命令,表示啟動(dòng)或停止,下文有闡述。⑴起始條件:當(dāng)串行端口的SCL表現(xiàn)為高位電壓時(shí),SDA端口出現(xiàn)了電壓從高位變化到低位,則此變化會(huì)被定義為起始命令。如果我們想要進(jìn)行讀取或?qū)懭?,都必須要憑借該命令進(jìn)行。⑵停止條件:當(dāng)串行端口的SCL表現(xiàn)為高位電壓時(shí),SDA端口出現(xiàn)了電壓從低位變化到高位,則此變化會(huì)被定義為停止命令,再一次讀的動(dòng)作完成后,這個(gè)動(dòng)作將會(huì)發(fā)出命令使得EEROM不再應(yīng)答主器件的請(qǐng)求,進(jìn)入等待模式。應(yīng)答:每8位bit,根據(jù)字節(jié)的定義,組成一個(gè)地址和數(shù)據(jù)字節(jié)用于輸入或輸出。每當(dāng)接收了一組由8位構(gòu)成的信息后,將會(huì)輸出一個(gè)返回信號(hào),在第九個(gè)時(shí)鐘周期,用于表示應(yīng)答。主控器件如果要繼續(xù)接受數(shù)據(jù),當(dāng)它在第一到第八時(shí)鐘周期內(nèi)接到一組數(shù)據(jù)后,應(yīng)答向EEPROM作出應(yīng)答,這個(gè)信號(hào)在第九周期。只有收到的這個(gè)應(yīng)答的請(qǐng)求,EEPROM才會(huì)向主控器件發(fā)送下一組8位的數(shù)據(jù)。等待模式:K24C02如果想暫停使用又不想關(guān)閉它,可以使其進(jìn)入等待模式,在此模式下功耗將會(huì)被壓縮到極低。想進(jìn)入等待模式有兩種方法,一個(gè)是上電:一個(gè)是內(nèi)部沒(méi)有任何操作時(shí)收到停止位。器件復(fù)位:當(dāng)出現(xiàn)異常情況導(dǎo)致協(xié)議中斷,電源斷開(kāi)或系統(tǒng)發(fā)生復(fù)位后,想要將器件復(fù)位需要按照下面3步進(jìn)行操作:先把9個(gè)時(shí)鐘連續(xù)輸入進(jìn)去,在此期間位置SCL和SDA同時(shí)都為高位,在每個(gè)時(shí)鐘周期中,然后建立一個(gè)起始條件即可。其源程序參考系統(tǒng)源程序。4.7鍵盤(pán)服務(wù)程序?yàn)榱耸沟糜?jì)價(jià)器具有可操控性,對(duì)系統(tǒng)時(shí)間,應(yīng)收單價(jià),晝夜切換等功能或顯示進(jìn)行調(diào)節(jié),加入一個(gè)鍵盤(pán)模塊。令出租車計(jì)價(jià)器具備實(shí)際使用意義,方便司機(jī)操控,乘客讀取信息。開(kāi)始保護(hù)現(xiàn)場(chǎng)帀:置計(jì)數(shù)初值開(kāi)始保護(hù)現(xiàn)場(chǎng)帀:置計(jì)數(shù)初值pi數(shù)據(jù)送M.示緩沖單元調(diào)用顯示子程序恢受現(xiàn)場(chǎng)圖4.3定時(shí)中斷服務(wù)程序5系統(tǒng)安裝與調(diào)試5.1程序的查錯(cuò)手段我們?cè)谠O(shè)計(jì)一款單片機(jī)的應(yīng)用系統(tǒng)時(shí),一般不會(huì)直接使用實(shí)物進(jìn)行制作。必須借助軟件和開(kāi)發(fā)系統(tǒng)來(lái)驗(yàn)證自己的想法,進(jìn)行數(shù)字化模擬實(shí)驗(yàn),仿真,對(duì)我們?cè)O(shè)計(jì)的硬件和軟件全面勘查,測(cè)試,驗(yàn)證其可行性并避免浪費(fèi)實(shí)物。軟件和開(kāi)發(fā)系統(tǒng)的種類有多種,但通常都是用以下幾種手段可供仿真與查錯(cuò)。5.1.1單步執(zhí)行簡(jiǎn)單的單步執(zhí)行可以幫助我們對(duì)程序采用逐條逐條檢查的方式,每一步檢查一條指令,通過(guò)這種分步且細(xì)致的檢查來(lái)驗(yàn)證程序是否與我們?cè)O(shè)計(jì)的要求一致,能否實(shí)現(xiàn)我們想要的功能。而宏單步執(zhí)行操作則可以把一段程序執(zhí)行檢查,一步就能執(zhí)行整個(gè)循環(huán)程序段。5.1.2斷點(diǎn)設(shè)置全速運(yùn)行當(dāng)我們對(duì)自己的程序已經(jīng)大體排查完畢之后,如果還對(duì)程序的某些地方不太確定抱有疑慮,不必一段一段的進(jìn)行檢測(cè),只需要對(duì)有疑問(wèn)的地方設(shè)置一個(gè)斷電,開(kāi)始運(yùn)行程序,斷電設(shè)置操作就能過(guò)以全速或者非全速的方式,從開(kāi)頭一直運(yùn)行到目的地。運(yùn)行有三種結(jié)果,一個(gè)是程序?qū)懙恼_,至少無(wú)邏輯和語(yǔ)法上的硬傷,那程序就會(huì)一直順利運(yùn)行到目的斷點(diǎn)處,并且自動(dòng)返回監(jiān)控狀態(tài)。一個(gè)是程序確實(shí)出現(xiàn)了錯(cuò)誤,那么檢測(cè)運(yùn)行就會(huì)從開(kāi)頭一直運(yùn)行到錯(cuò)誤的地方停止。如果程序陷入了死循環(huán)或者程序運(yùn)行時(shí)發(fā)生跑飛,那么檢測(cè)運(yùn)行就會(huì)一直進(jìn)行下去直到有人為干預(yù)停止。斷點(diǎn)設(shè)置全速運(yùn)行可以很方便的就我們的疑問(wèn)點(diǎn)進(jìn)行測(cè)試,能過(guò)快速排查出問(wèn)題是否存在,并快速響應(yīng)。5.1.3顯示器窗口檢查5.1.4實(shí)時(shí)跟蹤記錄除上述之外,還有以下功能:符號(hào)化調(diào)試。通常,我們的程序會(huì)以標(biāo)號(hào)與符號(hào)地址等展現(xiàn)出來(lái),以自動(dòng)控制進(jìn)行數(shù)據(jù)變換和調(diào)整,偏移量為手段,以實(shí)現(xiàn)程序計(jì)算和內(nèi)容寫(xiě)入的自主。達(dá)到快速跟蹤記錄,確定目標(biāo)的目的。5.2源程序的檢測(cè)源程序是出租車計(jì)價(jià)器里非常重要的一部分,但程序也是依附在硬件上才能發(fā)揮出作用來(lái)的。因此我們?nèi)绻胍獙?duì)源程序進(jìn)行檢測(cè)和調(diào)試的話,就必須先排除硬件上的問(wèn)題,保證硬件基本上是正確的。在此基礎(chǔ)上,我們對(duì)源程序調(diào)試前,主要的要求是要先對(duì)其進(jìn)行檢測(cè)。5.2.1程序系統(tǒng)檢查以程序設(shè)計(jì)初畫(huà)的流程圖為對(duì)照進(jìn)行檢查。第一步先把不同功能分區(qū)模塊和功能,中斷服務(wù)程序,和子模塊等相對(duì)獨(dú)立的部分認(rèn)真檢查。第二步,按照功能的劃分,如時(shí)鐘模塊,顯示模塊,劃分成對(duì)應(yīng)幾段程序,逐一檢查。最后是以整個(gè)系統(tǒng)為整體分析檢查。程序的檢查是有側(cè)重的,邏輯功能的符合要求與否,結(jié)構(gòu)與算法是不是足夠完善,有關(guān)的參量和初始值正不正確,都是重點(diǎn)。難點(diǎn)在于關(guān)鍵性的指令是否選擇合理,這個(gè)比較難判斷,尤其是在模擬的情況也并不是能完全百分百反應(yīng)實(shí)物的效果,有些難以調(diào)試正確的隱患。需要花費(fèi)一定的時(shí)間和精力去仔細(xì)檢查。5.2.2硬件系統(tǒng)檢查硬件系統(tǒng)是畢業(yè)設(shè)計(jì)的關(guān)鍵點(diǎn),保證沒(méi)有重大的疏漏如線路故障或電源短路,在連接各種芯片的器件前,先接通電源進(jìn)行上電檢查,看各個(gè)節(jié)點(diǎn)處電勢(shì)是否合理,連接有無(wú)問(wèn)題,邏輯電平及信號(hào)是否正確。在排除了以上可能存在的隱患后,將芯片和器件按照設(shè)計(jì)好的位置接好,使用proteus等軟件對(duì)仿真程序進(jìn)行檢查。如果有故障存在,仿真軟件的監(jiān)控程序就無(wú)法正常工作。這種辦法可以幫助我們快速排查硬件系統(tǒng)的一般性故障。。有故障是純軟件上的,只需在軟件上調(diào)試好故障點(diǎn)就能排除;有些是軟件和硬件上不相匹配,需要通過(guò)軟件的調(diào)試對(duì)硬件稍作調(diào)整才能解決。5.3源程序的調(diào)試源程序在檢測(cè)完畢后需要進(jìn)行調(diào)試,以確保功能合理數(shù)據(jù)正確。調(diào)試一般有以下步驟。5.3.1分調(diào)首先調(diào)試的對(duì)象是子程序,它們相對(duì)獨(dú)立,分別使用仿真軟件對(duì)其進(jìn)行調(diào)試直到符合基本的設(shè)計(jì)要求。中斷服務(wù)程序則用模擬的方法初調(diào),接著按照出租車計(jì)價(jià)器的系統(tǒng)邏輯,分設(shè)為幾個(gè)大部的功能程序段,按照應(yīng)用系統(tǒng)運(yùn)行的邏輯順序逐級(jí)進(jìn)行調(diào)試?;诔鲎廛囉?jì)價(jià)器的實(shí)際應(yīng)用預(yù)設(shè)一些數(shù)據(jù),通過(guò)仿真軟件對(duì)程序段進(jìn)行仿真運(yùn)行。觀察仿真運(yùn)行的結(jié)果或故障影響。發(fā)現(xiàn)問(wèn)題存在,需要問(wèn)題的根源。大膽假設(shè),小心求證,利用仿真的系統(tǒng)環(huán)境來(lái)驗(yàn)證自己的故障原因分析,逐步縮小問(wèn)題的范圍,確定問(wèn)題的原因并加以改善。分析故障原因。5.3.2聯(lián)調(diào)在前面我們通過(guò)分調(diào)已經(jīng)基本上完成了各個(gè)獨(dú)立模塊的調(diào)試,而聯(lián)調(diào)在此基礎(chǔ)上的任務(wù)與分調(diào)不同,它的調(diào)試將證明不同程序模塊之間,能否各司其職的同時(shí)又顧及大局不會(huì)沖突,因此,聯(lián)調(diào)的存在也是必要的。此調(diào)試的要點(diǎn)是調(diào)試主程序與子程序之間能否依照設(shè)計(jì)正確連接,信息交換是否通暢。通過(guò)執(zhí)行順序依次對(duì)整個(gè)軟件系統(tǒng)逐個(gè)相連進(jìn)行調(diào)試。5.4proteus界面介紹|預(yù)覽崗口|I時(shí)彖迭擇技耐圖形帯輯窗口8Alnl-P|預(yù)覽崗口|I時(shí)彖迭擇技耐圖形帯輯窗口8Alnl-PCOlo-tt1—■」1l?1nL?丨|Real 1 ~—|」I/+UQC#皿取節(jié)冷打象方位呻割按即仿■真巷程控制技鈕狀態(tài)欄圖5.1Proteus窗口界面圖5.5Protues的簡(jiǎn)單使用5.5.1新建原理圖啟點(diǎn)擊proteus軟件的圖標(biāo),啟動(dòng)仿真軟件。選擇File下面的New選項(xiàng),會(huì)跳出新建原理圖的界面。定下我們要展示的紙面格式,示意圖如圖5-2所示:EMIMewDgnEMISelectatemplatetoactthedefaultfcrthenewde^ian:DEFAULTL-snd^c=apeLand A3L-sndsc-apeA4sIandicapeL

AHPortraitA3L-sndscapeAOLandscapeUSBLandscapeUSCPortraitA4PortraitUSAPnrtraitAO

DEFAULTL-snd^c=apeLand A3L-sndsc-apeA4sIandicapeL

AHPortraitA3L-sndscapeAOLandscapeUSBLandscapeUSCPortraitA4PortraitUSAPnrtraitAO

區(qū)]

PortraitUSB富PortraitAl宣FizirkraitUSIZPortraitA2C:XFrooramFilesXLabccnterElectionicsXFroteus7Professional\TEMFLATESXLandscapeUSB.DTF旦K ]ICancel圖5.2新建原理圖示意圖

5.5.2尋找元件打開(kāi)protues,選擇P字母開(kāi)頭的pickdevices選擇元件按鈕,會(huì)出現(xiàn)軟件里自帶的仿真元件庫(kù),里面可以選擇我們需要的元件,出現(xiàn)如圖4.3所示窗口,通過(guò)關(guān)鍵詞搜索出目標(biāo)元件,并連接。BIIz|PickDevicesBIIz|PickDevicesDEVICESmPickl>e¥ICE9mPickl>e¥ICE9

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論