單片機課程設計報告---- 出租車計費課程設計_第1頁
已閱讀1頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設計任務書</b></p><p>  2011 —2012 學年第1 學期</p><p>  電氣與信息工程 學院 電氣工程及其自動化 專業(yè) 電氣094 班級</p><p>  課程名稱: 單片機課程設計 <

2、;/p><p>  設計題目: 出租車計費課程設計 </p><p>  完成期限:自 2011 年 12 月 19 日至 2011 年 12 月 31 日共 2 周</p><p>  單片機系統(tǒng)課程設計說明書</p><p>  起止日

3、期: 2011 年 12 月 19 日 至 2011 年 12 月 31 日</p><p><b>  電氣與信息工程學院</b></p><p>  2011年12 月19日</p><p>  1.1 外部脈沖自動計數(shù),自動顯示。</p><p>  1.1.1設計一個255計數(shù)器:0-255計數(shù),計滿后自動清

4、0,重新計數(shù)(在數(shù)碼管中顯示).</p><p>  設計思路:255可用8位二進制數(shù)表示,故本設計可直接采用可以重裝載的計數(shù)器T1模式二進行計數(shù)。然后對TL1的內(nèi)容進行相應的二進制---十進制轉(zhuǎn)換:首先TL1的內(nèi)容除以100,所的商就是十進制的百位,然后用余數(shù)除以10,所得的商就是十進制數(shù)的十位,余數(shù)即相應的十進制的個位。接著將相應的十進制數(shù)進行譯碼,并在LED數(shù)碼管上顯示出來。每來一個脈沖其顯示的結果加一,直

5、加至255然后T1重新開始計數(shù)。</p><p>  一、255計數(shù)器流程圖設計。</p><p><b>  N</b></p><p><b>  N</b></p><p><b>  N </b></p><p>  二、255計數(shù)器源代碼:

6、</p><p><b>  ORG 0000H</b></p><p>  SJMP MAIN</p><p><b>  ORG 0060H</b></p><p>  MAIN: MOV TMOD, #50H</p><p>  MOV TH1,#0</p>

7、;<p>  MOV TL1,#0</p><p><b>  SETB TR1</b></p><p>  LOOP1:MOV A,TL1</p><p><b>  LCALL BCD</b></p><p>  LCALL SHOW</p><p>  C

8、JNE A,#255,LOOP1</p><p>  MOV TH1,#00H</p><p>  MOV TL1,#00H</p><p><b>  SJMP MAIN</b></p><p>  BCD: MOV A,TL1 ;BCD 轉(zhuǎn)換</p><p>  MOV B,#10

9、0</p><p>  DIV AB </p><p><b>  MOV R7,B</b></p><p><b>  MOV 72H,A</b></p><p><b>  MOV A,R7</b></p><p><b>  MO

10、V B,#10</b></p><p><b>  DIV AB</b></p><p><b>  MOV 71H,A</b></p><p><b>  MOV 70H,B</b></p><p><b>  RET</b></p&g

11、t;<p>  SHOW: MOV R1,#3 ;分別顯示個位、十位、百位</p><p>  MOV DPTR,#TAB</p><p>  MOV R0,#70H </p><p>  MOV R2,#00H</p><p>  LOOP2:MOV P2,R2 ;位選擇 </p>

12、<p><b>  MOV A,@R0</b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p>  LCALL DELAY</p><p><b>  INC R0 </b></p>

13、;<p><b>  INC R2</b></p><p>  MOV P0,#0FFH </p><p>  DJNZ R1,LOOP2</p><p><b>  RET</b></p><p>  TAB: DB 0C0H,0F9H,0A4H,0B0H,99H

14、</p><p>  DB 92H,82H,0F8H,80H,90H</p><p>  DELAY:MOV R5,#30</p><p>  DL: MOV R6,#255</p><p><b>  DJNZ R6,$</b></p><p>  DJNZ R5,DL</p>

