2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩24頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  這次硬件課程設(shè)計的內(nèi)容是出租車計價器系統(tǒng),主要內(nèi)容如下:以直流電動機模擬出租車車輪的轉(zhuǎn)動,直流電動機車輪上有一個磁鐵,然后用霍爾傳感器采集信號,送到8253對信號進行減數(shù)計數(shù),當(dāng)8253輸出一個信號時,就用8255輸出給顯示器,然后根據(jù)車輪直徑算出周長,由計數(shù)算出總路程,最后可以計算價格。</p><p&

2、gt;  各地起步價和晝夜價格等各不相同,實際還有計時計價等不同情況。這次為了簡化實驗,默認白天起步價5元(即3公里內(nèi)價格5元),超過的部分1元每公里。晚上開始即5元,后面的2元每公里。</p><p>  關(guān)鍵詞:出租車計價器; 霍爾傳感器; 8253; 8255; </p><p><b>  目 錄</b></p><p>  1

3、設(shè)計任務(wù)與要求………………………………………………………………………1</p><p>  1.1問題的提出 ……………………………………………………………………1</p><p>  1.2需求分析 …………………………………………………………………………1</p><p>  1.3設(shè)計任務(wù) …………………………………………………………………………1<

4、/p><p>  2 硬件方案 ………………………………………………………………2</p><p>  2.1 8253的應(yīng)用 ……………………………………………………………………2</p><p>  2.2 8255的應(yīng)用 ……………………………………………………………………3</p><p>  2.3 霍爾傳

5、感器的應(yīng)用 ……………………………………………………………4</p><p>  2.4 液晶顯示器的應(yīng)用 …………………………………………………………4</p><p>  2.5 電路及其主要功能 ……………………………………………………………5</p><p>  3 軟件方案 ………………………………………………………

6、………6</p><p>  3.1 流程圖 ……………………………………………………………6</p><p>  3.2 模塊圖 ……………………………………………………………7</p><p>  3.3 源程序 ……………………………………………………………8</p><

7、;p>  4 典型問題及解決方案 ……………………………………………………………16</p><p>  5 成果展示 ……………………………………………………………16</p><p>  6 結(jié)論與心得體會 ……………………………………………………………………19</p><p>  7 參考文獻 ……………

8、………………………………………………………20</p><p>  8 附錄 ………………………………………………………………………20</p><p>  8.1 8253管腳圖 ……………………………………………………………………20</p><p>  8.2 8255管腳圖 ……………………………………………………………………21</

9、p><p>  8.3 12864管腳圖……………………………………………………………………22</p><p><b>  1 總體設(shè)計與任務(wù)</b></p><p><b>  問題的提出</b></p><p>  出租車是大家出行必不可少的交通工具,在人們的日常生活中發(fā)揮著十分重要的作用。隨著經(jīng)

10、濟發(fā)展,人們的出行頻率不斷增加,尤其是隨著商業(yè)發(fā)展而不斷增加的公務(wù)出差頻率,使得出租車應(yīng)用越來越多。隨之而來的是出租車計價問題。由于現(xiàn)在很多人對出行的地點都不太熟悉,費用計算往往會有爭議。所以設(shè)計一款準確的出租車計價器是很有必要的。</p><p>  出租車計價器充當(dāng)了一個中立者的角色。公平的體現(xiàn)往往需要當(dāng)事雙方以外的媒質(zhì)。而出租車計價器恰好充當(dāng)這種媒質(zhì)。它沒有感情和利益因素攙雜在內(nèi),它只是一個計價儀器,因此它

11、可以讓司機和乘客兩者都信服,能夠保證雙方公平交易。它應(yīng)具有較準確的計價功能,不損害雙方利益,以公平、公正為原則。針對實際生活的具體問題我們設(shè)計該方案進行研究,用以解決生活中的問題。</p><p><b>  1.2 需求分析</b></p><p>  既然出租車的使用越來越廣泛,那么市場對出租車計價器的需求就會越來越大。雖然現(xiàn)在有很多廠家設(shè)計生產(chǎn)了各種各樣的出租車

