




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、內(nèi)蒙古科技大學(xué)智能儀表綜合訓(xùn)練設(shè)計(jì)說明書題 目:基于單片機(jī)的汽車計(jì)價(jià)器設(shè)計(jì)學(xué)生姓名: 學(xué) 號(hào):專 業(yè):測(cè)控技術(shù)與儀器班 級(jí):指導(dǎo)教師: 汽車計(jì)價(jià)器設(shè)計(jì)與實(shí)現(xiàn)摘要本設(shè)計(jì)的是一個(gè)基于單片機(jī)at89c52的出租車自動(dòng)計(jì)費(fèi)設(shè)計(jì),可實(shí)現(xiàn)的主要功能有:數(shù)據(jù)的復(fù)位、白天/晚上轉(zhuǎn)換、數(shù)據(jù)輸出、計(jì)時(shí)計(jì)價(jià)、單價(jià)輸出及調(diào)整、路程輸出、實(shí)現(xiàn)在系統(tǒng)掉電的時(shí)候保存單價(jià)和系統(tǒng)時(shí)間等信息等功能。輸出采用lcd顯示。該設(shè)計(jì)附有復(fù)位電路,時(shí)鐘電路,鍵盤電路,lcd1602顯示電路等。(1)復(fù)位電路是單片機(jī)的初始化操作,除了正常的初始化外,為擺脫困境,通過復(fù)位電路可以重新開始。(2)時(shí)鐘電路采用12mhz的晶振,作為系統(tǒng)的時(shí)鐘源,
2、具有較高的準(zhǔn)確性。(3)鍵盤電路采用了四個(gè)按鍵,s1、s2、s3、s4,其功能分別是:s1 分屏顯示切換按鍵,s2功能設(shè)定按鍵,s3 ./白天晚上切換按鍵,s4 ./中途等待開關(guān)。(4)在上電時(shí)字符型液晶1602顯示最初的起步價(jià),里程收費(fèi),等待時(shí)間收費(fèi)三種收費(fèi)。在1602液晶上可以顯示運(yùn)行的時(shí)間,運(yùn)行時(shí)暫停的時(shí)間,通過計(jì)算可以得出總共的費(fèi)用和總的路程。在這里主要是以at89s52單片機(jī)為核心控制器,p0口接1602液晶顯示模塊,p1口接按鍵的,通過按鍵輸入。本系統(tǒng)假設(shè)速度恒定60km/h(1km/min),白天起步價(jià)為6元/2公里,夜間起步價(jià)為6.5/2公里 ,超過兩公里加1.3元/公里,等待
3、超過2分鐘,1.5/分鐘。關(guān)鍵詞:出租車計(jì)費(fèi)器;霍爾傳感器;stc89c52rc;ds1302;lcd1602auto meter design and implementationabstractthis design is based on a single chip at89c52 taxis design, can achieve the main functions are: data reduction, day / night conversion, data output, timing, price adjustment, and valuation of output. o
4、utput, implemented in the system power off when preservation of monovalent and system time information and other functions. output using lcd display.the design with the reset circuit, clock circuit, keyboard circuit, lcd1602 display circuit.( 1) reset circuit is a single chip initialization operatio
5、n, in addition to the normal initial acquisition, to cast off predicament, the reset circuit can start again.( 2) the clock circuit using a 12mhz crystal, as the system clock source, with higher accuracy.( 3) the keyboard circuit uses four keys, s1, s2, s3, s4, its functions are: s1 split screen dis
6、play toggle button, s2 function set key, s3. +. / day and night switching button, s4. -. / midway for switch.( 4) in the upper electricity character liquid crystal display 1602 original starting price, mileage charges, waiting time charges three charges. in 1602 the lcd can display the running time,
7、 operation suspension can be obtained by the computation time, the total cost and the total distance. here is mainly to the at89s52 mcu as the core controller, p0 mouth is connected with the 1602 liquid crystal display module, p1 port access keys, through the key input.the system assumes that the co
8、nstant speed 60km / h ( 1km / min ), the starting price is 6 yuan / 2 km, night starting price is 6.5 yuan / 2 km, more than two kilometers and 1.3 yuan/1km, wait for more than 5 minutes at 1 km to calculate.keywords: taxi meter;holzer sensor ;stc89c52rc;ds1302;lcd1602目錄摘要iabstractii第一章 前言11.1問題的提出1
9、1.2國內(nèi)外研究現(xiàn)狀11.3設(shè)計(jì)思路2第二章 硬件組成32.1stc89c52rc單片機(jī)32.1.1引腳說明:32.2lcd1602液晶顯示器52.2.1lcd1602引腳說明62.2.2lcd1602的基本指令62.3霍爾傳感器82.4時(shí)鐘芯片ds130292.4.1時(shí)鐘芯片ds1302引腳說明102.5掉電存儲(chǔ)單元at24c0812第三章 硬件設(shè)計(jì)133.1硬件電路的概述133.2 stc89c52單片機(jī)主控模塊電路133.2.1 stc89c52單片機(jī)的晶振電路133.2.2 stc89c52單片機(jī)的復(fù)位電路133.2.3 stc89c52單片機(jī)的最小系統(tǒng)電路143.3lcd1602液晶
10、顯示電路143.4串口通信電路153.5外部電源供電153.6霍爾傳感器a444e電路圖16第四章 軟件設(shè)計(jì)174.1主程序流程圖174.2里程中斷服務(wù)子程序174.3中途等待中斷子程序184.4計(jì)算程序194.5 lcd顯示程序204.6按鍵檢測(cè)子程序20第五章 總結(jié)22參考文獻(xiàn)23附錄a本設(shè)計(jì)原理圖24附錄b本設(shè)計(jì)源程序25第一章 前言1.1問題的提出步入21世紀(jì),出租車已經(jīng)廣泛地出現(xiàn)在我們周圍。隨著人們生活水平的不斷提高,出租車的使用頻率也越來越高,出租車行業(yè)也以高質(zhì)量的服務(wù)給人們帶來了出行的享受。但是由于行業(yè)的特殊性,出租車行業(yè)總存在著買糾紛,困擾著行業(yè)的發(fā)展。而在出租車行業(yè)中解決這一
11、矛盾的最好方法就是改良計(jì)價(jià)器,用更加精良的計(jì)價(jià)器來為乘客提供更加方便快捷的服務(wù)。 30年前,我國出現(xiàn)了出租車,但是由于當(dāng)時(shí)的經(jīng)濟(jì)水平,出租車并沒有普遍在我們生活中出現(xiàn)。隨著改革開放的深入,出租車行業(yè)的發(fā)展勢(shì)頭已十分突出。如今出租車在我國的交通運(yùn)輸中承擔(dān)著重要的角色,出租車計(jì)價(jià)器是出租車上必不可少的重要儀器,它是負(fù)責(zé)出租車營運(yùn)收費(fèi)的專用智能化儀表。隨著城市旅游業(yè)的發(fā)展,出租車行業(yè)已成為城市的窗口,象征著一個(gè)城市的文明程度。1.2國內(nèi)外研究現(xiàn)狀隨著超大規(guī)模集成電路技術(shù)的發(fā)展,單片機(jī)也隨之有了很大發(fā)展,各種新穎的單片機(jī)層出不窮,并已廣泛地應(yīng)用到人類生活的各個(gè)領(lǐng)域,包括工業(yè)控制、數(shù)據(jù)采集、智能儀表、機(jī)
12、電一體化、家用電器等各方面,成為當(dāng)今科學(xué)技術(shù)現(xiàn)代化不可缺少的重要工具。與此同時(shí),現(xiàn)代交通工具迅猛發(fā)展,出租車在人們的日常生活中所扮演的角色越來越重要,但如何準(zhǔn)確計(jì)費(fèi),以達(dá)到既使乘客滿意又不讓出租車司機(jī)虧本的目的,就迫在眉睫。對(duì)于計(jì)價(jià)器的設(shè)計(jì)采用模擬電路和數(shù)字電路設(shè)計(jì)的計(jì)價(jià)器整體電路的規(guī)模較大,用到的器件多,造成故障率高,難調(diào)試,對(duì)于模式的切換需要用到機(jī)械開關(guān),機(jī)械開關(guān)時(shí)間久了會(huì)造成接觸不良,功能不易實(shí)現(xiàn)。而采用單片機(jī)進(jìn)行的設(shè)計(jì),相對(duì)來說功能強(qiáng)大,用較少的硬件和適當(dāng)?shù)能浖嗷ヅ浜峡梢院苋菀椎膶?shí)現(xiàn)設(shè)計(jì)要求,且靈活性強(qiáng),可以通過軟件編程來完成更多的附加功能。針對(duì)計(jì)費(fèi)模式的切換,通過軟件編程就可以輕易
13、而舉的實(shí)現(xiàn)。避免了機(jī)械開關(guān)帶來的不穩(wěn)定因素。并且利用單片機(jī)技術(shù)來實(shí)現(xiàn)一臺(tái)多功能出租車計(jì)價(jià)器,具有性能可靠、電路簡(jiǎn)單、成本低等特點(diǎn)。計(jì)價(jià)器顯示的營運(yùn)金額是營運(yùn)里程與價(jià)格的函數(shù)。出租車計(jì)價(jià)器通過傳感器與行駛車輛連接。出租汽車的實(shí)際里程通過傳感器的脈沖信號(hào)在計(jì)價(jià)器里折算成一定的計(jì)價(jià)營運(yùn)里程。目前市場(chǎng)上出租車計(jì)價(jià)器功能主要有具有數(shù)據(jù)的復(fù)位功能、白天/晚上轉(zhuǎn)換功能、數(shù)據(jù)輸出功能、計(jì)時(shí)計(jì)價(jià)功能等等,但能夠進(jìn)行語音播報(bào)數(shù)據(jù)信息的出租車計(jì)價(jià)器還是比較少見的,針對(duì)這一點(diǎn)我們來設(shè)計(jì)一款多功能出租車計(jì)價(jià)器,在原有功能的基礎(chǔ)上增加單價(jià)輸出、單價(jià)調(diào)整、路程輸出、顯示當(dāng)前的系統(tǒng)時(shí)間等功能。1.3設(shè)計(jì)思路圖1.1設(shè)計(jì)總體電
14、路圖采用單片機(jī)控制利用單片機(jī)豐富的io端口,及其控制的靈活性,實(shí)現(xiàn)基本的里程計(jì)價(jià)功能和價(jià)格調(diào)節(jié)、時(shí)鐘顯示功能。其原理如圖1.1所示。本電路以stc89c52rc單片機(jī)為中心、附加a44e 霍爾傳感器測(cè)距,實(shí)現(xiàn)對(duì)出租車計(jì)價(jià)統(tǒng)計(jì),采用at24c08 實(shí)現(xiàn)在系統(tǒng)掉電的時(shí)候保存單價(jià)和系統(tǒng)時(shí)間等信息,輸出采用lcd1602顯示。本電路設(shè)計(jì)的計(jì)價(jià)器不但能實(shí)現(xiàn)基本的計(jì)價(jià),而且還能根據(jù)白天、黑夜、中途等待來調(diào)節(jié)單價(jià),同時(shí)在不計(jì)價(jià)的時(shí)候還能作為時(shí)鐘為司機(jī)同志提供方便。第二章 硬件組成2.1stc89c52rc單片機(jī)stc系列單片機(jī)是由stmicroelectronics 公司生產(chǎn),并有宏晶公司做大陸代理的。st
15、microelectronics即意法半導(dǎo)體公司是1987年6月在意大利的sgs微電子公司和法國的湯姆遜微電子公司合并后產(chǎn)生的。1998年5月,公司由原來的sgs湯姆遜(sgsthomson)微電子公司改名為意法半導(dǎo)體公司(stmicroelectronics),簡(jiǎn)稱st公司3。stc89c52是一種帶8k字節(jié)閃爍可編程可檫除只讀存儲(chǔ)器(fperom-flash programable and erasable read only memory )的低電壓,高性能comos8的微處理器,俗稱單片機(jī)。單片機(jī)總控制電路如下圖2.1:圖2.1單片機(jī)總控制電路2.1.1引腳說明:stc89c52rc可
16、以代替at89c51,功能更強(qiáng),速度更快,壽命更長(zhǎng),價(jià)格更低。stc89c52rc的內(nèi)核和at51系列單片機(jī)一樣,故引腳相同,外形及引腳排列也相同。管腳說明:vcc供電電壓;gnd接地。p0口8位漏級(jí)開路雙向i/o口,每腳可吸收8ttl門電流。當(dāng)p1口的管腳第一次寫1時(shí),被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時(shí),p0 口作為原碼輸入口,當(dāng)fiash進(jìn)行校驗(yàn)時(shí),p0輸出原碼,此時(shí)p0外部必須被拉高。p1口帶內(nèi)部上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部
17、下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時(shí),p1口作為第八位地址接收。 p2口帶內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門電流,當(dāng)p2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。p3口帶內(nèi)部上
18、拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。在編程/校驗(yàn)時(shí),p3口可接收某些控制信號(hào)。具體的p3口功能,如表2.1所示。表2.1 p3口的特殊功能引腳 替代功能 說明p3.0 rxd 串行數(shù)據(jù)接收p3.1 txd 串行數(shù)據(jù)發(fā)送p3.2 int0 外部中斷0申請(qǐng)p3.3 int1 外部中斷1申請(qǐng) p3.4 t0 定時(shí)器0外部事件計(jì)數(shù)輸入 p3.5 t1 定時(shí)器1外部事件計(jì)數(shù)輸入 p3.6 wr 外部ram寫選通 p3.7 rd 外部ram讀選通rst復(fù)位輸
19、入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。ale/prog當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時(shí), ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。psen外部程序存儲(chǔ)器的選通信號(hào)。在由外
20、部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/psen信號(hào)將不出現(xiàn)。ea/vpp當(dāng)/ea保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000hffffh),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/ea將內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。xtal1反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。xtal2來自反向振蕩器的輸出。2.2lcd1602液晶顯示器液晶顯示器以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點(diǎn),在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到越
21、來越廣泛的應(yīng)用。本系統(tǒng)使用是是lcd1602液晶顯示器,它可以顯示兩行,每行16個(gè)字符,采用單+5v電源電,外圍電路配置簡(jiǎn)單,價(jià)格便宜,具有很高的性價(jià)比。2.2.1lcd1602引腳說明 第1腳:vss為電源地 第2腳:vdd接5v電源正極 第3腳:v0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高。 第4腳:rs為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。 第5腳:rw為讀寫信號(hào)線,高電平1時(shí)進(jìn)行讀操作,低電平0時(shí)進(jìn)行寫操作。 第6腳:e(或en)端為使能(enable)端。 第714腳:d0d7為8位雙向數(shù)據(jù)端。 第1516腳:空腳或背燈電源。1
22、5腳背光正極,16腳背光負(fù)極。2.2.2lcd1602的基本指令lcd1602液晶模塊內(nèi)部的控制器共有11條控制指令,具體的命令見表2.2所示。表2.2 lcd1602控制指令 指 令rsr/wd7d6d5d4d3d2d1d01清屏00000000012光標(biāo)復(fù)位000000001*3光標(biāo)和顯示模式設(shè)置00000001i/ds4顯示開關(guān)控制0000001dcb5光標(biāo)或字符移位000001s/cr/l*6置功能00001dlnf*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址(agg)8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址(add)9讀忙標(biāo)志或地址01bf計(jì)數(shù)器地址(ac)10寫入cgram
23、/ddram10要寫的數(shù)11讀cgram/ ddram數(shù)11讀出的數(shù)據(jù)1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。1.清屏指令 功能:(1) 清除液晶顯示器,即將ddram的內(nèi)容全部填入“空白”的ascii碼20h;(2) 光標(biāo)歸位,即將光標(biāo)撤回液晶顯示屏的左上方;(3) 將地址計(jì)數(shù)器(ac)的值設(shè)為0。2.光標(biāo)復(fù)位指令 功能:(1) 把光標(biāo)撤回到顯示器的左上方;(2) 把地址計(jì)數(shù)器(ac)的值設(shè)置為0;(3) 保持ddram的內(nèi)容不變。3.光標(biāo)和顯示模式設(shè)置指令 功能:設(shè)定每次定入1位數(shù)據(jù)后光標(biāo)的移位方向,并且設(shè)定每次寫入的一個(gè)字符是否移動(dòng)。4.顯示開關(guān)控制指令 功
24、能:控制顯示器開/關(guān)、光標(biāo)顯示/關(guān)閉以及光標(biāo)是否閃爍。5.設(shè)定顯示屏或光標(biāo)移動(dòng)方向指令 功能:使光標(biāo)移位或使整個(gè)顯示屏幕移位。6.功能設(shè)定指令 功能:設(shè)定數(shù)據(jù)總線位數(shù)、顯示的行數(shù)及字型。7.設(shè)定cgram地址指令 功能:設(shè)定下一個(gè)要存入數(shù)據(jù)的cgram的地址。8.設(shè)定ddram地址指令 功能:設(shè)定下一個(gè)要存入數(shù)據(jù)的ddram的地址。9.讀取忙信號(hào)或ac地址指令 功能:(1) 讀取忙碌信號(hào)bf的內(nèi)容,bf=1表示液晶顯示器忙,暫時(shí)無法接收單片機(jī)送來的數(shù)據(jù)或指令;當(dāng)bf=0時(shí),液晶顯示器可以接收單片機(jī)送來的數(shù)據(jù)或指令;(2) 讀取地址計(jì)數(shù)器(ac)的內(nèi)容。10.數(shù)據(jù)寫入ddram或cgram指令一
25、覽 功能:(1) 將字符碼寫入ddram,以使液晶顯示屏顯示出相對(duì)應(yīng)的字符;(2) 將使用者自己設(shè)計(jì)的圖形存入cgram。11. 從cgram或ddram讀出數(shù)據(jù)的指令一覽 功能:讀取ddram或cgram中的內(nèi)容。2.3霍爾傳感器霍爾器件是一種磁傳感器。用它們可以檢測(cè)磁場(chǎng)及其變化,可在各種與磁場(chǎng)有關(guān)的場(chǎng)合中使用。霍爾器件以霍爾效應(yīng)為其工作基礎(chǔ)。取用了各種補(bǔ)償和保護(hù)措施的霍爾器件的工作溫度范圍寬,可達(dá)55150攝氏度?;魻栐凑展δ芊?,可分為霍爾線性器件和霍爾開關(guān)器件。前者輸出模擬量,后者輸出數(shù)字量。本設(shè)計(jì)用的是開關(guān)型霍爾元件?;魻柶骷哂幸韵聝?yōu)點(diǎn):結(jié)構(gòu)牢固,體積小,重量輕,壽命長(zhǎng),安裝方便
26、,功耗小,頻率高(可達(dá)1mhz),耐振動(dòng),不怕灰塵、油污、水汽及鹽霧等的污染或腐蝕。霍爾線性器件的精度高,線性度好?;魻栭_關(guān)器件無觸點(diǎn)、無磨損、輸出波形清晰、無抖動(dòng)、無回跳、位置重復(fù)精度高。該霍爾傳感器的測(cè)距示意圖如圖2.2所示圖2.2傳感器測(cè)距示意圖由于a44e 屬于開關(guān)型的霍爾器件如圖2.3,其工作電壓范圍比較寬(4.518v),其輸出的信號(hào)符合ttl 電平標(biāo)準(zhǔn),可以直接接到單片機(jī)的io 端口上,而且其最高檢測(cè)頻率可達(dá)到1m。圖2.3集成開關(guān)型霍耳傳感器原理圖a44e 集成霍耳開關(guān)由穩(wěn)壓器a、霍耳電勢(shì)發(fā)生器(即硅霍耳片)b、差分放大器c、施密特觸發(fā)器d 和oc 門輸出e 五個(gè)基本部分組成。
27、在輸入端輸入電壓vcc,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍耳電勢(shì)發(fā)生器的兩端,根據(jù)霍耳效應(yīng)原理,當(dāng)霍耳片處在磁場(chǎng)中時(shí),在垂直于磁場(chǎng)的方向通以電流,則與這二者相垂直的方向上將會(huì)產(chǎn)生霍耳電勢(shì)差vh 輸出,該 信號(hào)經(jīng)放大器放大后送至施密特觸發(fā)器整形,使其成為方波輸送到oc 門輸出。當(dāng)施加的磁場(chǎng)達(dá)到bop時(shí),觸發(fā)器輸出高電壓(相對(duì)于地電位),使三極管導(dǎo)通,此時(shí)oc 門輸出端輸出低電壓,通常稱這種狀態(tài)為“開”。當(dāng)施加的磁場(chǎng)達(dá)到“釋放點(diǎn)”(即brp )時(shí),觸發(fā)器輸出低電壓,三極管截止,使oc 門輸出高電壓,這種狀態(tài)為“關(guān)”。這樣兩次電壓變換,使霍耳開關(guān)完成了一次開關(guān)動(dòng)作。其集成霍耳開關(guān)外形及接線如圖2.4所示。(a)
28、(b)圖2.4集成霍耳開關(guān)外型及接線我們選擇了p3.2 口作為信號(hào)的輸入端,內(nèi)部采用外部中斷0(這樣可以減少程序設(shè)計(jì)的麻煩),車輪每轉(zhuǎn)一圈(我們?cè)O(shè)車輪的周長(zhǎng)是1 米),霍爾開關(guān)就檢測(cè)并輸出信號(hào),引起單片機(jī)的中斷,對(duì)脈計(jì)數(shù),當(dāng)計(jì)數(shù)達(dá)到1000 次時(shí),也就是1 公里,單片機(jī)就控制將金額自動(dòng)的加增加,其計(jì)算公式:當(dāng)前價(jià)*公里數(shù)=金額。2.4時(shí)鐘芯片ds1302ds1302是美國dallas公司推出的一種高性能、低功耗的實(shí)時(shí)時(shí)鐘日歷芯片,附加31字節(jié)靜態(tài)ram,采用spi三線接口與cpu進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)和ram數(shù)據(jù)。工作電壓寬達(dá)2.55.5v。采用雙電源供電(主
29、電源和備用電源),可設(shè)置備用電源充電方式,提供了對(duì)后備電源進(jìn)行涓細(xì)電流充電的能力。有主電源和備份電源雙引腳,而且備份電源可由大容量電容(1f)來替代,可為掉電保護(hù)電源提供可編程的充電功能,并且可以關(guān)閉充電功能。需要強(qiáng)調(diào)的是,ds1302需要使用32.768khz的晶振。2.4.1時(shí)鐘芯片ds1302引腳說明ds1302引腳圖參照?qǐng)D2.5。圖2.5 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í),d
30、s1302由vcc1供電。其它的引腳功能參照表2.3。表2.3 ds1302管腳的功能描述 管腳名功能說明x1,x232.768khz 晶振管腳gnd地rst復(fù)位腳i/o數(shù)據(jù)輸入/輸出引腳sclk串行時(shí)鐘vcc1,vcc2電源供電管腳在編程過程中要注意ds1302的讀寫時(shí)序。ds1302是spi總線驅(qū)動(dòng)方式。它不僅要向寄存器寫入控制字,還需要讀取相應(yīng)寄存器的數(shù)據(jù)。要想與ds1302通信,首要先了解ds1302的控制字。ds1302的控制字如表2.4。表2.4 ds1302控制字(即地址及命令字節(jié)) bit7bit6bit5bit4bit3bit2bit1bit01rama4a3a2a1a0rd
31、控制字的作用是設(shè)定ds1302的工作方式、傳送字節(jié)數(shù)等。每次數(shù)據(jù)的傳輸都是由控制字開始??刂谱指魑坏暮x和作用如下:控制字節(jié)的最高有效位必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入ds1302中,位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取ram數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位如為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出。 控制字總是從最低位開始輸出。在控制字指令輸入后的下一個(gè)sclk時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入ds1302,數(shù)據(jù)輸入從最低位(0位)開始。同樣,在緊跟8位的控制字指令后的下一個(gè)sclk脈沖的下降沿,讀出ds1302的數(shù)據(jù),讀出的數(shù)據(jù)也
32、是從最低位到最高位。ds1302的數(shù)據(jù)讀寫方式有兩種,一種是單字節(jié)操作方式,一種是多字節(jié)操作方式。每次僅寫入或讀出一個(gè)字節(jié)數(shù)據(jù)稱為單字節(jié)操作,每次對(duì)時(shí)鐘/日歷的8字節(jié)或31字節(jié)ram進(jìn)行全體寫入或讀出的操作,稱其為多字節(jié)操作方式。當(dāng)以多字節(jié)方式寫時(shí)鐘寄存器時(shí),必須按數(shù)據(jù)傳送的次序依次寫入8個(gè)寄存器。但是,當(dāng)以多字節(jié)方式寫ram時(shí),不必寫所有31字節(jié)。不管是否寫了全部31字節(jié),所寫的每一個(gè)字節(jié)都將傳送至ram。為了啟動(dòng)數(shù)據(jù)的傳輸,rst引腳信號(hào)應(yīng)由低變高,當(dāng)把rst驅(qū)動(dòng)至邏輯1的狀態(tài)時(shí),sclk必須為邏輯0,數(shù)據(jù)在sclk的上升沿串行輸入。無論是讀周期還是寫周期,也無論送方式是單字節(jié)傳送還是多字
33、節(jié)傳送,都要通過控制字指定40字節(jié)中的哪個(gè)將被訪問。在開始8個(gè)時(shí)鐘周期把命令字(具有地址和控制信息的8位數(shù)據(jù))裝入移位寄存器之后,另外的時(shí)鐘在讀操作時(shí)輸出數(shù)據(jù),在寫操作時(shí)輸入數(shù)據(jù),所有的數(shù)據(jù)在時(shí)鐘的下降沿變化。所有寫入或讀出操作都是先向芯片發(fā)送一個(gè)命令字節(jié)。對(duì)于單字節(jié)操作,包括命令字節(jié)在內(nèi),每次為2個(gè)字節(jié),需要16個(gè)時(shí)鐘;對(duì)于時(shí)鐘/日歷多字節(jié)模式操作,每次為7個(gè)字節(jié),需要72個(gè)時(shí)鐘;而對(duì)于ram多字節(jié)模式操作,每次則為32字節(jié),需要多達(dá)256個(gè)時(shí)鐘。時(shí)鐘晶振電路圖如圖2.6所示。圖2.6 時(shí)鐘晶振電路圖2.5掉電存儲(chǔ)單元at24c08該at24c0x系列設(shè)備具有以下特點(diǎn):兩線串行接口;施密特出
34、發(fā)輸入,過濾噪聲的抑制;雙向數(shù)據(jù)傳輸協(xié)議;100hz和400hz兼容性;寫保護(hù)引腳硬件數(shù)據(jù)保護(hù);自定時(shí)寫周期(5ms最大);具有高可靠性,數(shù)據(jù)可保留100年。at24c08只使用2輸入硬件尋址和共28設(shè)備可以解決的一個(gè)單總線系統(tǒng)。這些0和1的引腳沒有連接。該型號(hào)串行ee prom,內(nèi)部組織:64頁的16個(gè)字節(jié),該型需要10位數(shù)據(jù)字地址隨機(jī)字尋址。時(shí)鐘和數(shù)據(jù)轉(zhuǎn)換:黨針通常是拉高與外部裝置。數(shù)據(jù)的可變化僅在低時(shí)間段中。數(shù)據(jù)變化中高段表明啟動(dòng)或停止條件如下定義。啟動(dòng)條件:高到低的過渡黨與中高一開始條件它必須先于其他任何命令。停止條件:一個(gè)低到高的過渡中國家與高是一個(gè)停止條件。閱讀序列后,停止命令將e
35、e prom在備用電源模式。承認(rèn):所有的地址和數(shù)據(jù)的串行傳送和從ee prom在8位字。ee prom發(fā)送一零承認(rèn)它收到的每一個(gè)字。這發(fā)生在第九個(gè)時(shí)鐘周期。其電路如圖2.7所示。圖2.7 掉電存儲(chǔ)電路原理圖第三章 硬件設(shè)計(jì)3.1硬件電路的概述本設(shè)計(jì)的硬件部分按功能可分為以下幾個(gè)部分:(1)stc89c52單片機(jī)主控模塊電路(2)1602液晶顯示電路(3)串口通信電路(4)外部電源供電本設(shè)計(jì)原理圖見附錄a3.2 stc89c52單片機(jī)主控模塊電路3.2.1 stc89c52單片機(jī)的晶振電路3.2.2 stc89c52單片機(jī)的復(fù)位電路3.2.3 stc89c52單片機(jī)的最小系統(tǒng)電路3.3lcd16
36、02液晶顯示電路3.4串口通信電路3.5外部電源供電3.6霍爾傳感器a444e電路圖第四章 軟件設(shè)計(jì)4.1主程序流程圖在主程序模塊中,需要完成對(duì)各參量和接口的初始化、出租車起步價(jià)和單價(jià)的初始化以及中斷、計(jì)算、循環(huán)等工作。另外,在主程序模塊中還需要設(shè)置啟動(dòng)/清除標(biāo)志寄存器、里程寄存器和價(jià)格寄存器,并對(duì)它們進(jìn)行初始化。然后,主程序?qū)⒏鶕?jù)各標(biāo)志寄存器的內(nèi)容,分別完成啟動(dòng)、清除、計(jì)程和計(jì)價(jià)等不同的操作。當(dāng)出租車運(yùn)行后,就啟動(dòng)計(jì)價(jià)器,根據(jù)里程寄存器中的內(nèi)容計(jì)算和判斷行駛里程是否已超過起步價(jià)公里數(shù)。若已超過,則根據(jù)里程值、每公里的單價(jià)值和起步價(jià)來計(jì)算出當(dāng)前的總金額,并將結(jié)果存于總金額寄存器中;中途等待時(shí),
37、無脈沖輸入,不產(chǎn)生中斷,當(dāng)時(shí)間超過等待設(shè)定值時(shí),開始進(jìn)行計(jì)時(shí),并把等待金額加到總金額里,然后將總金額、里程、等待時(shí)間和單價(jià)送lcd1602中顯示出來。程序流程如圖4.1所示。圖4.1系統(tǒng)總程序4.2里程中斷服務(wù)子程序每當(dāng)霍爾傳感器輸出一個(gè)低電平信號(hào),單片機(jī)定時(shí)器0(工作在計(jì)數(shù)模式)就對(duì)其計(jì)數(shù)一次,相應(yīng)的變量設(shè)為inter就自加1,當(dāng)里程計(jì)數(shù)器inter對(duì)里程脈沖計(jì)滿1000次時(shí),對(duì)其自身進(jìn)行清零操作,為下一次計(jì)數(shù)做準(zhǔn)備,同時(shí)進(jìn)入里程計(jì)數(shù)中斷服務(wù)程序中,里程變量加1,總金額根據(jù)此時(shí)所設(shè)單價(jià)做出相應(yīng)的變化。里程中斷子程序如圖4.2所示。圖4.2里程中斷服務(wù)子程序4.3中途等待中斷子程序在中途等待中
38、斷程序中,定時(shí)器1每50ms計(jì)一次數(shù),每計(jì)夠100次(5sec),便將當(dāng)前里程值送入某個(gè)緩存變量,與前一個(gè)5秒的值進(jìn)行比較,如果兩者相同,則表明霍爾傳感器沒有輸出信號(hào),認(rèn)為出租車停了下來,進(jìn)入等待計(jì)時(shí),計(jì)時(shí)中間變量dd自加1,計(jì)夠12次為一分鐘,dd自清零,同時(shí)根據(jù)所設(shè)的等待單價(jià)刷新總金額。計(jì)數(shù)初值可有以下公式獲得:x=(65536-t)*11.0592*106/12;th=x/256; tl=x%256;其中:x表示計(jì)數(shù)初值,th、tl分別為16位計(jì)數(shù)器高8位和低8位應(yīng)裝入的初值。用定時(shí)器作為基準(zhǔn),可使測(cè)試的等待時(shí)間更為精確(可以精確到us級(jí));且每隔5秒比較一次,能有效減小誤判率,避免把汽
39、車低速行駛誤認(rèn)為靜止等待處理。中途等待子程序流程圖如圖4.3所示。圖4.3中途等待中斷子程序4.4計(jì)算程序計(jì)算程序根據(jù)里程數(shù)分別進(jìn)入不同的計(jì)算公式。如果里程大于2公里,則執(zhí)行公式:總金額=起步價(jià)+(里程-2)*單價(jià)+等待時(shí)間*等待單價(jià);否則,執(zhí)行公式:總金額=起步價(jià)+等待時(shí)間*等待單價(jià)。程序流程圖如圖4-4所示。圖4.4計(jì)算程序4.5 lcd顯示程序液晶顯示時(shí),busy=1表示正在處理計(jì)算機(jī)發(fā)來的指令或數(shù)據(jù),此時(shí)電路被封鎖,不能接受除讀狀態(tài)字以外的任何操作。busy=0表示已“準(zhǔn)備好”,等待計(jì)算機(jī)的訪問。具體流程圖見圖4.5。圖4.5lcd顯示程序4.6按鍵檢測(cè)子程序鍵盤采用查詢的方式,放在主
40、程序中,當(dāng)有按鍵按下的時(shí)候,在相應(yīng)i/o口產(chǎn)生一次低電平,當(dāng)單片機(jī)查詢出該低電平后便轉(zhuǎn)入進(jìn)行處理,處理結(jié)束返回。鍵盤檢驗(yàn)子程序如圖4.6所示。圖4.6鍵盤檢驗(yàn)子程序第五章 總結(jié)本次課程設(shè)計(jì)是對(duì)單片機(jī)知識(shí)的一次綜合運(yùn)用,也是由理論結(jié)合實(shí)踐的第一步,為我以后的學(xué)習(xí)奠定了良好的基礎(chǔ)。通過這五周對(duì)智能儀器的課程設(shè)計(jì),增加了我們對(duì)單片機(jī)的認(rèn)識(shí),了解了其理論方面的知識(shí);掌握了單片機(jī)內(nèi)部模塊的應(yīng)用,如定時(shí)計(jì)數(shù)器中斷、片內(nèi)外存儲(chǔ)器、i/o口、串口通信等;了解和掌握了單片機(jī)應(yīng)用系統(tǒng)軟硬件設(shè)計(jì)的過程和實(shí)現(xiàn)方法,為今后的學(xué)習(xí)和工作打下堅(jiān)實(shí)基礎(chǔ)。通過這次設(shè)計(jì)還使我們接觸到了一些以前沒有用過的軟件,比如說,protel
41、、keil uvision、vision等,這些軟件的操作對(duì)今后的設(shè)計(jì)和學(xué)習(xí)都有很大的幫助。另外,我們學(xué)會(huì)了在專業(yè)網(wǎng)站上查找有關(guān)設(shè)計(jì)的硬件資料,其中包括:at89c52單片機(jī)的功能和引腳說明、at24c08掉電處理設(shè)備的引腳圖和引腳功能表等多個(gè)資料,為我們?cè)O(shè)計(jì)的進(jìn)行打下基礎(chǔ)。參考文獻(xiàn)1 李朝青單片機(jī)的c語言應(yīng)用程序設(shè)計(jì)m,北京:北京航空航天大學(xué)出版社,20062 陳海宴51單片機(jī)原理及應(yīng)用m,北京:北京航空航天大學(xué)出版社,20103 張志,高大志,楊為名等微控制器原理及接口技術(shù)實(shí)驗(yàn)教程m,沈陽:東北大學(xué)出版社,20044 高大志單片機(jī)實(shí)驗(yàn)指導(dǎo)書m,沈陽:信息學(xué)院實(shí)驗(yàn)中心,20035 周立功,夏
42、宇聞.單片機(jī)與cpld綜合應(yīng)用技術(shù)m,北京:北京航空航天大學(xué)出版社6 丁元杰.單片微機(jī)原理及應(yīng)用m,北京:機(jī)械工業(yè)出版社7 靳達(dá)編.單片機(jī)應(yīng)用系統(tǒng)開發(fā)實(shí)例導(dǎo)航m,北京:人民郵電出版社8 李光飛.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)m,北京:北京航空航天大學(xué)出版社9 胡宴如.高頻電子線路m,北京:高等教育出版社10 白駒珩,雷曉平.單片計(jì)算機(jī)及其應(yīng)用m,成都:電子科技大學(xué)出版社11 李廣弟.單片機(jī)基礎(chǔ)m,北京:北京航空航天大學(xué)出版社12 沈美明,溫冬嬋.ibm匯編語言程序設(shè)計(jì)m,北京:清華大學(xué)出版社13 彭傳正,林春景.凌陽單片機(jī)原理與實(shí)踐m,北京:北京航空航天大學(xué)出版社14 李榮正,陳學(xué)軍.pic單片機(jī)實(shí)踐
43、教程m,北京:北京航空航天大學(xué)出版社15 閻石.數(shù)字電子技術(shù)基礎(chǔ),北京:高等教育出版社16 張?chǎng)巍⑷A臻、陳書謙單片機(jī)原理及應(yīng)用m電子工業(yè)出版社,2005p11013617 丁元杰、吳大偉單片微機(jī)實(shí)題集與實(shí)驗(yàn)指導(dǎo)書m機(jī)械工業(yè)出版社, 2004p12412518 at89c52概述eb/ol:附錄a本設(shè)計(jì)原理圖附錄b本設(shè)計(jì)源程序#include#define uchar unsigned char#define uint unsigned int sbit rw=p11;/讀或?qū)憇bit rs=p10;/sbit en=p12;/讀寫時(shí)能控制端sbit b=p07;/液晶判斷忙標(biāo)志位void lc
44、d_init();/void wr_com(uchar command);/液晶寫命令void wr_data(uchar data0);/寫數(shù)據(jù)void lcd_clear();/液晶清屏void lcd_set();/設(shè)置液晶的起始位置void busy();/液晶判忙函數(shù)void display();/顯示void printstring(uchar *s);/直接寫字符void display1();void key1();sbit k=p14;sbit k1=p15;sbit k2=p16;sbit k3=p17;bit f_start;/開始標(biāo)志位bit jump_in;/跳入開始
45、標(biāo)志位bit jump_out;/跳出標(biāo)志位void key();uchar code table=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x70;/字符1,2,3,0uchar dispbuf=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;uchar dispbuf1=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;uchar v,v1;/按鍵次數(shù)累加變量uchar i;void init();/void chuli();/void chuli1();/void delay(uchar t);/void
46、clear();/void set(uchar x);/ void set1(uchar y);/uchar command;/uchar count,count1;/uchar second,minite,second1,minite1;/unsigned int tt,tt1;/unsigned char value1=60,value2=30,value3=15;/起始價(jià),運(yùn)行價(jià),等待價(jià)unsigned int money;/金額變量/*void main() init(); lcd_init(); while(1) key1();chuli(); display(); if(jump_
47、in=1) jump_in=0; lcd_init(); while(1) key(); chuli1(); display1(); if(jump_out=1) lcd_init(); jump_out=0; clear(); break; /*void clear()/跳出下一次 tr0=0; tr1=0; money=0; second=0; second1=0; minite=0; minite1=0; value1=50; value2=25; value3=15; v=0; v1=0; for(i=0;i15;i+) dispbufi=0; dispbuf1i=0; /*void
48、init()/定時(shí)器初始化 tmod=0x11; th0=(65536-50000)/256; tl0=(65536-50000)%256; th1=(65536-50000)/256; tl1=(65536-50000)%256; et0=1; et1=1; ea=1; tr0=0; tr1=0;/*void t0_(void) interrupt 1 using 0/定時(shí)器0中斷 count+; if(count=20) count=0; second+; if(second=60) second=0;minite+;if(minite=99) minite=0; th0=(65536-5
49、0000)/256; tl0=(65536-50000)%256; dispbuf10=minite/10; dispbuf11=minite%10; dispbuf12=second/10; dispbuf13=second%10;/*void t1_(void) interrupt 3 using 3/定時(shí)器1中斷 count1+; if(count1=20) count1=0; second1+; if(second1=60) second1=0;minite1+;if(minite1=99) minite1=0; th1=(65536-50000)/256; tl1=(65536-50000)%256; dispbuf14=m
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度簽約主播虛擬偶像形象授權(quán)及運(yùn)營合作協(xié)議
- 2025年度智能設(shè)備擔(dān)保合同解除與售后服務(wù)保障協(xié)議
- 二零二五年度環(huán)保技術(shù)研發(fā)合同履行技術(shù)創(chuàng)新個(gè)原則協(xié)議
- 二零二五年度農(nóng)村土地爭(zhēng)議調(diào)解與生態(tài)補(bǔ)償合同
- 二零二五年度音樂節(jié)品牌贊助合同
- 二零二五年度企業(yè)總部安全保衛(wèi)保安聘用協(xié)議
- 二零二五年度摩托車整車出口代理轉(zhuǎn)讓協(xié)議
- 二零二五年度磚廠土地承包及開發(fā)合同
- 2025年度獵聘人才委托招聘與人才激勵(lì)服務(wù)合同
- 2025年度生物制藥原材料采購合同(含GMP認(rèn)證)
- DeepSeek從入門到精通培訓(xùn)課件
- 23G409先張法預(yù)應(yīng)力混凝土管樁
- 龍門吊安裝及拆除安全專項(xiàng)施工方案
- 人教PEP版(一起)(2024)一年級(jí)上冊(cè)英語全冊(cè)教案(單元整體教學(xué)設(shè)計(jì))
- DZ∕T 0219-2006 滑坡防治工程設(shè)計(jì)與施工技術(shù)規(guī)范(正式版)
- 個(gè)體工商戶公司章程模板
- 廣元九州施工合同正式
- 蘭州商學(xué)院二級(jí)學(xué)院權(quán)力運(yùn)行流程圖
- 三毛流浪記連環(huán)畫全集-漫畫
- 預(yù)埋件計(jì)算公式
- 鋼結(jié)構(gòu)廠房水電安裝施工組織設(shè)計(jì)方案
評(píng)論
0/150
提交評(píng)論