15、<p><b>  RET</b></p><p><b>  END</b></p><p>  三、255計數(shù)器仿真圖: </p><p>  1.1.2設計一個999999計數(shù)器:0-999999計數(shù),計滿后自動清0,重新計數(shù)(在數(shù)碼管中顯示)。</p><p>  設計思路:

16、把TH1和TL1賦予最大數(shù)值,每來一個脈沖TF1就變?yōu)?,檢測TF1是否為1即可判斷是否有脈沖到來。每來一個脈沖,個位數(shù)加1,當個位滿10,個位清0,十位數(shù)進1;一直到十位為10,十位數(shù)清0,百位數(shù)進1;如此繼續(xù)進行,直到第六位。</p><p>  一、999999計數(shù)器流程圖</p><p>  二、999999計數(shù)器源代碼</p><p><b> 

17、 ORG 0000H</b></p><p><b>  SJMP MAIN</b></p><p><b>  ORG 0030H</b></p><p>  MAIN: MOV 70H,#0</p><p>  MOV 71H,#0</p><p>  MOV

18、 72H,#0</p><p>  MOV 73H,#0</p><p>  MOV 74H,#0</p><p>  MOV 75H,#0</p><p>  MOV TMOD,#01100000B</p><p>  MOV TH1,#255</p><p>  MOV TL1,#255&l

19、t;/p><p><b>  SETB TR1</b></p><p>  L1: JNB TF1,L3 ;沒有溢出則轉(zhuǎn)L3</p><p>  CLR TF1;溢出則清零tf1</p><p>  LCALL COUNT</p><p>  L3: LCALL DISPL

20、AY</p><p><b>  SJMP L1</b></p><p>  COUNT: MOV R1,#70H</p><p>  L2: INC @R1</p><p>  CJNE @R1,#10,BTOM</p><p>  MOV @R1,#0</p><p

21、><b>  INC R1</b></p><p>  CJNE R1,#76H,L2</p><p>  MOV R1,#70H</p><p>  BTOM: RET</p><p>  DISPLAY: MOV R0,#70H</p><p><b>  MOV R3,

22、#3</b></p><p>  MOV DPTR,#SEG</p><p>  L4: MOV A,@R0</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P2,R3</b></p><p><b>  MOV P0,A<

23、;/b></p><p><b>  INC R0</b></p><p><b>  INC R3</b></p><p>  LCALL D6MS</p><p>  MOV P0,#0FFH</p><p>  CJNE R3,#6,L4</p>&

24、lt;p><b>  RET</b></p><p>  SEG: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H</p><p>  DB 80H,90H</p><p>  D6MS: MOV R7,#30</p><p>  DL: MOV R6,#10

25、0</p><p>  DJNZ R6,$ </p><p>  DJNZ R7,DL</p><p><b>  RET</b></p><p><b>  END </b></p><p>  三、999999計數(shù)器仿真圖</p><p>  1.

26、2 設計一個出租車計費系統(tǒng):</p><p>  1.2.1設計要求:起步價為5元(2km以內(nèi)),2km后,0.8元/0.5km;要求每500m刷新計費一次,在8位數(shù)碼管中,前三位顯示數(shù)碼管顯示里程數(shù),后三位數(shù)碼管顯示價錢(角,元,十元)</p><p>  一、出租車計費系統(tǒng)源代碼:</p><p><b>  ORG 0000H</b>&l

27、t;/p><p>  SJMP MAIN</p><p>  ORG 0060H </p><p>  MAIN: MOV TMOD, #60H</p><p>  MOV TH1,#255</p><p>  MOV TL1,#255</p><p>  MOV 70H,#0</p>

28、<p>  MOV 71H,#5</p><p>  MOV 72H,#0</p><p>  MOV 73H,#0</p><p>  MOV 74H,#0</p><p>  MOV 75H,#0</p><p><b>  SETB TR1</b></p><