12、計價器,但是也各自或多或少的有一些問題。如果能設(shè)計一款計價精準,健康節(jié)能而且小巧精悍的出租車計價器,肯定會有良好的市場反響。</p><p>  為盡可能滿足以上的設(shè)計目標(biāo),我們可以選擇8253計數(shù)器和可編程接口芯片8255。用8255作為接口,通常不需要附加外部邏輯電路就可以直接為CPU與外設(shè)提供數(shù)據(jù)通道。</p><p><b>  1.3 設(shè)計任務(wù)</b><

13、;/p><p>  最重要的任務(wù)目標(biāo)是精確。出租車計價器如果不夠精確,肯定會導(dǎo)致交易出現(xiàn)問題,使司機和乘客對價格存在爭議,影響彼此的情緒。其次,出租車計價器應(yīng)該滿足全天候連續(xù)工作,在高強度的工作下不應(yīng)該出現(xiàn)問題。另外,還要滿足耐振動的條件,否則在路面顛簸時容易損壞。其他的方面要盡量節(jié)能等。</p><p>  收費分為白天和晚上兩種情況。白天起步價為5元,超過部分1元每公里。晚上起步價為6元,

14、超過部分2元每公里。為簡化問題,以上默認數(shù)據(jù)不會改變,而且不涉及掉電處理,語音播報和等待紅燈計費等功能。路程顯示不超過99公里,價格不超過99元。涉及到白天夜晚用開關(guān)切換。開關(guān)閉合表示晚上,否則為白天。</p><p><b>  2 硬件方案</b></p><p>  2.1 8253的應(yīng)用</p><p>  8253在本實驗中工作于方式

15、3,控制字為:00110111B。含義為:選擇通道0,先讀寫計數(shù)器的低字節(jié),再讀/寫計數(shù)器的高字節(jié),采用的是BCD 計數(shù)的方法。8253具有3個獨立的計數(shù)通道,采用減1計數(shù)方式。在門控信號有效時,每輸入1個計數(shù)脈沖,通道作1次計數(shù)操作。當(dāng)計數(shù)脈沖是已知周期的時鐘信號時,計數(shù)就成為定時。 </p><p>  8253芯片有24條引腳,封裝在雙列直插式陶瓷管殼內(nèi),內(nèi)部結(jié)構(gòu)如下:</p><p&g

16、t;  (1).數(shù)據(jù)總線緩沖器 </p><p>  數(shù)據(jù)總線緩沖器與系統(tǒng)總線連接,8位雙向,與CPU交換信息的通道。這是8253與CPU之間的數(shù)據(jù)接口,它由8位雙向三態(tài)緩沖存儲器構(gòu)成,是CPU與8253之間交換信息的必經(jīng)之路。 </p><p> ?。?).讀/寫控制 </p><p>  讀/寫控制分別連接系統(tǒng)的IOR#和IOW#,由CPU控制著訪問8253的內(nèi)

17、部通道。接收CPU送入的讀/寫控制信號,并完成對芯片內(nèi)部各功能部件的控制功能,因此,它實際上是8253芯片內(nèi)部的控制器。A1A0:端口選擇信號,由CPU輸入。8253內(nèi)部有3個獨立的通道和一個控制字寄存器,它們構(gòu)成8253芯片的4個端口,CPU可對3個通道進行讀/寫操作3對控制字寄存器進行寫操作。 這4個端口地址由最低2位地址碼A1A0來選擇。 </p><p><b>  (3).通道選擇 </

18、b></p><p>  CS——片選信號,由CPU輸入,低電平有效,通常由端口地址的高位地址譯碼形成。 RD、WR——讀/寫控制命令,由CPU輸入,低電平有效。RD有效時,CPU讀取由A1A0所選定的通道內(nèi)計數(shù)器的內(nèi)容。WR有效時,CPU將計數(shù)值寫入各個通道的計數(shù)器中, 或者是將方式控制字寫入控制字寄存器中。 </p><p>  (4).計數(shù)通道0~2 </p>&

19、lt;p>  每個計數(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ù)值。 </p><p>  當(dāng)某通道用

