出租車計價器課程設(shè)計方案_第1頁
出租車計價器課程設(shè)計方案_第2頁
出租車計價器課程設(shè)計方案_第3頁
出租車計價器課程設(shè)計方案_第4頁
出租車計價器課程設(shè)計方案_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGE..計算機科學(xué)與技術(shù)學(xué)院硬件課程設(shè)計報告__學(xué)號:專業(yè):信息安全班級:設(shè)計題目:出租車計價器成員:指導(dǎo)20XX12月課程設(shè)計指導(dǎo)教師評閱書指導(dǎo)教師評語:成績:指導(dǎo)教師簽字: 年月日摘要在這個實驗當(dāng)中,我們是以步進電動機來模擬汽車車輪的轉(zhuǎn)動。用霍爾傳感器對轉(zhuǎn)動信號進行采集。把采集到的信號傳送8253進行計數(shù)〔采用減數(shù)計數(shù)法。在此系統(tǒng)中,起步價為5元〔即3公里以內(nèi)為5元,超過5公里的部分,每公里1元;E鍵切換公里數(shù)與總價錢顯示,F鍵清零。關(guān)鍵字:出租車計價器;8253;8279;霍爾元件目錄總體設(shè)計部分1設(shè)計任務(wù)與要求41.1問題的提出41.2需求分析41.3設(shè)計任務(wù)52硬件設(shè)計52.18253的應(yīng)用52.28279的應(yīng)用92.3霍爾元件的應(yīng)用132.4電路的主要功能142.4.1采集信號的功能142.4.2計數(shù)功能152.4.3輸出功能152.5電路連線圖173軟件設(shè)計173.1流程圖183.2實驗源程序19專題設(shè)計部分實驗體會與總結(jié)17參考文獻(xiàn)17總體設(shè)計部分1設(shè)計任務(wù)與要求1.1問題的提出出租車計價器在人們生活中發(fā)揮著極其重要的作用,已經(jīng)成了人們生活中的一部分,它也是現(xiàn)代電子科技服務(wù)生活的一個很好的實例。在此之前,人們一般會用估計方法估算出大概的乘車費用,而估算是靠人們的生活經(jīng)驗,其誤差往往是比較大的。如果是熟知地段和路程,其乘車費用還相對容易計算,也能使雙方滿意。而對于非熟知地段和路程,其費用的計算往往引起爭議,使雙方的生活產(chǎn)生不必要的障礙。為了解決以上問題,我們提出設(shè)計出租車計價器。它應(yīng)具有較準(zhǔn)確的計價功能,并且其計價值與出租車行駛距離具有固定算法,不損害雙方利益,以公平、公正為原則。1.2需求分析了解市場的需求,是設(shè)計的主要考慮因素。在出租車計價過程中往往出現(xiàn)問題。問題的關(guān)鍵是:大家都想做一筆公平的交易。即車主想收回成本并有所盈利,乘客想消費的時候物有所值。其表現(xiàn)的具體形式就是乘車費用的計算,這是本問題的核心所在。我們就應(yīng)分析:如何才能體現(xiàn)公平,最終達(dá)到公平交易。要想出租車計價實現(xiàn)公平,則務(wù)必做到精確的測量和計算。在本實驗中,我們設(shè)計出租車計價器,它運用的是一種使用儀器收集信號的方法,這樣它的精度就比較高〔由于儀器限制,信號用固定頻率信號模擬代替。然后,我們采用的是可編程的計數(shù)器8253,保證了能夠進一步的提高它的準(zhǔn)確性。此時,問題并沒有完全得到解決。原因在于:8253可以計數(shù),但是它卻不能把數(shù)據(jù)的信息直接的傳遞給一些外部設(shè)備,讓外部的設(shè)備將這些信息能夠顯示出來,比如說,用顯示燈來顯示的話,8253就做不到直接與其通信的功能。出租車計價器采用儀器計價,其精度很高,性能良好,值得信賴??梢允菇灰纂p方放心,從而使交易順利進行。這樣,生活中的這個問題就能夠借助出租車計價器而得以解決。市場的需求,即生活的需求,就是要得到一個公平的、精確的計價器,這個計價器設(shè)計出之后就滿足了這個需求,解決了實際生活問題。1.3設(shè)計任務(wù)設(shè)計一個出租車計價器系統(tǒng),當(dāng)出租車起步后,隨著行駛距離的增加在顯示管上顯示乘客應(yīng)付的價錢。當(dāng)出租車停止后,計價系統(tǒng)停止運行。2硬件設(shè)計實用的出租車計價器系統(tǒng)含有傳感器部分,數(shù)據(jù)處理部分也由單片機來做〔使用微機系統(tǒng)實現(xiàn)代價過大且資源利用率極其低下。因此,根據(jù)所給實驗儀器和要求我們只是利用實驗系統(tǒng)對出租車計價器系統(tǒng)進行簡單模擬,所設(shè)計的系統(tǒng)當(dāng)然并沒有多大實用性。這一點在此做簡單的說明。 下面對我們的實驗原理作簡要介紹。利用直流電機模擬出租車車輪的轉(zhuǎn)動。直流電機轉(zhuǎn)動后每隔一定的時間脈沖后8253進行計數(shù),使得行車?yán)锍虜?shù)和乘車費用都加1,這些變化都將在8279鍵盤顯示上得以顯示。2.18253的應(yīng)用8253具有3個獨立的計數(shù)通道,采用減1計數(shù)方式。在門控信號有效時,每輸入1個計數(shù)脈沖,通道作1次計數(shù)操作。當(dāng)計數(shù)脈沖是已知周期的時鐘信號時,計數(shù)就成為定時。一、8253內(nèi)部結(jié)構(gòu)8253芯片有24條引腳,封裝在雙列直插式陶瓷管殼內(nèi)。1.數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器與系統(tǒng)總線連接,8位雙向,與CPU交換信息的通道。這是8253與CPU之間的數(shù)據(jù)接口,它由8位雙向三態(tài)緩沖存儲器構(gòu)成,是CPU與8253之間交換信息的必經(jīng)之路。2.讀/寫控制讀/寫控制分別連接系統(tǒng)的IOR#和IOW#,由CPU控制著訪問8253的內(nèi)部通道。接收CPU送入的讀/寫控制信號,并完成對芯片內(nèi)部各功能部件的控制功能,因此,它實際上是8253芯片內(nèi)部的控制器。A1A0:端口選擇信號,由CPU輸入。8253內(nèi)部有3個獨立的通道和一個控制字寄存器,它們構(gòu)成8253芯片的4個端口,CPU可對3個通道進行讀/寫操作3對控制字寄存器進行寫操作。這4個端口地址由最低2位地址碼A1A0來選擇。如表所示。3.通道選擇<1>CS——片選信號,由CPU輸入,低電平有效,通常由端口地址的高位地址譯碼形成。<2>RD、WR——讀/寫控制命令,由CPU輸入,低電平有效。RD有效時,CPU讀取由A1A0所選定的通道內(nèi)計數(shù)器的內(nèi)容。WR有效時,CPU將計數(shù)值寫入各個通道的計數(shù)器中,或者是將方式控制字寫入控制字寄存器中。4.計數(shù)通道0~2每個計數(shù)通道內(nèi)含1個16位的初值寄存器、減1計數(shù)器和1個16位的〔輸出鎖存器。8253內(nèi)部包含3個功能完全相同的通道,每個通道內(nèi)部設(shè)有一個16位計數(shù)器,可進行二進制或十進制〔BCD碼計數(shù)。采用二進制計數(shù)時,最大計數(shù)值是FFFFH,采用BCD碼計數(shù)時。最大計數(shù)值是9999。與此計數(shù)器相對應(yīng),每個通道內(nèi)設(shè)有一個16位計數(shù)值鎖存器。必要時可用來鎖存計數(shù)值。當(dāng)某通道用作計數(shù)器時,應(yīng)將要求計數(shù)的次數(shù)預(yù)置到該通道的計數(shù)器中、被計數(shù)的事件應(yīng)以脈沖方式從CLK端輸入,每輸入一個計數(shù)脈沖,計數(shù)器內(nèi)容減"1",待計數(shù)值計到"0"。OUT端將有輸出。表示計數(shù)次數(shù)到。當(dāng)某個通道用作定時器時。由CLK輸入一定頻率的時鐘脈沖。根據(jù)要求定時的時間長短確定所需的計數(shù)值。并預(yù)置到計數(shù)器中,每輸入一個時鐘脈沖,計數(shù)器內(nèi)容減"1",待計數(shù)值計到"0"。OUT將有輸出,表示定時時間到。允許從CLK輸入的時鐘頻在1~2MHz范圍內(nèi)。因此,任一通道作計數(shù)器用或作定時器用,其內(nèi)部操作完全相同,區(qū)別僅在于前者是由計數(shù)脈沖進行減"1"計數(shù)。而后者是內(nèi)時鐘脈沖進行減"1"計數(shù)。作計數(shù)器時,要求計數(shù)的次數(shù)可直接作為計數(shù)器的初值預(yù)置到減"1"計數(shù)器中。作定時器時,計數(shù)器的初值即定時系數(shù)應(yīng)根據(jù)要求定時的時間進行如下運算才能得到:定時系數(shù)=需要定時的時間/時鐘脈沖周期①設(shè)置通道:向方式控制字寄存器端口寫入方式選擇控制字,用于確定要設(shè)置的通道及工作方式;②計數(shù)/定時:向通道寫入計數(shù)值,啟動計數(shù)操作;③讀取當(dāng)前的計數(shù)值:向指定通道讀取當(dāng)前計數(shù)器值時,8253將計數(shù)器值存入鎖存器,從鎖存器向外提供當(dāng)前的計數(shù)器值,計數(shù)器則繼續(xù)作計數(shù)操作。④計數(shù)到:當(dāng)計數(shù)器減1為0時,通過引腳OUTi向外輸出"到"的脈沖信號。計數(shù)初值輸入存放在初值寄存器中,計數(shù)開始或重裝入時被復(fù)制到計數(shù)器中。鎖存器在非鎖存狀態(tài),其值隨計數(shù)器的變化而變化;一旦鎖存了計數(shù)器的當(dāng)前值,直到鎖存器值被讀取后才能解除鎖存狀態(tài)。5.方式選擇控制字二、8253的通道工作方式8253中各通道可有6種可供選擇的工作方式,以完成定時、計數(shù)或脈沖發(fā)生器等多種功能。8253的各種工作方式如下:1.方式0:計數(shù)結(jié)束則中斷工作方式0被稱為計數(shù)結(jié)束中斷方式,當(dāng)任一通道被定義為工作方式0時,OUT輸出為低電平;若門控信號GATE為高電平,當(dāng)CPU利用輸出指令向該通道寫入計數(shù)值WR#有效時,OUT仍保持低電平,然后計數(shù)器開始減"1"計數(shù),直到計數(shù)值為"0",此刻OUT將輸出由低電平向高電平跳變,可用它向CPU發(fā)出中斷請求,OUT端輸出的高電平一直維持到下次再寫入計數(shù)值為止。在工作方式0情況下,門控信號GATE用來控制減"1"計數(shù)操作是否進行。當(dāng)GATE=1時,允許減"1"計數(shù);GATE=0時,禁止減"1"計數(shù);計數(shù)值將保持GATE有效時的數(shù)值不變,待GATE重新有效后,減"1"計數(shù)繼續(xù)進行。2.方式1:單脈沖發(fā)生器工作方式1被稱作可編程單脈沖發(fā)生器,進入這種工作方式,CPU裝入計數(shù)值n后OUT輸出高電平,不管此時的GATE輸入是高電平還是低電平,都不開始減"1"計數(shù),必須等到GATE由低電平向高電平跳變形成一個上升沿后,計數(shù)過程才會開始。與此同時,OUT輸出由高電平向低電平跳變,形成了輸出單脈沖的前沿,待計數(shù)值計到"0",OUT輸出由低電平向高電平跳變,形成輸出單脈沖的后沿,因此,由方式l所能輸出單脈沖的寬度為CLK周期的n倍。如果在減"1"計數(shù)過程中,GATE由高電平跳變?yōu)榈碗姾?這并不影響計數(shù)過程,仍繼續(xù)計數(shù);但若重新遇到GATE的上升沿,則從初值開始重新計數(shù),其效果會使輸出的單脈沖加寬,如教材圖9-22<b>中的第2個單脈沖。這種工作方式下,計數(shù)值也是一次有效,每輸入一次計數(shù)值,只產(chǎn)生一個負(fù)極性單脈沖。3.方式2:速率波發(fā)生器工作方式2被稱作速率波發(fā)生器,進入這種工作方式,OUT輸出高電平,裝入計數(shù)值n后如果GATE為高電平,則立即開始計數(shù),OUT保持為高電平不變;待計數(shù)值減到"1"和"0"之間,OUT將輸出寬度為一個CLK周期的負(fù)脈沖,計數(shù)值為"0"時,自動重新裝入計數(shù)初值n,實現(xiàn)循環(huán)計數(shù),OUT將輸出一定頻率的負(fù)脈沖序列,其脈沖寬度固定為一個CLK周期,重復(fù)周期為CLK周期的n倍。如果在減"1"計數(shù)過程中,GATE變?yōu)闊o效〔輸入0電平,則暫停減"1"計數(shù),待GATE恢復(fù)有效后,從初值n開始重新計數(shù)。這樣會改變輸出脈沖的速率。如果在操作過程中要求改變輸出脈沖的速率,CPU可在任何時候,重新寫人新的計數(shù)值,它不會影響正在進行的減"1"計數(shù)過程,而是從下一個計數(shù)操作用期開始按新的計數(shù)值改變輸出脈沖的速率。4.方式3:方波發(fā)生器工作方式3被稱作方波發(fā)生器,任一通道工作在方式3,只在計數(shù)值n為偶數(shù),則可輸出重復(fù)周期為n、占空比為1:1的方波。進入工作方式3,OUT輸出低電平,裝入計數(shù)值后,OUT立即跳變?yōu)楦唠娖健H绻?dāng)GATE為高電平,則立即開始減"1"計數(shù),OUT保持為高電平,若n為偶數(shù),則當(dāng)計數(shù)值減到n/2時,OUT跳變?yōu)榈碗娖?一直保持到計數(shù)值為"0",系統(tǒng)才自動重新置入計數(shù)值n,實現(xiàn)循環(huán)計數(shù)。這時OUT端輸出的周期為n×CLK周期,占空比為1:1的方波序列;若n為奇數(shù),則OUT端輸出周期為n×CLK周期,占空比為<<n+1>/2>/<<n-1>/2>的近似方波序列。如果在操作過程中,GATE變?yōu)闊o效,則暫停減"1"計數(shù)過程,直到GATE再次有效,重新從初值n開始減"l"計數(shù)。如果要求改變輸出方波的速率,則CPU可在任何時候重新裝入新的計數(shù)初值n,并從下一個計數(shù)操作周期開始改變輸出方波的速率。5.方式4:軟件觸發(fā)方式計數(shù)工作方式4被稱作軟件觸發(fā)方式,其定時波形如圖所示。進入工作方式4,OUT輸出高電平。裝入計數(shù)值n后,如果GATE為高電平,則立即開始減"1"計數(shù),直到計數(shù)值減到"0"為止,OUT輸出寬度為一個CLK周期的負(fù)脈沖。由軟件裝入的計數(shù)值只有一次有效,如果要繼續(xù)操作,必須重新置入計數(shù)初值n。如果在操作的過程中,GATE變?yōu)闊o效,則停止減"1"計數(shù),到GATE再次有效時,重新從初值開始減"1"計數(shù)。顯然,利用這種工作方式可以完成定時功能,定時時間從裝入計數(shù)值n開始,則OUT輸出負(fù)脈沖〔表示定時時間到,其定時時間=n×CLK周期。這種工作方式也可完成計數(shù)功能,它要求計數(shù)的事件以脈沖的方式從CLK輸入,將計數(shù)次數(shù)作為計數(shù)初值裝入后,由CLK端輸入的計數(shù)脈沖進行減"1"計數(shù),直到計數(shù)值為"0",由OUT端輸出負(fù)脈沖〔表示計數(shù)次數(shù)到。當(dāng)然也可利用OUT向CFU發(fā)出中斷請求。因此工作方式4與工作方式0很相似,只是方式0在OUT端輸出正階躍信號、方式4在OUT端輸出負(fù)脈沖信號。6.方式5:硬件觸發(fā)方式計數(shù)工作方式5被稱為硬件觸發(fā)方式,進入工作方式5,OUT輸出高電平,硬件觸發(fā)信號由GATE端引入。因此,開始時GATE應(yīng)輸入為0,裝入計數(shù)初值n后,減"1"計數(shù)并不工作,一定要等到硬件觸發(fā)信號由GATE端引入一個正階躍信號,減"1"計數(shù)才會開始,待計數(shù)值計到"0",OUT將輸出負(fù)脈沖,其寬度固定為一個CLK周期,表示定時時間到或計數(shù)次數(shù)到。這種工作方式下,當(dāng)計數(shù)值計到"0"后,系統(tǒng)將自動重新裝入計數(shù)值n,但并不開始計數(shù),一定要等到由GATE端引入的正跳沿,才會開始進行減"1"計數(shù),因此這是一種完全由GATE端引入的觸發(fā)信號控制下的計數(shù)或定時功能。如果由CLK輸入的是一定頻率的時鐘脈沖,那么可完成定時功能,定時時間從GATE上升沿開始,到OUT端輸出負(fù)脈沖結(jié)束。如果從CLK端輸入的是要求計數(shù)的事件,則可完成計數(shù)功能,計數(shù)過程從GATE上升沿開始,到OUT輸出負(fù)脈沖結(jié)束。GATE可由外部電路或控制現(xiàn)場產(chǎn)生,故硬件觸發(fā)方式由此而得名。如果需要改變計數(shù)初值,CPU可在任何時候用輸出指令裝入新的計數(shù)初值m,它將不影響正在進行的操作過程,而是到下一個計數(shù)操作周期才會按新的計數(shù)值進行操作。從上述各工作方式可看出,GATE作為各通道的門控信號,對于各種不同的工作方式,它所起的作用各不相同。在8253的應(yīng)用中,必須正確使用GATE信號,才能保證各通道的正常操作。7.讀取計數(shù)器的當(dāng)前值⑴直接讀計數(shù)器:輸出鎖存器在非鎖存狀態(tài)會跟隨計數(shù)器計數(shù)的變化而變化,直接讀計數(shù)器是從鎖存器得到計數(shù)器的當(dāng)前值。但由于計數(shù)器處于工作狀態(tài),讀出值不一定能穩(wěn)定。⑵先鎖存再讀?。孩偻ㄟ^方式選擇控制字對指定通道<SC1、SC0>的計數(shù)值鎖入鎖存器<RL1RL0=00>,鎖存器一旦鎖存了當(dāng)前計數(shù)值,就不再隨計數(shù)器變化直到被讀取。②讀計數(shù)器通道〔有鎖存器。2.28279的應(yīng)用實驗中要利用8279的數(shù)碼顯示功能,在實驗中將8279鍵盤接口顯示器件選中后,對其進行初始化,在將8253送入的時鐘信號在鍵盤顯示器上予以顯示,在本實驗中8279鍵盤顯示的是模擬的出租車行駛公里數(shù)和需要交納的費用。8279的編程方法:1.8279可按其功能分為:鍵盤功能塊;顯示功能塊;控制功能塊;與CPU接口功能塊控制功能塊包括控制和定時寄存器,定時和控制,掃描計數(shù)器三部分,它主要用來控制鍵盤和顯示功能塊工作.控制和定時寄存器:用于存貯來自CPU的編程命令,CPU對8279編程以確定鍵盤與顯示器工作方式和其它工作條件時,先把命令控制數(shù)據(jù)放到數(shù)據(jù)總線上,然后使A0=1,WR=0CS=0,并在WR上升沿把命令鍵存在控制和定時寄存器中,并經(jīng)譯碼,建立適當(dāng)?shù)墓δ?定時和控制:它含基本的定時計數(shù)器,第一個計數(shù)器是一個分頻系數(shù)為2-31的前置定時器,分頻系數(shù)可由程序預(yù)置,使內(nèi)部頻率為100KHz,從而能給出5.1ms鍵盤掃描時間和10.3ms反跳時間,其它計數(shù)器將此基本頻率分頻后,提供適當(dāng)?shù)陌存I掃描.行掃描.鍵盤陣列掃描.以及顯示器掃描次數(shù).掃描計數(shù)器:掃描計數(shù)器有兩種工作方式,在編碼工作方式時,計數(shù)器提供一種二進制計數(shù),通過管腳SL0-SL3輸出后經(jīng)外部譯碼才能提供給鍵盤和顯示器的掃描作用,在譯碼工作方式時,掃描計數(shù)器對最低二位進行譯碼,SL0-SL3輸出4選1的譯碼信號,作為顯示器和鍵盤的譯碼掃描.鍵盤功能塊包括:返回緩沖器,鍵盤反跳及控制,8x8FIFO傳感器RAM,FIFO/傳感器RAM狀態(tài).2.返回緩沖器與鍵盤反跳及控制8條返回線被返回緩沖器緩沖,在鍵盤工作方式中,這幾條線被逐個檢測,以找出該行鍵中閉合的鍵,如果反跳電路測知某鍵閉合,則它等待10.3ms,然后重核此鍵是否仍然閉合,如果仍閉合,那么該鍵在矩陣中的行列地址以及SHIFT和CNTL的狀態(tài)一起被送到FIFORAM中,其在FIFORAM中的數(shù)據(jù)格式如下:D7D6D5D4D3D2D1D0CNTLSHIFTSCANRETURN數(shù)據(jù)格式中,最高位CNTL,次高位為SHIFT狀態(tài),D5-D3來自掃描計數(shù)器,D2-D0來自返回計數(shù)器,掃描線計數(shù)器和回掃線計數(shù)器的值分別反映出被按下鍵的行.列的值,如果在傳感器陣列中,返回線上的數(shù)據(jù)直接進入傳感器RAM中相應(yīng)于陣列中正被掃中的那行,這樣每個開關(guān)位置就直接反映為一個傳感器RAM的位置.FIFO/傳感器RAM一個8x8RAM,在鍵盤方式和選通方式中它是一個先入先出<FIFO>存貯器,每一條新的信息順次寫入,然后又按寫入順序讀出,在傳感器陣列掃描方式時,存貯器作為傳感器RAM,這時RAM中的各行存著傳感器陣列中相應(yīng)行的狀態(tài).FIF0/傳感器RAM狀態(tài)在鍵盤或選通方式中,FIFO狀態(tài)跟蹤FIFO中字符數(shù)量注意它是"滿"還是"空",寫入或讀出過多均被認(rèn)作出錯,當(dāng)FIFO非空時,狀態(tài)邏輯提供一個中斷申請IRQ信號,在傳感器陣列掃描方式中,若測知某一傳感器變時,IRQ則為有效高電平.FIFO狀態(tài)字的低3位表示FIFO中的字符數(shù),F表示FIFORAM已滿;O<overmn>表示越限錯誤,即試圖向已滿的FIFO送另一字符;U<Underdone>表示取空錯誤,即試圖讀取已空的FIFO.S/F有兩種含義:在傳感器掃描方式時,S/F表示在傳感器RAM中至少包含了一個傳感器閉合指示,在特殊錯誤方式時S/F位是出錯標(biāo)志,用來指示是否發(fā)生了多路同時閉合錯誤,Du位表示由于CLEARDISPLAY或CLEARALL命令尚末完成其消除操作而使顯示RAM尚不可用.3.顯示功能塊包括:顯示寄存器,16X8顯示RAM,顯示地址寄存器.顯示RAM和顯示寄存器8279內(nèi)部有16X8的顯示RAM,通過顯示寄存器和兩個四位端口0UTA0-3,0UTBO-3來刷新顯示,顯示器可以是白熾燈,也可以是8段數(shù)碼管,顯示RAM可以是16X8的形式,也可以構(gòu)成兩個16x4的RAM形式,顯示RAM可由CPU進行讀寫,被讀寫的RAM字節(jié)地址由顯示地址寄存器指示.顯示地址寄存器保存當(dāng)前CPU讀或?qū)懙哪莻€RAM地址,以及正顯示著的那兩個4位半字節(jié)的地址,讀寫地址由CPU命令編程,也可置為每次讀寫后地址自動加1的工作方式,在設(shè)置了正確的工作方式后,顯示RAM可直接由CPU讀出,半字節(jié)A和半字節(jié)B地址自動由8279更新,以適應(yīng)由CPU送入的數(shù)據(jù),A和B半字節(jié)可獨立送入,也可作為一個字送入,隨CPU所設(shè)置的工作方式而定4.I/O接口功能塊8279通過數(shù)據(jù)緩沖器與I/O控制,使8279與CPU系統(tǒng)總線接口,I/O控制部分用和WR四條線控制CPU與8279之間的數(shù)據(jù)交換,數(shù)據(jù)緩沖器是數(shù)據(jù)交換的雙向通道,控制信號與數(shù)據(jù)交換間的邏輯關(guān)系見下表:CSA0WRRD10CPU從8279讀狀態(tài)0101CPU向8279寫狀態(tài)10CPU從8279讀數(shù)據(jù)001CPU向8279寫數(shù)據(jù)1XXX數(shù)據(jù)緩沖器輸出呈三態(tài)x為任意數(shù)<0或1>8279的操作由前所述,8279可適應(yīng)各種鍵盤和顯示器的不同工作方式,這是由于8279內(nèi)的各功能塊的工作是可程控的,用戶可根據(jù)自己的要求,利用向8279寫命令字的方法對8279的工作方式等進行編程,從上表可見,只要同時使CS=0WR=0A0=1,則可向8279寫命令字,并在wR的上升沿把命令打入8279.對CPU而言,8279只有兩個口地址,一個用于讀寫命令和狀<CS=0,A0=1>,一個用于讀寫數(shù)據(jù)<CS=0,A0=0>但用于編程命令字卻有多種,在8279中用于區(qū)別各種不同命令字的方法是命令字代碼的高3位<D7,D6,D5,>編碼而低5位是命令字的真正內(nèi)容1.8279的編程命令a.鍵盤/顯示器方式設(shè)置最高位最低位命令代碼000DDKKK其中DD為顯示方式,KKK為鍵盤方式DD008個8位字符顯示--左端傳入0116個8位字符顯示--左端送入108個8位字符顯示--右端送入1116個8位字符顯示--右端送入所謂左端送入是顯示器根據(jù)用戶送的先后,從左端一位開始,向右逐位排列,到最右端一位之后,下一位再從最左端顯示,在這種顯示方式中,顯示器的每個顯示管和8279中的顯示RAM單元一一對應(yīng),RAM中的O地址對應(yīng)最左面的顯示字符,而15號單元對應(yīng)最右端的顯示字符而右端送入方式是電子計算器中常用的顯示方式,第一個送入的數(shù)在最右端的顯示字符上,而以后每送入一個新數(shù),顯示先左移一位然后把送入的數(shù)仍放在最右端顯示字符上.KKK000編碼掃描鍵盤--2鍵連鎖001譯碼掃描鍵盤--2鍵連鎖010編碼掃描鍵盤--N鍵巡回011譯碼掃描鍵盤--N鍵巡回100編碼掃描傳感器陣列101譯碼掃描傳感器陣列110選通輸入,編碼顯示掃描111選通輸入,譯碼顯示掃描其中2鍵連鎖和N鍵巡回是8279對鍵盤中被按下鍵的兩種處理方式,編碼掃描和譯碼掃描是SL0-SL3對鏈盤和顯示器的兩種掃描形式.b.程序時鐘命令代碼001PPPPP此命令確定定時和控制中的前置定標(biāo)器的分頻系數(shù),代碼PPPPP可形成2-31的數(shù),前置定標(biāo)器可對外部時鐘分頻,以得到內(nèi)部基頻,選基頻為100KHZ,可得到前面規(guī)定的掃描和反跳時間,則分頻系數(shù)為;外部時鐘100KHZ復(fù)位脈沖過后若無代碼送入則自動為31.c.讀FIF0/傳感器RAM命令代碼:010AIXAAAX=任意此命令用于確定CPU讀操作的對象是8279中的FIF0/傳感器RAM,并確定8個RAM字節(jié)中哪一個被讀,其中AAA表示CPU要讀的行,AI為自動加1特征位,在鍵盤掃描方式中這兩者互不相干,對隨后的每次讀取8279都按照數(shù)據(jù)第一次進入的FIF0的同一順序自動送出數(shù)據(jù),所有隨后發(fā)生的讀,都是讀自FIFO,直到寫入新命令為止.在傳感器陣列方式中,AAA選擇傳感器RAM8行中的一行若AI=1,則下一次讀取便讀自傳感器RAM中的下一行.d.讀顯示器RAM命令代碼:011AIAAAACPU對8279寫此命令,則確定了CPU以顯示器RAM為數(shù)據(jù)源進行讀操作,其中AAAA為顯示器RAM的地址,AI為自動加1特征位,若AI=1,則每讀一行RAM之后,行地址自動加1e.寫顯示器RAM命令代碼:100AIAAAACPU向8279寫此命令,規(guī)定了下一步要對8279的顯示RAM進行寫,尋址方式和自動加1功能均與讀顯示器RAM相同f.顯示器寫入禁止/空格命令代碼:101XIWIWBLBLX=任意ABAB此命令用于屏蔽A或B端口輸出及使顯示器顯示空格,如果顯示器用作雙排4位顯示,則必須把其中一個4位屏蔽掉這樣CPU送入顯示器的信息就不會影響另一半,IW為屏蔽特征位,若對某一端口設(shè)置IW=1,則該端口就被屏蔽,有必要注意的是:B0與D0對應(yīng),BL為顯示空格標(biāo)志位,若某一端口的BL置1,則此端口顯示空格.當(dāng)要使一個單8位輸出格式的顯示器空格時,則必須使兩個BL標(biāo)志全都置位,以使顯示完全空格.2.3霍爾傳感器的應(yīng)用霍爾傳感器采用非接觸式的工作方式來采集信號。在轉(zhuǎn)動的物體上置定一個磁鐵,當(dāng)磁鐵隨物體轉(zhuǎn)動一圈時,就通過霍爾傳感器旁邊一次,霍爾傳感器此時接到信號,并向外輸出一個脈沖,完成一次信號的采集。將霍爾傳感器與8253的CLK0相連,就將"輪子轉(zhuǎn)動了一圈"這個信號以脈沖形式傳給了8253。2.4電路的主要功能為了完成計價器的計數(shù)功能,此電路必須實現(xiàn)以下所述的各個功能:采集信號的功能本實驗用霍爾傳感器來采集信號?;魻杺鞲衅魇怯梅墙佑|式的工作方式來采集信號的,它采集到的信號是以脈沖的形式表示的。一塊磁鐵被固定在轉(zhuǎn)輪上,隨著轉(zhuǎn)輪一圈圈的轉(zhuǎn)動,當(dāng)這塊磁鐵轉(zhuǎn)動經(jīng)過霍爾傳感器時就將信號傳給了霍爾傳感器。在此,存在一個問題,在實驗室里不可能采集汽車的車輪的轉(zhuǎn)動情況,這需要模擬這一場景。模擬的方法是:我們用步進電動機代替汽車,也就是說用步進電動機的轉(zhuǎn)動來代替汽車的車輪的轉(zhuǎn)動.步進電動機轉(zhuǎn)動一圈就代表汽車的車輪轉(zhuǎn)動了一周.那么這個信號又是怎樣來采集的呢?這時候,我們用到了霍爾傳感器.霍爾傳感器是對磁信號進行采集的一個裝置.問題就轉(zhuǎn)化成了:我們?nèi)绾螌④囕喌霓D(zhuǎn)動轉(zhuǎn)化成電磁的信號傳輸給霍爾傳感器.然后用霍爾傳感器將它采集起來送給8255.解決的方案是:我們在步進電動機的轉(zhuǎn)輪的邊緣上面加上一塊小磁鐵.再用一塊小磁鐵放在和邊緣較近的位置.固定在轉(zhuǎn)輪上的小磁鐵有一個自己的轉(zhuǎn)行的軌道.那么負(fù)責(zé)采集信號的這個小磁鐵所在的位置就在這個軌道的一邊,在固定在轉(zhuǎn)輪上的小磁鐵的必經(jīng)之地.這個采集的小磁鐵再和霍爾傳感器相連.這樣就能夠?qū)崿F(xiàn)這個采集的過程.使信號的傳送有了可能2.4.2計數(shù)功能當(dāng)信號采集過來以后,就需要一個計數(shù)裝置,記錄輪子的轉(zhuǎn)動次數(shù)。這個功能用可編程的計數(shù)器8253來實現(xiàn)。它使用減數(shù)計數(shù)功能,先裝入計數(shù)初值n,當(dāng)減為1時,OUT端由高電平變成低電平。待計數(shù)器的值減為0時,OUT端引腳又回到高電平。這樣就輸出了一個高電平。在實驗中,應(yīng)該注意一下8253的一些特性。8253的每個通道工作時,都是對輸入到CLK引腳上的脈沖按二進制或十進制〔BCD碼格式進行計數(shù)。計數(shù)采用倒計數(shù)法,先對計數(shù)器預(yù)置一上初值,再初值裝入實際的計數(shù)器。然后開始遞減計數(shù)。即每輸入一個時鐘脈沖,計數(shù)器的值減1,當(dāng)計數(shù)器的值減為0時,便從OUT端引腳輸出一個脈沖信號。輸出信號的波形主要由工作方式?jīng)Q定,同時,還要受到從外部加到GATE引腳上的門控信號控制,它決定是否允許計數(shù)。此時,又有一個問題需要弄清楚。這個問題就是:出租車的車輪在轉(zhuǎn)動的過程當(dāng)中,不是一直都有規(guī)律地在旋轉(zhuǎn),當(dāng)是以一個固定的頻率進行旋轉(zhuǎn)的時候,我們比較容易計數(shù),那么當(dāng)車輪不是有規(guī)律的轉(zhuǎn)動時,我們又怎樣來處理這個問題呢?問題的答案是:當(dāng)用8253作外部事件計數(shù)器時,在CLK引腳上所加的計數(shù)脈沖是由外部事件產(chǎn)生的,這些脈沖的間隔可以是不相等的。如果要用它作定時器,則CLK引腳上應(yīng)輸入精確的時鐘脈沖。這時,8253所能實現(xiàn)的定時時間,決定于計數(shù)脈沖的頻率和計數(shù)器的初值。我們可以能8253輸入的頻率有很多,但是,也并不是說,可以任意的輸入一些頻率。對8253來講,外部輸入到CLK引腳上的時鐘脈沖頻率不能大于2MHz。如果大于2MHz,則必需經(jīng)分頻后才能送到CLK引腳端,這是使用時要注意的地方??刂骑@示的點亮和熄滅的時間,到底可以有多久呢?下面我們以輸入頻率為2MHz為例來進行說明。若將頻率為2MHz〔周期為0。5微秒的時鐘直接加到CLK1端,則OUT1端輸出的脈沖的周期最大只有0.5微秒*65536=32768毫秒。這個時間一般是達(dá)不到要求的,需要進行級聯(lián)才能實現(xiàn)它的功能。在這個實驗中,就是采用了級聯(lián)的方式才完成了所要實現(xiàn)的功能。我們采用的是用A口和B口進行級聯(lián)的方式完成了它的功能。2.4.3輸出功能當(dāng)8253的計數(shù)功能完成了之后,就需要用一個外圍接口芯片來將這個采集的信號輸出出來。8255是一個可編程的外圍接口芯片,它可以將從8253計數(shù)的信號輸出給外圍設(shè)備。三個數(shù)據(jù)端口A,B和C,它們相互合作完成8255的工作。8255內(nèi)部包含3個位的輸入輸出端口,通過外部的24根輸入輸出線與外設(shè)交換數(shù)據(jù)或進行通信聯(lián)絡(luò)。端口A和端口B,都可以作為一個八位的輸入口或一個八位的輸出口用。C口既可以作為一個八位的輸入口或輸出口用,又可作為兩個四位的輸入輸出口使用。還常常用來配合A口和B口工作。分別用來產(chǎn)生A口和B口的輸出控制信號和輸入A口和B口的端口狀態(tài)信號。在信號的鎖存方面,它們各自有各自的特點。不能夠相同對待。端口A在輸入輸出時,數(shù)據(jù)都能鎖存。而端口B和端口C只有在輸出時,數(shù)據(jù)才能夠進行鎖存。與3個端口相連的24根輸入輸出引線分別是PA7~PA0,PB7~PB0,和PC7~PC0,這些線都與外部設(shè)備相連,具體作用與端口的工作方式有關(guān)。2.5電路連線圖0832電動機D7~D0CLK0RDGATE0WROUT08253CSCLK1A1A0GATE1OUT1D7~D0RDWRRESET8279CSCLK顯示器3軟件設(shè)計StartStart8253、8279初始化DAC0832控制直流電機轉(zhuǎn)動顯示起步價8253計數(shù)計算出8253所記錄的脈沖數(shù)并轉(zhuǎn)換為公里數(shù)>3公里超1公里加1元分離價錢各位數(shù)字送入字符緩存區(qū)E鍵轉(zhuǎn)換公里數(shù)和費用到站按F鍵清零顯示起步價3.2實驗主程序D0832EQU200HZ8279EQU212HD8279EQU210HLEDMODEQU00H;左邊輸入,八位顯示,外部譯碼八位顯示LEDFEQEQU38H;掃描頻率STACKSEGMENTSTACK'STACK'STTDB4DUP<?>STACKENDSCODESEGMENTASSUMECS:CODESTART: PUSHCS ;初始化8279 POPDS MOVDX,Z8279 XORDX,DX;0832轉(zhuǎn)動 XORAX,AX MOVDX,200H;模數(shù)轉(zhuǎn)換MOVAL,05HOUTDX,ALINCDXOUTDX,AL MOVAL,LEDMOD OUTDX,AL MOVAL,LEDFEQ OUTDX,AL MOVDX,D8279 MOVAL,7FH OUTDX,AL MOVDX,D8279 MOVAL,7FH OUTDX,AL MOVDX,D8279 MOVAL,7DH OUTDX,AL MOVDX,D8279 MOVAL,7FH OUTDX,AL MOVDX,D8279 MOVAL,70H OUTDX,AL MOVDX,D8279 MOVAL,5BH OUTDX,AL MOVDX,D8279 MOVAL,70H OUTDX,AL MOVDX,D8279 MOVAL,76H OUTDX,AL;以上為寫<ZK88> NOP MOVDX,Z8279 MOVAL,0C2H OUTDX,AL;置空FIFO寄存器CLEAR: ;初始化8253MOVAL,00110101B;計數(shù)器0,接收霍爾元件脈沖計數(shù),計數(shù)初值9999MOVDX,20BHOUTDX,ALMOVAL,99HMOVDX,208HOUTDX,ALMOVAL,99HMOVDX,208HOUTDX,ALB:WAIIT:MOVDX,Z8279;循環(huán)判斷 NOP INAL,DX MOVBL,AL ANDAL,80H CMPAL,80H JEWAIIT;FIFO正在清除期間則跳轉(zhuǎn)等待 MOVAL,BL ANDAL,0FH CMPAL,00H JENEXT;無鍵按下則等待 MOVAL,40H;寫讀FIFORAM命令字 OUTDX,AL MOVDX,D8279;讀入FIFORAM內(nèi)容 INAL,DX NOPCMPAL,3BHJEFINI;查表,將鍵碼放入AL中 LEABX,KEYBNUM XLATCMPAL,79HJEeCMPAL,71HJEfJMPNEXTe: LEABX,BIAOZHI MOVAL,[BX] CMPAL,00H JEE1 MOVAL,00H MOV[BX],AL JMPK E1: MOVAL,01H MOV[BX],AL JMPKf: MOVBX,OFFSETNUMBER MOVAX,0000H MOV[BX],AX MOVDX,Z8279;清FIFORAM寄存器MOVAL,0C2H OUTDX,AL JMPCLEAR;等待下一次鍵輸入FINI:MOVDX,Z8279MOVAL,0D3HOUTDX,ALJMP$NEXT:MOVAL,00000000B;鎖存計數(shù)器0命令MOVDX,20BH;控制口OUTDX,AL;發(fā)鎖存命令MOVDX,208H;計數(shù)器0INAL,DX;低8位MOVAH,AL;保存低8位INAL,DX;高8位XCHGAH,AL;計數(shù)值置于AX中MOVCX,AXSHOUFEI:MOVBX,9999HSUBBX,CXMOVCX,BX;CX為圈數(shù)LEABX,DISTANCEMOV[BX],CXCMPCX,30HDCMPCL,80HLMOVDL,1HMOVAL,CHADDAL,DLDAAMOVCH,ALL:MOVDL,20HMOVAL,CLADDAL,DLDAAMOVCL,ALJMPKD:MOVCX,50HK:LEABX,BIAOZHI MOVAL,[BX]CMPAL,00H ;判斷標(biāo)志JEK_NEXT ;顯示費用LEABX,DISTANCE ;顯示路程MOVCX,[BX]K_NEXT:MOVAX,CXLEABX,NUMBERMOV[BX],AXMOVAL,AHMOVAH,00HMOVCH,16DIV

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論