29、;p>  LOOP4:JBC TF1,LOOP3</p><p>  LCALL DISPS//沒有脈沖調(diào)用路程顯示子程序</p><p>  LCALL DISPR //沒有脈調(diào)用價格顯示程序</p><p>  SJMP LOOP4</p><p>  LOOP3:LCALL BCDS//有脈沖調(diào)用路程bcd轉(zhuǎn)換程序<

30、;/p><p>  LCALL DISPS//有脈沖調(diào)用路程顯示子程序</p><p>  LCALL BCDPR //有脈沖調(diào)用價格bcd轉(zhuǎn)換程序</p><p>  LCALL DISPR //有脈沖調(diào)用價格顯示程序</p><p>  SJMP LOOP4</p><p>  BCDS: MOV R0,#73H

31、 //路程bcd轉(zhuǎn)換程序</p><p>  F3: INC @R0</p><p>  CJNE @R0,#10,F2</p><p>  MOV @R0,#0</p><p><b>  INC R0</b></p><p>  CJNE R0,#76H,F3</p>&

32、lt;p><b>  F2: RET</b></p><p>  DISPS:MOV DPTR,#TAB //路程顯示子程序</p><p><b>  MOV A,73H</b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,

33、A</b></p><p><b>  MOV P2,#3</b></p><p>  LCALL DELAY</p><p>  MOV P0,#0FFH </p><p><b>  MOV A,74H</b></p><p>  MOVC A,@A+

34、DPTR</p><p><b>  MOV P0,A</b></p><p><b>  MOV P2,#4</b></p><p>  LCALL DELAY</p><p>  MOV P0,#0FFH </p><p><b>  MOV A,75H<

35、;/b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p><b>  MOV P2,#5</b></p><p>  LCALL DELAY</p><p>  MOV P0,#0FFH <

36、/p><p><b>  RET</b></p><p>  BCDPR:CJNE R7,#4,L1 //價格bcd轉(zhuǎn)換程序</p><p><b>  SJMP L2</b></p><p>  L1: INC R7</p><p>  MOV 70H,#0

37、 </p><p>  MOV 70H,#5 </p><p>  MOV 70H,#0</p><p><b>  SJMP L6 </b></p><p>  L2: MOV R1,#70H</p><p><b>  MOV A,@R1</b></p>

38、<p><b>  ADD A,#8</b></p><p><b>  MOV @R1,A</b></p><p>  SUBB A,#10</p><p>  JNC L5 //大于等于10轉(zhuǎn)L5</p><p>  SJMP L6 //小于10轉(zhuǎn)L6<

39、/p><p>  L5: MOV A,@R1</p><p><b>  MOV B,#10</b></p><p><b>  DIV AB</b></p><p><b>  XCH A,B</b></p><p>  MOV @R1,A</

40、p><p><b>  INC R1</b></p><p><b>  INC @R1</b></p><p>  CJNE R1,#73H,L7</p><p>  MOV 73H,#0</p><p><b>  SJMP L6</b></p&g

41、t;<p>  L7: CJNE @R1,#10,L6</p><p>  SJMP L5 </p><p><b>  L6: RET</b></p><p>  DISPR:MOV DPTR,#TAB //價格顯示程序</p><p><b>  MOV A,70

42、H</b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p><b>  MOV P2,#0</b></p><p>  LCALL DELAY</p><p>  MOV P0,#0FFH

43、 </p><p><b>  MOV A,71H</b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p><b>  MOV P2,#1</b></p><p>  LCALL

44、 DELAY</p><p>  MOV P0,#0FFH </p><p><b>  MOV A,72H</b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p><b>  MOV P2,

45、#2</b></p><p>  LCALL DELAY</p><p>  MOV P0,#0FFH </p><p><b>  RET</b></p><p>  TAB: DB 0C0H,0F9H,0A4H,0B0H,99H</p><p>  DB 92H,82H,0F8

46、H,80H,90H</p><p>  DELAY:MOV R3,#8</p><p>  DL: MOV R2,#255</p><p><b>  DJNZ R2,$</b></p><p>  DJNZ R3,DL</p><p><b>  RET</b><