20、作計數(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

21、范圍內(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ù)要求定時的時間進行如下運算才能得到: </p><p>  定時系數(shù)=需要定時的時間/時鐘脈沖周期 </p><p> ?、僭O(shè)置

22、通道:向方式控制字寄存器端口寫入方式選擇控制字,用于確定要設(shè)置的通道及工作方式; </p><p> ?、谟嫈?shù)/定時:向通道寫入計數(shù)值,啟動計數(shù)操作; </p><p> ?、圩x取當(dāng)前的計數(shù)值:向指定通道讀取當(dāng)前計數(shù)器值時,8253將計數(shù)器值存入鎖存器,從鎖存器向外提供當(dāng)前的計數(shù)器值,計數(shù)器則繼續(xù)作計數(shù)操作。 </p><p>  ④計數(shù)到:當(dāng)計數(shù)器減1為0時,通過

23、引腳OUTi向外輸出“到”的脈沖信號。 </p><p>  計數(shù)初值輸入存放在初值寄存器中,計數(shù)開始或重裝入時被復(fù)制到計數(shù)器中。 鎖存器在非鎖存狀態(tài),其值隨計數(shù)器的變化而變化;一旦鎖存了計數(shù)器的當(dāng)前值,直到鎖存器值被讀取后才能解除鎖存狀態(tài)。 </p><p>  8253中各通道可有6種可供選擇的工作方式,以完成定時、計數(shù)或脈沖發(fā)生器等多種功能。簡要介紹方式3如下:</p>

24、;<p>  工作方式3被稱作方波發(fā)生器,任一通道工作在方式3,只在計數(shù)值n為偶數(shù),則可輸出重復(fù)周期為n、占空比為1:1的方波。 </p><p>  進入工作方式3,OUT輸出低電平, 裝入計數(shù)值后,OUT立即跳變?yōu)楦唠娖?。如果?dāng)GATE為高電平, 則立即開始減“1”計數(shù),OUT保持為高電平,若n為偶數(shù),則當(dāng)計數(shù)值減到n/2時,OUT跳變?yōu)榈碗娖剑恢北3值接嫈?shù)值為“0”,系統(tǒng)才自動重新置入計數(shù)值

25、n,實現(xiàn)循環(huán)計數(shù)。這時OUT端輸出的周期為n×CLK周期,占空比為1:1的方波序列; 若n為奇數(shù), 則OUT端輸出周期為n×CLK周期,占空比為((n+1)/2)/((n-1)/2)的近似方波序列。 </p><p>  如果在操作過程中, GATE變?yōu)闊o效,則暫停減“1”計數(shù)過程,直到GATE再次有效,重新從初值n開始減“l(fā)”計數(shù)。 如果要求改變輸出方波的速率, 則CPU可在任何時候重新裝入

26、新的計數(shù)初值n,并從下一個計數(shù)操作周期開始改變輸出方波的速率。 </p><p>  在這個實驗當(dāng)中,我們選擇了通道0,對其采用了方式3,它能把霍爾傳感器收集起來。當(dāng)信號采集過來以后,就需要進行處理轉(zhuǎn)動圈數(shù)和路程金額的處理了。這個功能用8255來實現(xiàn)。</p><p>  8253的內(nèi)部結(jié)構(gòu)如下:</p><p>  2.2 8255的應(yīng)用</p>&

27、lt;p>  8255 是一個可編程的外圍接口芯片,它可以將從8253 計數(shù)的信號輸出給外圍設(shè)備。工作于方式0,實現(xiàn)基本的輸入輸出功能。</p><p>  方式0稱為基本的輸入輸出方式。它適用于不需要用信號的簡單輸入輸出場合。在這種方式下,A口和B口可以做為8位的端口,C口的高4位和低四位可以做為兩個四位的輸入輸出端口。這四個端口中,任何一個都是可以做輸入端口,也可以做輸出端口,從而構(gòu)成16 種不同的輸入

