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

下載本文檔

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

文檔簡介

1、<p>  出租車計程計價器的設(shè)計</p><p>  一·課程設(shè)計目的與要求</p><p>  為了能夠精確地測量出租車行駛的路程和計算出該路程所需的價格,并顯示出路程值和所需的錢值,基于單片機(jī)MCS-51能夠完成該工作。</p><p>  利用實驗室提供的設(shè)配,利用實驗箱上LED顯示器設(shè)計能夠顯示6位(前四位是價錢值,后兩位路程值),利用

2、實驗箱上提供的外部脈沖作為車輪走過的路程(設(shè)車輪直徑為D=60cm,S=πD=2m),設(shè)起步價為12.5元,超過3km,超出的每千米按2.4元計算,同時包含停車每超過45s又要加6角。</p><p><b>  二·設(shè)計方案</b></p><p><b> ?。?)設(shè)計原理</b></p><p>  1.利

3、用發(fā)光二級管L0滅來辨識有乘客,亮?xí)r沒有乘客。通過開關(guān)K1來控制。具體接線是將P1.1與L0相連,P3.3與K1相連。利用實驗箱上的直流電機(jī)轉(zhuǎn)速產(chǎn)生的脈沖作為T0的外來計數(shù)脈沖。具體接線是將P3.4與實驗箱上的CKMOT(CKMOT即是直流電機(jī)轉(zhuǎn)數(shù)產(chǎn)生脈沖輸出端)相連。</p><p>  2.規(guī)定如下:①起始價為12.5元,若在3Km以內(nèi)則應(yīng)付費12.5元,如果超過了3Km則應(yīng)按超過3km的另外以每千米2.4元

4、計算,及總價為 JJ={12.5+(S-3)×2.4}元 。②若途中因為紅燈或塞車的原因停車則每停車45秒要另加0.6元即JJ=JJ+0.6.如舉個例子S=85km,中途沒有停車則JJ=12.5+(85-3)×2.4=209.3(元)則6個數(shù)碼管將顯示“209.3 85”</p><p>  3.具體過程敘述如下:①程序一開始由于CLR p1.1知L0亮,并且開始時開關(guān)K1置1檔,直到有乘客上