47、/p><p><b>  END </b></p><p>  二、出租車計費系統(tǒng)流程圖</p><p>  三、出租車計費系統(tǒng)仿真圖</p><p>  四、出租車計費系統(tǒng)源代碼:</p><p><b>  ORG 0000H</b></p><

48、p>  SJMP MAIN</p><p><b>  ORG 0060H</b></p><p>  MAIN: MOV TMOD, #60H</p><p>  MOV TH1,#255</p><p>  MOV TL1,#255</p><p>  MOV 70H,#0</p

49、><p>  MOV 71H,#5</p><p>  MOV 72H,#0</p><p>  MOV 73H,#0</p><p>  MOV 74H,#0</p><p>  MOV 75H,#0</p><p><b>  SETB TR1</b></p>

50、<p>  LOOP4:JBC TF1,LOOP3</p><p>  LCALL DISPS;沒有脈沖調(diào)用路程顯示子程序</p><p>  LCALL DISPR ;沒有脈調(diào)用價格顯示程序</p><p>  SJMP LOOP4</p><p>  LOOP3:LCALL BCDS ;有脈沖調(diào)用路程b

51、cd轉(zhuǎn)換程序</p><p>  LCALL DISPS;有脈沖調(diào)用路程顯示子程序</p><p>  LCALL BCDPR ;有脈沖調(diào)用價格bcd轉(zhuǎn)換程序</p><p>  LCALL DISPR ;有脈沖調(diào)用價格顯示程序</p><p>  SJMP LOOP4</p><p>  BCDS:

52、 ;路程轉(zhuǎn)化</p><p><b>  MOV A,73H</b></p><p><b>  ADD A,#5</b></p><p><b>  MOV 73H,A</b></p><p>  CJNE A,#10,BTOM</p>

53、<p>  MOV 73H,#0</p><p><b>  INC 74H</b></p><p><b>  MOV A,74H</b></p><p>  CJNE A,#10,BTOM</p><p>  MOV 74H,#0</p><p><b&

54、gt;  INC 75H</b></p><p><b>  MOV A,75H</b></p><p>  CJNE A,#10,BTOM</p><p>  MOV 75H,#0</p><p><b>  BTOM: RET</b></p><p>  DI

55、SPS:MOV DPTR,#TAB ;路程顯示子程序</p><p><b>  MOV A,73H</b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p><b>  MOV P2,#3</b>&l

56、t;/p><p>  LCALL DELAY</p><p>  MOV P0,#0FFH</p><p><b>  MOV A,74H</b></p><p>  MOVC A,@A+DPTR</p><p>  ANL A,#7FH</p><p><b>  

57、MOV P0,A</b></p><p><b>  MOV P2,#4</b></p><p>  LCALL DELAY</p><p>  MOV P0,#0FFH</p><p><b>  MOV A,75H</b></p><p>  MOVC A,@

58、A+DPTR</p><p><b>  MOV P0,A</b></p><p><b>  MOV P2,#5</b></p><p>  LCALL DELAY</p><p>  MOV P0,#0FFH</p><p><b>  RET</b>

59、;</p><p>  BCDPR: MOV A,75H ;費用轉(zhuǎn)化</p><p>  CJNE A,#0,SUB11</p><p><b>  MOV A,74H</b></p><p>  CJNE A,#2,SUB1</p><p><b>  

60、MOV A,73H</b></p><p>  CJNE A,#0,SUB11</p><p>  SJMP FIVEY</p><p>  SUB1: JC FIVEY</p><p>  SUB11: MOV A,70H</p><p><b>  ADD A,#8</b><

61、/p><p><b>  MOV 70H,A</b></p><p>  CJNE A,#10,SUB2</p><p><b>  SJMP SUB3</b></p><p>  SUB2: JC BTOM2</p><p>  SUB3: SUBB A,#10</p&g

62、t;<p><b>  MOV 70H,A</b></p><p><b>  INC 71H</b></p><p><b>  MOV A,71H</b></p><p>  CJNE A,#10,BTOM2</p><p>  MOV 71H,#0</