28、輸出組態(tài)。在實際應(yīng)用時,C口的兩半部分也可以合在一起,構(gòu)成一個八位的端口,這樣8255可以構(gòu)成三個八位的I/O端口,或兩個8位的,兩個4位的I/O 端口,以適應(yīng)各種不同的場合。</p><p>  在傳送數(shù)據(jù)時,它的實現(xiàn)過程是這樣的:CPU與這些端口交換數(shù)據(jù)時,可以直接用輸入指令從指定端口讀取數(shù)據(jù),或用輸出指令將數(shù)據(jù)寫入端口,不需要任何其它用于應(yīng)答的聯(lián)絡(luò)信號。對于方式0,還規(guī)定輸出信號可以被鎖存,輸入不能鎖存,這

29、是使用時要注意的地方。</p><p>  它的控制字也有一定的規(guī)定。其中D7位為1時,代表選擇控制字,其中D6,D5 位為00,代表選擇A口工作于方式0。D2=0,代表選擇B口工作于方式0。D4D3和D1D0這四位可以任意取0或1,由此構(gòu)成4個端口的16種不同的組態(tài)。</p><p>  8255的控制字為:10000010B,代表意思是:D7=1,表示選擇控制字。D6D5=00,表示A

30、口工作于方式0下。D4D3 =00表示A口作為輸出,B口輸入,C口輸出。D2=0表示B口工作與方式0 下。</p><p>  2.3 霍爾傳感器的應(yīng)用</p><p>  霍爾傳感器采用非接觸式的工作方式來采集信號。出租車的實際行駛距離無法實地去測量,因此需要將此問題實現(xiàn)轉(zhuǎn)化,具體方法為:用霍爾傳感器測得汽車車輪的轉(zhuǎn)動圈數(shù),再測出汽車輪胎的外徑,繼而得出周長,就用周長乘以轉(zhuǎn)動圈數(shù)即可得汽

31、車行駛的路程。</p><p>  它采用非接觸式的工作方式。在轉(zhuǎn)動的物體上置定一個磁鐵,當(dāng)磁鐵隨物體轉(zhuǎn)動一圈時,就通過霍爾傳感器旁邊一次,霍爾傳感器此時接到信號,并向外輸出一個脈沖,完成一次信號的采集。</p><p>  2.4 液晶顯示器的應(yīng)用</p><p>  12864是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標(biāo)一級、二級簡體中文字

32、庫的點陣圖形液晶顯示模塊;其顯示分辨率為128×64, 內(nèi)置8192個16*16點漢字,和128個16*8點ASCII字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機交互圖形界面。可以顯示8×4行16×16點陣的漢字. 也可完成圖形顯示.低電壓低功耗是其又一顯著特點。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價格也

33、略低于相同點陣的圖形液晶模塊。</p><p><b>  簡要介紹管腳如下:</b></p><p>  2.5 電路及其主要功能</p><p>  8253電路連接為:CLK0接霍爾傳感器計數(shù)端口。輸出OUT0接到8255的PB2口,并連結(jié)GATE0與+5V相連。8253的低平CS與280H相連,即8253段地址為280H。在這個實驗當(dāng)中

34、采用的端口的起始的地址是280H,所以就有這樣的分配:通道0的地址端口280H,通道1的地址端口為281H,通道2的地址端口為282H,8253的控制端口的地址為284H。</p><p>  當(dāng)信號采集完畢后,無法讓人們看到具體的脈沖,因此必須用顯示器將脈沖顯示出來。整體的顯示過程是:讓霍爾傳感器采集信號,8253 計數(shù),8255 將其輸出,輸出給LCD,從而完成整個過程。</p><p&g

35、t;  主要功能:以直流電動機模擬出租車車輪的轉(zhuǎn)動,直流電動機車輪上有一個磁鐵,然后用霍爾傳感器采集信號,然后用8253對信號進行減數(shù)計數(shù),當(dāng)8253輸出一個信號時,就由8255輸出給顯示器。</p><p><b>  電路圖如下:</b></p><p><b>  3 軟件方案</b></p><p><b&g

36、t;  3.1 流程圖</b></p><p><b>  (1)讀取脈沖信號</b></p><p><b> ?。?)里程處理</b></p><p> ?。?)價格處理與里程處理類似</p><p>  (4)12864LED動態(tài)顯示</p><p><

