

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 課程設計任務書</b></p><p> 2010 —2011 學年第 1 學期</p><p> 電氣與信息工程學院 學院(系、部) 專業(yè) 班級</p><p> 課程名稱: 單片機應用系統(tǒng)
2、 </p><p> 設計題目: 對外部脈沖計數(shù)及出租車計費系統(tǒng)的設計 </p><p> 完成期限:自 2011 年 12 月 19 日至 2011 年 12 月 30 日共 2 周</p><p> 指導教師(簽字):
3、 年 月 日</p><p> 系(教研室)主任(簽字): 年 月 日</p><p><b> ?。▎纹瑱C應用系統(tǒng))</b></p><p><b> 設計說明書</b></p><p><
4、;b> 題目:</b></p><p> 起止日期: 2011 年 12 月 19 日 至 2011 年 12 月 30 日</p><p> 電氣與信息工程學院(部)</p><p><b> 年 月 日</b></p><p><b> 一、設計任務:</b&
5、gt;</p><p> 1.1 外部脈沖自動計數(shù),自動顯示。</p><p> 1.1.1設計一個255計數(shù)器:0-255計數(shù),計滿后自動清0,重新計數(shù)(在數(shù)碼管中顯示)。</p><p> 1.1.2設計一個50000計數(shù)器:0-50000計數(shù),計滿后自動清0,重新計數(shù)(在數(shù)碼管中顯示)。</p><p> 1.2 設計一個出租車
6、計費系統(tǒng): </p><p> 起步價為5元(2km以內(nèi)),2km后,0.8元/0.5km;要求每500m刷新計費一次,在8位數(shù)碼管中,前3位顯示數(shù)碼管顯示里程數(shù),后3位數(shù)碼管顯示價錢(角,元,十元,百元)</p><p> 注:要求首先采用PROTEUS完成單片機最小系統(tǒng)的硬件電路設計及仿真;程序仿真測試通過后,
7、再下載到單片機實訓板上執(zhí)行。</p><p><b> 二、設計思路:</b></p><p><b> 1、255計數(shù)</b></p><p> 本設計采用計數(shù)器T0的工作方式2進行計數(shù),由頻率為1Hz的時鐘提供外部脈沖,每接收一個脈沖,便計一個數(shù),直到加到了255后,再給一個脈沖就會回到0。要實現(xiàn)顯示,首先,用T
8、H0除以64H(100D),所得到的商為百位上的數(shù),它會在右起第三個數(shù)碼管顯示;將余數(shù)除以0AH(10D),所得到的商為十位上的數(shù),它在右起的第二位顯示;這時候剩下的余數(shù)便是個位上的數(shù),在右起第一位顯示。</p><p> 本設計采用動態(tài)掃描:當需顯示百位上的數(shù)時,使百位對應的段選入口為高電平,且有短時間延時,然后掃描十位,這是使其段選入口為高電平,再進行延時,然后用同樣的方法掃描個位。由于延時的時間極短,肉眼
9、分辨不出,所以感覺起來像同時亮,而實際是分開顯示的。</p><p><b> 2、50000計數(shù)</b></p><p> 本設計采用計數(shù)器T0的工作方式1進行計數(shù),外部脈沖仍為1Hz的時鐘。這個設計,我是這樣構思的:首先將個位、十位、百位、千位、萬位分別存放在5個寄存器里面,每加一個脈沖,首先判斷最低位是否為十,不為十自加一,為十的話,本位清零,下一位加一;然
10、后再判斷下一位是否為十,不為十自加一,為十的話,本位清零,然后再往后一位加一,直到加到49999時,再給一個脈沖變5位都復位清零,實行新的循環(huán)。掃描方法同255計數(shù),仍為動態(tài),只是位數(shù)增加到5位。</p><p><b> 3、出租車計費器</b></p><p> 設計思路為:每加一個外部脈沖,就等于行走了100米,兩公里內(nèi)5元,所以里程數(shù)從0.0加至2.0時,
11、價格為5.0元不變,當過了兩公里時,每多行走500米(0.5公里),金額增加0.8元</p><p> 三,PROTEUS仿真圖</p><p><b> 1、255計數(shù)</b></p><p><b> 2、50000計數(shù)</b></p><p><b> 3、出租車計費器<
12、;/b></p><p><b> 四、程序</b></p><p><b> 1、255計數(shù)</b></p><p><b> ORG 0000H</b></p><p> SJMP START</p><p><b> OR
13、G 000BH</b></p><p><b> AJMP T0</b></p><p> START: MOV TMOD,#06H ;設置計數(shù)器T0工作方式2</p><p> MOV P1,#0 ;P1口清零</p><p> MOV TH0,#00H&
14、lt;/p><p> MOV TL0,#00H ;初始化</p><p> MOV P3,#0 ;P3口清零</p><p> MOV DPTR,#TAB ;賦予查表首地址</p><p> SETB EA ;總中斷控制設為“1”</p&g
15、t;<p> SETB ET0 ;T0中斷允許控制設為“1”</p><p> SETB TR0 ;打開T0開關</p><p> AAA: MOV A,TL0 ;A賦初值</p><p> MOV B,#64H ;除數(shù)為100&l
16、t;/p><p> DIV AB ;相除</p><p> MOV R0,B ;存余數(shù)</p><p> MOVC A,@A+DPTR ;查表</p><p> MOV P2,A ;顯示百位的數(shù)字</p>
17、<p> SETB P1.2 ;選位</p><p> ACALL DELAY ;延時</p><p><b> CLR P1.2</b></p><p> MOV A,R0 ;將之先的余數(shù)賦A</p><p>
18、MOV B,#0AH ;除數(shù)為10</p><p> DIV AB ;相除</p><p> MOV R1,B ;存余數(shù)</p><p> MOVC A,@A+DPTR ;查表</p><p> MOV P2,A
19、 ;顯示十位的數(shù)字</p><p> SETB P1.1 ;選位</p><p> ACALL DELAY ;延時</p><p><b> CLR P1.1</b></p><p> MOV A,R1
20、 ;個位數(shù)賦A</p><p> MOVC A,@A+DPTR ;查表</p><p> MOV P2,A ;顯示個位的數(shù)字</p><p> SETB P1.0 ;位選</p><p> ACALL DELAY ;延時<
21、/p><p><b> CLR P1.0</b></p><p> T0: AJMP AAA</p><p> DELAY: MOV R7,#10 ;子延時程序</p><p> DE1:MOV R6,#50</p><p> DE2:DJNZ R6,DE2<
22、/p><p> DJNZ R7,DE1</p><p><b> RET</b></p><p> TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH</p><p><b> 2、50000計數(shù)<
23、;/b></p><p><b> ORG 0000H</b></p><p> SJMP START</p><p><b> ORG 000BH</b></p><p><b> AJMP T0</b></p><p> START:
24、 MOV TMOD,#05H ; 用計數(shù)器T0工作方式1進行工作</p><p> MOV P1,#0 ; 將P1口置0</p><p> MOV TH0,#0FFH ;</p><p> MOV TL0,#0FFH ; 計數(shù)器初始化,有一個脈
25、沖即中斷</p><p> MOV P3,#0 ; 將P3口置0</p><p> CLR C ; C置0</p><p> MOV DPTR,#TAB ; 指針指向TAB</p><p> SETB EA
26、 ; 總中斷控制設為“1”</p><p> SETB ET0 ; T0中斷允許控制設為“1”</p><p> MOV R0,#0 ; 個位值清零</p><p> MOV R1,#0 ; 十位值清零</p><
27、p> MOV R2,#0 ; 百位值清零</p><p> MOV R3,#0 ; 千位值清零</p><p> MOV R4,#0 ; 萬位值清零 </p><p> SETB TR0 ; 打開T0開關&
28、lt;/p><p> ACALL T1 ; 顯示加等待中斷</p><p> T0: MOV TH0,#0FFH ;</p><p> MOV TL0,#0FFH ; 中斷將計數(shù)器初始化</p><p> INC R0
29、 ; R0自加1</p><p> MOV A,R0 ; 將R0的值賦入A中</p><p> CJNE A,#10,AAA ; 比較A是否等于十,如果為十則進位,未滿十就繼續(xù)計數(shù)</p><p> MOV R0,#0 ; R0置0</p>
30、;<p> INC R1 ; 進位到十位</p><p> AAA: MOVC A,@A+DPTR ; 查表</p><p> MOV P2,A ;</p><p> SETB P1.0 ; 顯示個位</p
31、><p> ACALL DELAY ; 延時</p><p> CLR P1.0 ;</p><p> MOV A,R1 ; R1的值賦入A中</p><p> CJNE A,#10,BBB ; 比較,是否進位
32、</p><p> MOV R1,#0 ; 進位 R1置0</p><p> INC R2 ; 進位到百位</p><p> BBB: MOVC A,@A+DPTR ; 查表</p><p> MOV P2,A
33、 ;</p><p> SETB P1.1 ; 顯示十位</p><p> ACALL DELAY ; 延時</p><p> CLR P1.1 ;</p><p> MOV A,R2 ;
34、R2賦入百位</p><p> CJNE A,#10,CCC ; 比較,是否進位</p><p> MOV R2,#0 ; 進位,R2置0</p><p> INC R4 ; 進位到千位</p><p> CCC: MOVC A,@A+D
35、PTR ; 查表</p><p><b> MOV P2,A</b></p><p> SETB P1.2 ; 顯示百位</p><p> ACALL DELAY ; 延時</p><p><b> CLR P
36、1.2</b></p><p> MOV A,R3 ; R3賦入A中</p><p> CJNE A,#10,DDD ; 比較,是否進位</p><p> MOV R3,#0 ; 進位置0</p><p> INC R4
37、 ; 進位到萬位</p><p> DDD: MOVC A,@A+DPTR ; 查表</p><p><b> MOV P2,A</b></p><p> SETB P1.3 ; 顯示千位</p><p> ACALL DEL
38、AY ; 延時</p><p><b> CLR P1.3</b></p><p> MOV A,R4 ; R4賦入A中</p><p> CJNE A,#5,EEE ; 比較萬位是否到5</p><p> MOV
39、R4,#0 ; 萬位到5時置0</p><p><b> MOV R3,#0</b></p><p> EEE: MOVC A,@A+DPTR ; 查表</p><p> MOV P2,A ;</p><p> SETB
40、P1.4 ; 顯示萬位</p><p> ACALL DELAY ; 延時</p><p><b> CLR P1.4</b></p><p><b> RETI</b></p><p> T1:MOV A,R0
41、 ; 等待中斷時調(diào)用</p><p> MOVC A,@A+DPTR</p><p><b> MOV P2,A</b></p><p><b> SETB P1.0</b></p><p> ACALL DELAY</p><p>&l
42、t;b> CLR P1.0</b></p><p><b> MOV A,R1</b></p><p> MOVC A,@A+DPTR</p><p><b> MOV P2,A</b></p><p><b> SETB P1.1</b></
43、p><p> ACALL DELAY</p><p><b> CLR P1.1</b></p><p><b> MOV A,R2</b></p><p> MOVC A,@A+DPTR</p><p><b> MOV P2,A</b><
44、/p><p><b> SETB P1.2</b></p><p> ACALL DELAY</p><p><b> CLR P1.2</b></p><p><b> MOV A,R3</b></p><p> MOVC A,@A+DPTR&l
45、t;/p><p><b> MOV P2,A</b></p><p><b> SETB P1.3</b></p><p> ACALL DELAY</p><p><b> CLR P1.3</b></p><p><b> MOV A
46、,R4</b></p><p> MOVC A,@A+DPTR</p><p><b> MOV P2,A</b></p><p><b> SETB P1.4</b></p><p> ACALL DELAY</p><p><b> CLR
47、 P1.4</b></p><p><b> AJMP T1</b></p><p> DELAY:MOV R7,#10</p><p> DE1:MOV R6,#50</p><p> DE2:DJNZ R6,DE2</p><p> DJNZ R7,DE1</p&g
48、t;<p><b> RET</b></p><p> TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH</p><p><b> 3、出租車計費系統(tǒng)</b></p><p><b>
49、 ORG 0000H</b></p><p> LJMP START</p><p><b> ORG 000BH</b></p><p><b> LJMP T0</b></p><p> JIAO EQU 20H</p><p> YUAN EQ
50、U 21H</p><p> SHIY EQU 22H</p><p> BAIY EQU 23H</p><p> BAIMI EQU 24H</p><p> LI EQU 25H</p><p> SHILI EQU 26H</p><p><b> ORG 20
51、00H</b></p><p> START:MOV TMOD,#06H ;設置計數(shù)器T0工作方式2</p><p> MOV TH0,#0FFH ;</p><p> MOV TL0,#0FFH ;初始化</p><p> SETB EA
52、 ;總中斷控制設為“1”</p><p> SETB ET0 ;T0中斷允許控制設為“1”</p><p> SETB TR0 ;打開TR0開關</p><p><b> CLR JIAO</b></p><p> MOV YUAN,#5
53、 ;從5元開始計費</p><p><b> CLR SHIY</b></p><p><b> CLR BAIY</b></p><p><b> CLR BAIMI</b></p><p><b> CLR LI</b></p>
54、<p><b> CLR SHILI</b></p><p> MOV R0,#21 ;超過了兩公里換另一種計費方式</p><p> MOV DPTR,#TAB</p><p> A0: ACALL XS</p><p><b> AJMP A0</b>
55、;</p><p> T0: INC BAIMI</p><p> DJNZ R0,H0</p><p> MOV R0,#5 ;每500米更新一次金額</p><p> B1: MOV A,JIAO</p><p> ADD A,#8 ;每次走500
56、米,金額加0.8元</p><p> MOV JIAO,A</p><p> CJNE A,#10,Z0 ;比較是否滿十,滿十僅進位</p><p> MOV JIAO,#0</p><p><b> INC YUAN</b></p><p><b> SJ
57、MP Z1</b></p><p><b> Z0: JC Z1</b></p><p> SUBB A,#10</p><p> MOV JIAO,A</p><p><b> INC YUAN</b></p><p> Z1: MOV A,YUAN&
58、lt;/p><p> CJNE A,#10,Z2 ;比較是否滿十,滿十僅進位</p><p> MOV YUAN,#0</p><p><b> INC SHIY</b></p><p> Z2: MOV A,SHIY</p><p> CJNE A,#10,H0
59、 ;比較是否滿十,滿十僅進位</p><p> MOV SHIY,#0</p><p><b> INC BAIY</b></p><p> H0: MOV A,BAIMI</p><p> CJNE A,#10,Y0 ;比較是否滿十,滿十僅進位</p><p&
60、gt; MOV BAIMI,#0</p><p><b> INC LI</b></p><p> Y0: MOV A,LI</p><p> CJNE A,#10,Z3 ;比較是否滿十,滿十僅進位</p><p><b> MOV LI,#0</b></p>
61、;<p><b> INC SHILI</b></p><p> Z3: ACALL XS</p><p><b> ZZZ: RETI</b></p><p> XS: MOV A,JIAO </p><p> MOVC A,@A+DPTR<
62、/p><p> MOV P2,A ;顯示“角”</p><p> SETB P1.0 ; 位選</p><p><b> ACALL W1</b></p><p><b> CLR P1.0</b></p><p>
63、; MOV A,YUAN</p><p> MOV DPTR,#TAB1</p><p> MOVC A,@A+DPTR</p><p> MOV P2,A ;顯示“元”</p><p> SETB P1.1 ;位選</p><p><b&g
64、t; ACALL W1</b></p><p><b> CLR P1.1</b></p><p> MOV DPTR,#TAB</p><p> MOV A,SHIY</p><p> MOVC A,@A+DPTR</p><p> MOV P2,A
65、 ;顯示“十元”</p><p> SETB P1.2 ;位選</p><p><b> ACALL W1</b></p><p><b> CLR P1.2</b></p><p> MOV A,BAIY</p><p>
66、 MOVC A,@A+DPTR</p><p> MOV P2,A ;顯示“百元”</p><p> SETB P1.3 ;位選</p><p><b> ACALL W1</b></p><p><b> CLR P1.3</b
67、></p><p> MOV A,BAIMI </p><p> MOVC A,@A+DPTR</p><p> MOV P2,A ;顯示“百米”(0.1公里)</p><p> SETB P1.4 ;位選</p><
68、p><b> ACALL W1</b></p><p><b> CLR P1.4</b></p><p> MOV DPTR,#TAB1</p><p><b> MOV A,LI</b></p><p> MOVC A,@A+DPTR</p>
69、<p> MOV P2,A ;顯示“公里數(shù)”</p><p> SETB P1.5 ;位選</p><p><b> ACALL W1</b></p><p><b> CLR P1.5</b></p><p> MO
70、V DPTR,#TAB</p><p> MOV A,SHILI</p><p> MOVC A,@A+DPTR</p><p> MOV P2,A ;顯示“十公里數(shù)”</p><p> SETB P1.6 ;位選</p><p><b>
71、 ACALL W1</b></p><p><b> CLR P1.6</b></p><p><b> RET</b></p><p> W1: MOV R7,#10</p><p><b> DJNZ R7,$</b></p><p
72、><b> RET</b></p><p> TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ; 共陽極數(shù)值碼</p><p> TAB1:DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H</p><p> 課程設計體會 本學
73、期的17、18周,我們進行了單片機課程設計。本學期我們已開設單片機原理及設計這門課程,一開始,學的完全是理論,感覺著也是背,那也是背,很乏味,但是一些老師和學長學姐跟我講,單片機是一門很有用的課程,是以后嵌入式跟控制方向的基礎,對畢業(yè)找工作非常有用,所以我還是靜下心來聽課。</p><p> 到學期中期,我們開始單片機實驗課,從那一刻起,我便開始迷上了單片機,每當布置任務,我就會迫不及待地回寢室開始動手,我享受
74、坐在電腦前面設計程序。</p><p> 我原本以為課程設計會跟實驗差不多的難度,可當我開始做時,發(fā)現(xiàn)課程設計并不是那么簡單,找下手點不是那么容易,它把整學期的知識都融合在一起,從簡單的賦值,加減乘除,再到復雜的查表、中斷。查表的關鍵是A實現(xiàn)的變址。A會決定在表中查找的位置。由于計數(shù)器需要外部脈沖,這就需要外部中斷來實現(xiàn),由于計數(shù)范圍不一樣,所以255計數(shù)與50000計數(shù)要用不同的工作方式,另外,由于中斷器不一
75、樣,所置的入口地址也不一樣。</p><p> 然后,還需要硬件結合起來,包括芯片與外部器件。拿芯片來說,一開始,我將數(shù)碼管的七個接口接在P0口上,執(zhí)行程序后發(fā)現(xiàn)數(shù)碼管顯示不了,但是還是有電信號,后來我才想起P0口做通用I/0口需接上拉電阻。于是為了方便,我便接在P2口上。另外一種需要掌握的是七段LED數(shù)碼管的顯示方法。多位七段LED數(shù)碼管有位選引腳跟段選引腳,在做動態(tài)掃描時,要注意不僅要讓數(shù)碼管顯示對應的字符
76、,而且需同時選中該位進行顯示,才能實現(xiàn)想要的功能。</p><p> 255計數(shù)是三個設計中最簡單的,我設計的時候采用工作方式2,就能很快把程序寫出來,若要說難點,也就是動態(tài)掃描那部分,在設計這一塊的時候,我也算是比較費勁了。寫完255計數(shù),我想著50000計數(shù)應該只要稍微改一下就能做出來,但是事實并非如此。因為計數(shù)范圍不同,工作方式不同,選的位數(shù)也不同,所以思路要轉換一下,最后還是做出來了。而出租車計費系統(tǒng)是
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設計---對外部脈沖計數(shù)及出租車計費系統(tǒng)的設計
- 單片機課程設計---對外部脈沖計數(shù)及出租車計費系統(tǒng)的設計
- 單片機課程設計--對外部脈沖計數(shù)及出租車計費系統(tǒng)的設計
- 單片機課程設計報告---對外部脈沖計數(shù)及出租車計費系統(tǒng)的設計
- 對外部脈沖計數(shù)及出租車計費系統(tǒng)的設計課程設計
- 課程設計--對外部脈沖計數(shù)及出租車計費系統(tǒng)的設計
- 單片機課程設計---出租車計費系統(tǒng)
- 單片機課程設計--出租車計費系統(tǒng)
- 單片機課程設計---出租車計費系統(tǒng)
- 單片機課程設計--出租車計費系統(tǒng)
- 單片機課程設計-- 出租車計費系統(tǒng)
- 單片機課程設計---出租車計費系統(tǒng) (2)
- 單片機課程設計報告-- 出租車計費系統(tǒng)
- 單片機課程設計報告---- 出租車計費課程設計
- 單片機課程設計外部脈沖計數(shù)器
- 單片機課程設計——出租車計費器
- 基于單片機的出租車自動計費設計
- 基于單片機出租車計費器的設計
- 單片機課程設計--出租車計價器
- 微機原理單片機課程設計--出租車計價
評論
0/150
提交評論