5、車時,把開關(guān)打向0檔,L0滅,同時顯示器開始計程計價(開始顯示為“12.5 00")之后車輪每轉(zhuǎn)一圈相當(dāng)于輸出一個外部脈沖到P3.4,利用T0計數(shù),T0每計125則T0中斷一次,由于1km=4×125×2(車輪每轉(zhuǎn)一圈則路程為2m),即在T0中斷程序中還有一個計中斷次數(shù)的。</p><p>  ②在本設(shè)計中用到6個數(shù)碼管分別為 百元,十元,元,角,十千米,千米。③程序中用十進(jìn)制BCD

6、碼來表示價錢和路程,因此要用到將BCD碼轉(zhuǎn)換成非壓縮的BCD碼來驅(qū)動數(shù)碼管顯示。即用RAM 30H 存儲路程S(壓縮BCD碼)。另外用31H,32H來存儲計價值JJ的壓縮BCD碼,高字節(jié)放在32H中(百元,十元),低字節(jié)放在31H中(元,角),開始計價時30H為0,32H中為1(10元)31H中為25(二元五角)。調(diào)用BCDZH將BCD碼轉(zhuǎn)成非壓縮BCD碼在調(diào)用DISP顯示函數(shù)驅(qū)動數(shù)碼管顯示。</p><p> 

7、?、茉赥0中斷中若S>3km則調(diào)用BCDJ24即以后每千米加2.4元,在調(diào)用BCDZH和DISP顯示路程和價錢。注意30H~32H中對應(yīng)的非壓縮BCD碼存放在40H~45H(40H存放一千米,41H存放十千米,42H存放角,43H存放元,44H存放十元,45H存放百元)。</p><p> ?、莩绦蛑羞€用T1定時器來檢測是否處于停車狀態(tài),由晶振頻率fosc=12MHz,T1定時為50ms,每過5S(100*

8、0.1)檢測一次TL0中的數(shù)據(jù)是否與上次相同,若相同則認(rèn)為停車狀態(tài),直到檢測了9次(9*5=45S)則就要加6角,之后再調(diào)用BCDZH和DISP驅(qū)動顯示器,顯示計價計程,又清零重新記錄停車時間。</p><p> ?、薮顺绦蛑斜容^特殊在于,T0每次中斷恰好走過250m,及恰好也是調(diào)用BCDJ6,這就省略了一些計算步驟。</p><p>  三·硬件系統(tǒng)說明和電路圖原理</p

9、><p><b>  +5v</b></p><p>  K1 </p><p><b>  ckmot</b></p><p>  四·程序模塊主要流程圖和源程序及注釋</p><p><b>  程序流程圖</b>&l

10、t;/p><p><b>  程序 </b></p><p><b>  源程序代碼:</b></p><p>  QDJ EQU 125;起步價12.5元</p><p>  GLJ EQU 24;每公里價2.4元</p><p>  S EQU 30H ;路程壓縮BC

11、D碼存放30H</p><p>  JJDZJ EQU 31H;計價值低字節(jié)存放在31H壓縮BCD碼,元,角</p><p>  JJGZJ EQU 32H;計價值高字節(jié)存放在32H壓縮BCD碼,百元,十元</p><p>  SGW EQU 40H;路程個位非壓縮BCD碼,km</p><p>  SSW EQU 41H ;路程十位非壓縮B

12、CD碼,10km</p><p>  JJJ EQU 42H ;計價值角位,非壓縮BCD碼</p><p>  JJY EQU 43H ;計價值元位,非壓縮BCD碼</p><p>  JJSY EQU 44H;計價值十元位,非壓縮BCD碼</p><p>  JJBY EQU 45H;計價值百元位,非壓縮BCD碼</p>&l

13、t;p>  ORG 0000H;程序開始</p><p><b>  LJMP MAIN</b></p><p><b>  ORG 000BH</b></p><p>  LJMP T0INT</p><p><b>  ORG 001BH</b></p>

14、<p>  LJMP T1INT</p><p>  MAIN: MOV SP,#60H</p><p>  MOV DPTR,#5FFFH ;顯示初始化</p><p>  MOV A,#0DCH</p><p>  MOVX @DPTR,A</p><p>  LP: MOVX A,@DPTR&l

15、t;/p><p>  JNB ACC.7,LP </p><p>  MOV A,#00H</p><p>  MOVX @DPTR,A</p><p>  MOV A,#34H</p><p>  MOVX @DPTR,A</p><p>  MOV TMOD,#16H ;T0計數(shù),模式二,

16、T1定時,模式一</p><p>  MOV TH0,#83H ;T0計數(shù)初值,每計到125,中斷一次</p><p>  MOV TL0,#83H</p><p>  MOV TH1,#3CH ;T1定時初值,每50ms,中斷一次</p><p>  MOV TL1,#0B0H</p><p>  MOV R7,#0

17、0H ;T0中斷的次數(shù),4次則路程加1km</p><p>  MOV R3,#83H ;用于存放每次TLTLO中數(shù)</p><p>  MOV R4,#00H ;T1中斷子程序中100次,則5s檢測車是否停車狀態(tài)</p><p>  MOV R5,#00H ;T1中斷子程序中90次,則停車45s,加6角</p><p>

18、;  SETB EA ;開啟cpu中斷,T0,T1中斷</p><p><b>  SETB ET1</b></p><p><b>  SETB ET0</b></p><p>  SETB PT0 ;T0中斷優(yōu)先級高</p><p>  CLR P1.1 ;無乘客L0亮燈

19、 </p><p>  MOV SGW, #00H ;顯示位清零</p><p>  MOV SSW,#00H</p>

20、<p>  MOV JJJ,#00H</p><p>  MOV JJY,#00H</p><p>  MOV JJSY,#00H</p><p>  MOV JJBY,#00H</p><p>  ;ACALL DISP</p><p>  JB P3.3,$ ;有乘客時,開始啟動T0計數(shù),T1定時,開關(guān)K

21、1控制</p><p><b>  SETB TR0</b></p><p><b>  SETB TR1</b></p><p>  CLR P1.1 ;有乘客時L0滅燈</p><p>  MOV S,#00H ;路程初始值0km</p><p>  MOV JJGZ

22、J,#01H ;計價初始值12.5元</p><p>  MOV JJDZJ,#25H</p><p>  ACALL BCDZH ;調(diào)用BCD轉(zhuǎn)換程序,成非壓縮BCD碼</p><p>  LL: ACALL DISP ;調(diào)用顯示程序,并等待中斷</p><p><b>  LJMP LL</b></p

23、><p>  ;將壓縮BCD碼轉(zhuǎn)換成非壓縮BCD碼子程序如下</p><p>  BCDZH: PUSH PSW</p><p>  SETB RS0 ;選用工作寄存器組0</p><p>  MOV R0,#S ;S的轉(zhuǎn)換</p><p>  MOV R1,#SGW</p><p>  LPB

24、: MOV A,@R0</p><p><b>  MOV R2,A</b></p><p>  ANL A,#0FH ;保留低四位</p><p><b>  MOV @R1,A</b></p><p>  INC R1 </p><p><b>

25、;  MOV A,R2</b></p><p>  ANL A,#0F0H ;保留高四位,</p><p><b>  SWAP A</b></p><p><b>  MOV @R1,A</b></p><p>  INC R0 ;計價值的轉(zhuǎn)?</p>

26、<p><b>  INC R1</b></p><p>  CJNE R0,#33H,LPB</p><p>  CLR RS0 ;選回工作寄存器組0</p><p><b>  POP PSW</b></p><p><b>  RET</b><

27、/p><p><b>  ;T0中斷子程序</b></p><p>  T0INT: PUSH PSW</p><p><b>  INC R7</b></p><p>  CJNE R7,#04H,LPT0;路程不滿1km,S不加1,轉(zhuǎn)到LPTO</p><p>  MOV A

28、,S ;S+1</p><p>  ADD A,#01H</p><p><b>  DA A</b></p><p><b>  MOV S,A</b></p><p>  MOV R7,#00H ;R7復(fù)0</p><p>  LPT0: MOV A,S

29、 ;S是否大于3km </p><p><b>  CLR C</b></p><p>  SUBB A,#03H</p><p>  JC FH0 ;S<3,轉(zhuǎn)到FH0</p><p><b>  ; MOV A,S</b></p><p><b&g

30、t;  ; CLR C</b></p><p>  ;SUBB A,#6</p><p><b>  ;JC L3</b></p><p>  ;ACALL BCDJ12</p><p><b>  ;LJMP FH0</b></p><p>  L3: AC

31、ALL BCDJ6 ;由于每次計數(shù)125,中斷一次,125*2=250m,即中斷一次加0.6元</p><p>  FH0: ACALL BCDZH ;調(diào)用bcd碼轉(zhuǎn)換成非壓縮bcd碼,驅(qū)動數(shù)碼管顯示</p><p>  ;ACALL DISP</p><p><b>  POP PSW</b></p><p&g

32、t;<b>  RETI</b></p><p>  ;BCDJ6子程序,T0中斷一次250m就加6角,使用壓縮BCD碼</p><p>  BCDJ6: MOV A,JJDZJ </p><p>  ADD A,#06H</p><p><b>  DA A</b></p><

33、p>  MOV JJDZJ,A</p><p>  MOV A,JJGZJ</p><p>  ADDC A,#00H</p><p><b>  DA A</b></p><p>  MOV JJGZJ,A</p><p><b>  RET</b></p>

34、;<p><b>  ;附加的</b></p><p>  ;BCDJ12: MOV A,JJDZJ </p><p>  ;ADD A,#12</p><p><b>  ;DA A</b></p><p>  ;MOV JJDZJ,A</p><p>  ;

35、MOV A,JJGZJ</p><p>  ;ADDC A,#0</p><p><b>  ;DA A</b></p><p>  ;MOV JJGZJ,A</p><p><b>  ;RET</b></p><p><b>  ;T1中斷子程序</b&g

36、t;</p><p>  T1INT:PUSH PSW</p><p>  MOV TH1,#3CH</p><p>  MOV TL1,#0B0H</p><p><b>  INC R4</b></p><p>  CJNE R4,#64H,LY ;未到5s,轉(zhuǎn)到LY</p>

37、<p>  MOV R4,#00H ;R4復(fù)0</p><p><b>  MOV A,TL0</b></p><p><b>  CLR C</b></p><p>  SUBB A,R3 ;5s檢測是否停車,</p><p>  JNZ LY2 ;A=0,R3=T

38、L0,A!=0->LY2</p><p>  INC R5 </p><p>  CJNE R5,#09H,LY2 ;是否停了45s</p><p>  MOV R5,#00H ;R5復(fù)0</p><p>  ACALL BCDJ6 ;停車45s加6角</p><p>  ACALL

39、BCDZH</p><p>  LY2: MOV R3,TL0 ;用于存放每次TL0的值</p><p>  LY: POP PSW</p><p><b>  RETI</b></p><p><b>  ;顯示子程序</b></p><p>  DISP:

40、 MOV R3,#06H ;顯示的位數(shù)</p><p>  MOV A,#92H ;輸出寫顯示RAM命令字</p><p>  MOV DPTR,#5FFFH ;指向8279命令口</p><p>  MOVX @DPTR,A ;起始地址為0單元,自動加1</p><p>  MOV R1,#SGW ;要顯示數(shù)據(jù)的存放單

41、元首地址</p><p>  TY11: MOV A,@R1</p><p>  MOV DPTR,#CODE1 ;#CODE1為查表偏移量</p><p>  MOVC A,@A+DPTR ;查表得到段碼</p><p>  MOV DPTR,#5EFFH ;指向8279數(shù)據(jù)口</p><p>  

42、MOVX @DPTR,A ;寫入顯示RAM</p><p><b>  INC R1</b></p><p>  DJNZ R3,TY11</p><p><b>  RET</b></p><p>  CODE1: DB 0C0H,0F9H,0A4H,0B0H,99H ;段碼表(共陽極)

43、</p><p>  DB 92H,82H,0F8H,80H,90H,88H</p><p>  DB 83H,0C6H,0A1H,86H,8EH,8CH</p><p>  DB 0C1H,89H,0C7H,0BFH,91H</p><p>  DB 00H,0FFH</p><p><b>  END&l

44、t;/b></p><p><b>  五·課程設(shè)計總結(jié)</b></p><p>  這次單片機(jī)課程設(shè)計對于自己來說,收獲很多。通過這次包括匯編編程和對硬件的操作在內(nèi)的,由自己動手實踐的,在體提高自己編程能力方面和對單片機(jī)硬件操作能力方面都有一個很大的提高。由開始選題然后找到相關(guān)參考書,試著編寫程序,到最后逐步的修改,碰到問題找老師和同學(xué)幫助(如如何提

45、供外部脈沖來源,單步調(diào)式,設(shè)置斷點等),最后能夠在實驗箱實現(xiàn),這過程中收獲頗多??傊?,這次課程設(shè)計即有加深對課本知識了解,也加強(qiáng)了自己操作和編程能力。</p><p><b>  六·參考書目</b></p><p>  【1】王瓊,單片機(jī)原理及應(yīng)用實驗教程。合肥:合肥工業(yè)大學(xué)出版社,2005【2】王瓊,單片機(jī)原理及應(yīng)用。合肥:合肥工業(yè)大學(xué)出版社,2008&

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論