37、;b>  3.2 模塊圖</b></p><p><b>  3.3源程序</b></p><p>  ;taxi_8253_8255_12864</p><p>  PORT_8253_0 EQU 280H</p><p>  PORT_8253_1 EQU 281H</p>&

38、lt;p>  PORT_8253_2 EQU 282H</p><p>  PORT_8253_CTL EQU 283H</p><p>  PORT_8255_A EQU 288H</p><p>  PORT_8255_B EQU 289H</p><p>  PORT_8255_C EQU 28AH</p&g

39、t;<p>  PORT_8255_CTL EQU 28BH</p><p>  DATA SEGMENT</p><p>  TABLE DW 0BCC6H,0B3CCH,0A3BAH</p><p>  ; 計 程 : </p><p>  DW ?,? </p>&

40、lt;p>  DW 0A3AEH,0A3B0H,0A3EBH</p><p>  ; . 0 k</p><p>  DW 0BDF0H,0B6EEH,0A3BAH</p><p>  ; 金 額 :</p><p><b>  DW ?,?</b></p>&

41、lt;p>  DW 0A3AEH,0A3B0H,0D4AAH</p><p>  ; . 0 元</p><p>  HZ_ADR DB ? ;存放顯示行起始端口地址</p><p>  NUMBER DW 0A3B0H,0A3B1H,0A3B2H,0A3B3H,0A3B4H,0A3B5H,0A3B6H,0A3B7H

42、,0A3B8H,0A3B9H</p><p>  ; 0 1 2 3 4 5 6 7 8 9</p><p>  TEMP1 DW ? ;距離十位</p><p>  TEMP2 DW ? ;距離個位</p>&l

43、t;p>  TEMP3 DW ? ;金額十位</p><p>  TEMP4 DW ? ;金額個位</p><p>  DIS DW 0 ;里程初始為0km</p><p>  PAY DW 5 ;白天起步價5元</p><p>&l

44、t;b>  DATA ENDS</b></p><p>  CODE SEGMENT</p><p>  ASSUME CS:CODE,DS:DATA</p><p>  START: MOV AX,DATA</p><p><b>  MOV DS,AX</b></p><p

45、>  ;初始化8255,A口輸出,B口輸入,C口輸出</p><p>  MOV DX,PORT_8255_CTL</p><p>  MOV AL,10000010B ;A口,B口方式0</p><p><b>  OUT DX,AL</b></p><p>  ;初始化8253通道0</p>&l

46、t;p>  MOV DX,PORT_8253_CTL</p><p>  MOV AL,00110111B ;先低后高,方式3,BCD計數(shù)</p><p><b>  OUT DX,AL</b></p><p>  MOV DX,PORT_8253_0</p><p>  MOV AL,00H

47、 ;假設(shè)每個脈沖一米,1000個代表一公里</p><p>  OUT DX,AL ;寫入低字節(jié)</p><p>  MOV AL,10H</p><p>  OUT DX,AL ;寫入高字節(jié)</p><p>  ;判斷白天和晚上,確定起步價</p><p> 

48、 DAY_NI:MOV DX,PORT_8255_B</p><p>  IN AL,DX</p><p>  TEST AL,01H ;判斷開關(guān)狀態(tài),閉合高電平表示晚上</p><p>  JZ READ ;最低位為低電平表示白天</p><p>  INC PAY

49、 ;否則是晚上,起步價由5元變成6元,故加1</p><p>  ;從8255讀取脈沖信息</p><p>  READ: TEST AL,02H ;判斷是否為高電平</p><p>  JNZ READ ;高電平,繼續(xù)檢測</p><p>  INC DIS

50、 ;不是高電平了,即有一個脈沖,距離加1km</p><p>  CMP DIS,3 ;與起步里程比較,判斷是否超過3km</p><p>  JB TRANS ;小于3km則金額仍為起步價,轉(zhuǎn)去求路程和金額的個位和十位</p><p>  INC PAY ;默認是白天,單價一公里一元&

51、lt;/p><p>  ;判斷白天和晚上,確定單價</p><p>  NIG: TEST AL,01H</p><p>  JZ TRANS ;白天</p><p>  INC PAY ;晚上單價為一公里兩元</p><p>  ;求十進制的個位和十位</p