63、p><p><b>  INC 72H</b></p><p><b>  MOV A,72H</b></p><p>  CJNE A,#10,BTOM2</p><p>  MOV 72H,#0</p><p>  SJMP BTOM2</p><p>

64、;  FIVEY: MOV 71H,#5</p><p>  BTOM2: RET</p><p>  DISPR:MOV DPTR,#TAB ;價格顯示程序</p><p><b>  MOV A,70H</b></p><p>  MOVC A,@A+DPTR</p><p>

65、<b>  MOV P0,A</b></p><p><b>  MOV P2,#0</b></p><p>  LCALL DELAY</p><p>  MOV P0,#0FFH</p><p><b>  MOV A,71H</b></p><p>

66、;  MOVC A,@A+DPTR</p><p>  ANL A,#7FH</p><p><b>  MOV P0,A</b></p><p><b>  MOV P2,#1</b></p><p>  LCALL DELAY</p><p>  MOV P0,#0FFH

67、</p><p><b>  MOV A,72H</b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p><b>  MOV P2,#2</b></p><p>  LCALL DE

68、LAY</p><p>  MOV P0,#0FFH</p><p><b>  RET</b></p><p>  TAB: DB 0C0H,0F9H,0A4H,0B0H,99H</p><p>  DB 92H,82H,0F8H,80H,90H</p><p>  DELAY:MOV R3,

69、#3</p><p>  DL: MOV R2,#100</p><p><b>  DJNZ R2,$</b></p><p>  DJNZ R3,DL</p><p><b>  RET</b></p><p><b>  END</b><

70、/p><p><b>  單片機課程設計心得</b></p><p>  兩周的單片機課程設計,真的讓我們每一位同學收獲甚多,受益匪淺。不管怎樣,我首先還是感謝我們的學校領導給了我們這么多自己動手設計的機會,同時感謝我們的帶領老師——李祥飛教授!你們真的辛苦了。</p><p>  因為前段有兩門功課同時面臨期末考試,為了得到更多時間復習,讓自己有

71、一個稱心如意的分數(shù),所以我們真正開始做設計的時間是12月25號。其實21號老師已經(jīng)公布了設計課題,并且講解了0~255計數(shù)與0~999999計數(shù)程序,這些只是我們做出租車計費課程設計的一個基礎。要想順利完成出租車計費課程設計,還必須更深入地去了解更多關于硬件與軟件方面的知識,熟練掌握相關指令的應用。</p><p>  0~255的仿真是比較容易的,老師講解的程序思路也比較清楚,由于255沒有超過八位二進制數(shù),所

72、以選用定時器T1工作方式2再好不過了,而且能夠?qū)崿F(xiàn)自動重裝,這能實現(xiàn)更加精確的計數(shù)功能。而0~999999計數(shù)就不能用這種方式了,但可以把TH1和TL1賦予最大數(shù),每來一個脈沖TF1就變?yōu)?,檢測TF1是否為1即可判斷是否有脈沖。每來一個脈沖,個位數(shù)加1,當個位滿10,個位清0,十位數(shù)進1;一直到十位為10,十位數(shù)清0,百位數(shù)進1;如此直到第六位。其實我把大多心思都放在出租車計費系統(tǒng)上面,這個程序的復雜度還真難倒了好幾個人,但是終究還是

73、被我們幾個同學一起討論出來了,基本能實現(xiàn)設計要求,但是程序相對來說比較復雜,繁瑣,可讀性不高,甚至很多同學都說顯示子程序很難讀懂,為了提高可讀性,簡化程序,我們又把路程顯示子程序與價格顯示子程序分開,這樣思路就更清晰明了。在價格顯示時,前四個脈沖代表兩公里,價格均為5元(起步價),之后每來一個脈沖,價格加0.8元,低位超過10向高位進1。如此反復計數(shù),當顯示里程的第二個數(shù)碼管與顯示價錢的第二個數(shù)碼管通過三-八譯碼器點亮時,必須通過“與”

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論