52、><p>  TRANS: MOV AX,DIS ;如DIS是002AH,則DAA會轉(zhuǎn)化為0042H,即十進制42公里</p><p>  ADD AL,00H</p><p>  DAA ;壓縮BCD調(diào)整,結(jié)果在AL中</p><p>  MOV BX,0000H</p>

53、<p><b>  MOV BL,AL</b></p><p>  AND BL,0FH ;如AL為42H,則BL會變?yōu)?2H,即個位</p><p>  MOV TEMP2,BX ;距離個位</p><p>  MOV BX,0000H</p><p><b>

54、;  MOV BL,AL</b></p><p>  AND BL,0F0H</p><p>  MOV CL,04H</p><p>  SHR BL,CL ;右移四位</p><p>  MOV TEMP1,BX ;距離十位</p><p>  MOV AX,P

55、AY</p><p>  ADD AL,00H</p><p><b>  DAA</b></p><p>  MOV BX,0000H</p><p><b>  MOV BL,AL</b></p><p>  AND BL,0FH</p><p>

56、  MOV TEMP4,BX ;金額個位</p><p>  MOV BX,0000H</p><p><b>  MOV BL,AL</b></p><p>  AND BL,0F0H</p><p>  MOV CL,04H</p><p>  SHR BL,CL

57、 ;右移四位</p><p>  AND TEMP3,BX ;金額十位</p><p>  LEA BX,NUMBER</p><p>  ADD BX,TEMP1</p><p>  ADD BX,TEMP1</p><p>  MOV AX,[BX]</p><p&

58、gt;  LEA DI,TABLE</p><p>  MOV WORD PTR[DI+6],AX ;距離十位</p><p>  LEA BX,NUMBER</p><p>  ADD BX,TEMP2</p><p>  ADD BX,TEMP2</p><p>  MOV AX,[BX]</p>&

59、lt;p>  LEA DI,TABLE</p><p>  MOV WORD PTR[DI+8],AX ;距離個位</p><p>  LEA BX,NUMBER</p><p>  ADD BX,TEMP3</p><p>  ADD BX,TEMP3</p><p>  MOV AX,[BX]</p&g

60、t;<p>  LEA DI,TABLE</p><p>  MOV WORD PTR[DI+22],AX ;金額十位</p><p>  LEA BX,NUMBER</p><p>  ADD BX,TEMP4</p><p>  ADD BX,TEMP4</p><p>  MOV AX,[BX]&l

61、t;/p><p>  LEA DI,TABLE</p><p>  MOV WORD PTR[DI+24],AX ;金額個位</p><p><b>  ;路程價格輸出</b></p><p>  SHOW: CALL CLEAR ;LCD 清除</p><p>  LEA

62、BX,TABLE</p><p>  MOV CH,2 ;顯示第2行信息 </p><p>  CALL LCD_DISP</p><p>  LEA BX, TABLE</p><p>  MOV CH,3 ;顯示第3行信息</p><p>  CALL LC

63、D_DISP</p><p>  TT: JMP START ;TT</p><p>  CLEAR PROC</p><p>  MOV AL,0CH</p><p>  MOV DX, PORT_8255_A</p><p>  OUT DX,AL ;設(shè)置

64、CLEAR命令</p><p>  CALL CMD_SETUP ;啟動LCD執(zhí)行命令</p><p><b>  RET</b></p><p>  CLEAR ENDP</p><p>  FUNCUP PROC</p><p>  MOV AL, 34H

65、 ;LCD顯示狀態(tài)命令</p><p>  OUT DX, AL</p><p>  CALL CMD_SETUP</p><p><b>  RET</b></p><p>  FUNCUP ENDP</p><p>  LCD_DISP PROC</p><p>  

66、LEA BX, TABLE</p><p><b>  CMP CH, 2</b></p><p>  JZ DISP_SEC</p><p>  MOV BYTE PTR HZ_ADR, 88H ;第三行起始端口地址</p><p>  ADD BX,16 ;指向第二行信息</

67、p><p><b>  JMP NEXT</b></p><p>  DISP_SEC:MOV BYTE PTR HZ_ADR,90H</p><p>  NEXT: MOV CL,8 </p><p>  CONTINUE:PUSH CX</p><p>  MOV AL,HZ_ADR&

68、lt;/p><p>  MOV DX, PORT_8255_A</p><p>  OUT DX, AL</p><p>  CALL CMD_SETUP ;設(shè)定DDRAM地址命令</p><p>  MOV AX,[BX]</p><p><b>  PUSH AX</b><

69、/p><p>  MOV AL,AH ;先送漢字編碼高位</p><p>  MOV DX,PORT_8255_A</p><p><b>  OUT DX,AL</b></p><p>  CALL DATA_SETUP ;輸出漢字編碼高字節(jié)</p><p&g

70、t;  CALL DELAY ;延遲</p><p><b>  POP AX</b></p><p>  MOV DX,PORT_8255_A</p><p>  OUT DX, AL</p><p>  CALL DATA_SETUP ;輸出漢字編碼低字節(jié)</p>

71、<p>  CALL DELAY</p><p><b>  INC BX</b></p><p>  INC BX ;修改顯示內(nèi)碼緩沖區(qū)指針</p><p>  INC BYTE PTR HZ_ADR ;修改LCD顯示端口地址</p><p><b> 

72、 POP CX</b></p><p><b>  DEC CL</b></p><p>  JNZ CONTINUE</p><p><b>  RET</b></p><p>  LCD_DISP ENDP</p><p>  CMD_SETUP PROC&

73、lt;/p><p>  MOV DX,PORT_8255_A ;指向8255端口控制端口</p><p><b>  ADD DX,2</b></p><p><b>  NOP</b></p><p>  MOV AL,00000000B ;PC1置0,pc0置0 (LCD

74、 I端=0,W端=0)</p><p>  OUT DX, AL</p><p>  CALL DELAY</p><p><b>  NOP</b></p><p>  MOV AL,00000100B ;PC2置1 (LCD E端=1)</p><p>  OUT DX, AL

75、</p><p><b>  NOP</b></p><p>  CALL DELAY</p><p>  MOV AL, 00000000B ;PC2置0,(LCD E端置0)</p><p>  OUT DX, AL</p><p>  CALL DELAY</p>

76、<p><b>  RET</b></p><p>  CMD_SETUP ENDP</p><p>  DATA_SETUP PROC</p><p>  MOV DX,PORT_8255_A ;指向8255控制端口</p><p><b>  ADD DX,2</b><

77、;/p><p>  MOV AL,00000001B ;PC1置0,PC0=1 (LCD I端=1)</p><p>  OUT DX, AL</p><p><b>  NOP</b></p><p>  CALL DELAY</p><p>  MOV AL,00000101B

78、 ;PC2置1 (LCD E端=1)</p><p>  OUT DX, AL</p><p><b>  NOP</b></p><p>  CALL DELAY</p><p>  MOV AL, 00000001B ;PC2置0,(LCD E端=0)</p><p>  OUT

79、 DX, AL</p><p><b>  NOP</b></p><p>  CALL DELAY</p><p><b>  RET</b></p><p>  DATA_SETUP ENDP</p><p>  DELAY PROC</p>&l

80、t;p><b>  PUSH CX</b></p><p><b>  PUSH DX</b></p><p>  MOV CX, 0FFFH</p><p>  X1: LOOP X1</p><p><b>  POP DX</b></p>

81、;<p><b>  POP CX</b></p><p><b>  RET</b></p><p>  DELAY ENDP</p><p><b>  JMP READ</b></p><p><b>  CODE ENDS</b&

82、gt;</p><p>  END START </p><p>  4 典型問題及解決方案</p><p>  這次硬件課程設(shè)計確實遇到了不少問題,比如讀取8253脈沖信號,里程和價格的計算等等,但通過上網(wǎng)查資料、請教老師以及與同學(xué)討論等方式,這些問題都得到了解決。這里主要介紹兩個典型問題。</p><p>  第一個問題是路程和價格的計算

83、。在這次設(shè)計中,我把里程變量DIS和價格PAY根據(jù)脈沖信號進行加一操作。由于定義為DW,即十六進制,就需要將其轉(zhuǎn)化為十進制輸出。由于不知道其具體值,不方便處理。所以我將其與00H相加并進行DAA調(diào)整,這樣就可以將個位和十位分別存在AL的低四位和高四位中。然后與0FH相與可得個位的值;右移四位后再相與可得十位的值。這樣就得到了需要的結(jié)果了。</p><p>  第二個問題是12864LED顯示屏的動態(tài)顯示。由于HQ

84、FC的演示實驗是靜態(tài)顯示的,所以沒有動態(tài)顯示的相關(guān)信息。遇到這樣的問題,先想到的是上網(wǎng)查找類似的實驗來參考一下??上]有找到。幸好有同學(xué)發(fā)現(xiàn)就是將原來的表中的值進行替換,就能將靜態(tài)顯示轉(zhuǎn)換為動態(tài)顯示。所以先定義靜態(tài)表和十個數(shù)字,將求到的個位或十位加到數(shù)字表的起始地址,然后再加一次,因為字庫編碼占十六位,這樣就得到了所得值的編碼。然后將其替換原來靜態(tài)表中的值,便能進行動態(tài)顯示了。</p><p><b>

85、  5 成果展示</b></p><p> ?。?)白天起步價內(nèi),即三公里內(nèi)5元</p><p> ?。?)白天超過起步價后,每公里一元,未滿一公里按一公里計算</p><p><b> ?。?)白天其他情況</b></p><p>  (4)晚上從5元開始,一公里兩元</p><p>

86、;<b>  6 結(jié)論與心得體會</b></p><p>  這次硬件課程設(shè)計使用8253、8255、霍爾元件、直流電機和12864LED顯示屏等元件實現(xiàn)了出租車計價器的功能。實際的出租車可簡單分為兩個部分,一為傳感器部分,二是數(shù)據(jù)處理部分。其工作原理為:霍爾傳感器負責(zé)把車輪的轉(zhuǎn)動情況轉(zhuǎn)換成脈沖信號,送給8253計數(shù)處理部分,然后把計數(shù)結(jié)果轉(zhuǎn)化為相應(yīng)的路程送到8255處理,最后計算出乘客應(yīng)付

87、的金額。由于使用16進制,需要進行十進制轉(zhuǎn)化,這是比較麻煩的。先要用DAA調(diào)整指令獲取個位和十位,然后要把代表個位的低四位取出。然后把代表十位的高四位右移至低四位,最后存到一個變量里。除了這個難題,還要把個位和十位數(shù)字對比數(shù)字表獲取字庫碼,這樣將原來靜態(tài)表中的值替換掉就可以進行動態(tài)顯示了。</p><p>  這次課程設(shè)計使我對硬件和匯編的相關(guān)知識的了解更加深入了,而這離不開老師和同學(xué)的幫助。所以再次我要感謝在這

88、次實驗中給予我很多幫助的老師和同學(xué),沒有他們的幫助,我會多走不少彎路。</p><p>  最后想用一句話總結(jié)一下:沒有什么是簡單的,也沒有什么是不可能的。堅持不懈,一定能得到理想的結(jié)果。</p><p><b>  7 參考文獻</b></p><p><b>  參考文獻</b></p><p>

89、;  [1] 周荷琴,吳秀清.微型計算機原理與接口技術(shù).合肥:中國科技大學(xué)出版社,2004</p><p>  [2] TPC-ZK系列USB學(xué)生實驗指導(dǎo)書</p><p>  [3] 韓衍鵬,出租車計價器傳感器原理及維護 企業(yè)標(biāo)準化,2008 年</p><p>  [4] st7920字庫碼,http://wenku.baidu.com/view/a6f4bb5

90、43b3567ec102d8ac3.html</p><p>  [5] 12864專題,http://wenku.baidu.com/view/fcaf6eea6294dd88d0d26b7b.html</p><p><b>  8 附錄</b></p><p><b>  附錄:</b></p><

溫馨提示

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

評論

0/150

提交評論