微機原理與接口技術(shù)課程設(shè)計報告計程車計價器
《微機原理與接口技術(shù)課程設(shè)計報告計程車計價器》由會員分享,可在線閱讀,更多相關(guān)《微機原理與接口技術(shù)課程設(shè)計報告計程車計價器(20頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、微機原理與接口技術(shù) 信息科學(xué)與技術(shù)學(xué)院 微機原理與接口技術(shù) 課程設(shè)計報告 課 程 題 目: 計程車計價器 學(xué) 生 姓 名: 劉郁 學(xué) 號: 2009082212 專業(yè)、年級 : 計科09級一班 指 導(dǎo) 教 師: 裘 祖 旗 時 間: 2012年1月11 18 1.題目要求 1 1.1 題目:
2、計程車計價器 1 1.2 要求 1 2、 功能設(shè)計 1 2. 1 輸出字符串宏 (str) 1 2.2 定義光標定位宏 1 2.3 清屏宏 (clearscreen) 1 2.4 延時模塊 1 2.5 數(shù)字顯示模塊 1 2.6 數(shù)字自增模塊 2 2.7 設(shè)置單價模塊 2 3、 詳細設(shè)計 2 3.1 主函數(shù) 2 3.2 輸出字符串宏模塊 3 3.1.1 本設(shè)計的方法,計算公式 3 3.1.3 本設(shè)計的重點、難點和解決方法 3 3.3將數(shù)字顯示成數(shù)管的形式的disp子程序 3 3.4 實現(xiàn)自加功能 4 3.5 延時模塊的實現(xiàn) 4 4.程序運行
3、界面 5 5.總結(jié) 5 6.參考文獻: 6 7.附原程序: 6 1.題目要求 1.1 題目:計程車計價器 1.2 要求 1. 實現(xiàn)計價功能; 2. 實現(xiàn)手動設(shè)計單價 3. 實現(xiàn)顯示里程、單價與總價 2、 功能設(shè)計 2. 1 輸出字符串宏 (str) 功能:將字符串定義在宏里面,然后輸出。 2.2 定義光標定位宏 功能:指定光標的位置。 2.3 清屏宏 (clearscreen) 功能:設(shè)置開始和結(jié)尾的行列數(shù)以及屬性。 2.4 延時模塊 功能:延緩每次顯示的時間,使之能夠準確的輸出。 2.5 數(shù)字顯示模塊 功能:顯示所有的數(shù)字內(nèi)
4、容,其中包括行駛過程中的價格,和里程的顯示。在數(shù)據(jù)段中定義數(shù)字的格式,通過中斷顯示出數(shù)字能容。光標定位,使數(shù)字顯示在指定的位置。 2.6 數(shù)字自增模塊 功能:設(shè)計程車每走100m,總價格增加0.2元,起步價為5元。此時在行駛的里程中,不斷的加100m,當達到3km的時候,通過cx的判斷,使價格從5元開始,每走100m加0.2元。需要用到延時程序,和跳轉(zhuǎn)功能。 2.7 設(shè)置單價模塊 功能:手動設(shè)置單價,設(shè)定每公里要走的單價。在數(shù)據(jù)段定義后,每輸入一次,通過取數(shù)據(jù)段的數(shù)據(jù),完成定價的功能 3、 詳細設(shè)計 3.1 主函數(shù) 主函數(shù)main 定義界面 Inc cx 顯示
5、總價,顯示里程 顯示總價,價格增加0.2元/100m 顯示 不響應(yīng) 從鍵盤輸入字符 Cx<32? Cmp’s’ Cmp‘g’ Y Y Y N N N 3.2 輸出字符串宏模塊 3.1.1 本設(shè)計的方法,計算公式 顯示字符串是本模塊的功能,方法是將字符串傳送到’dx’中,然后用’09’中斷輸出。 str Dx ax壓棧 字符—>dx 輸出 Ax dx出棧 結(jié)束 3.1.2 本模塊的流程圖 3.1.3 本設(shè)計的重點、難點和解決方法
6、 我認為本設(shè)計的重點和難點在于字符串的傳送,解決方法在于用09輸出和字符串的定義一起搭配使用。 3.3將數(shù)字顯示成數(shù)管的形式的disp子程序 置光標位置 取disptime中的時的十位至al 將取得數(shù)字乘以16得到其對應(yīng)在 shuzi段的對應(yīng)顯示 顯示字符串 重復(fù)上述過程,將時分秒全部顯示 置光標,并顯示字符串 置光標,并顯示字符串 Dx加06 3.4 實現(xiàn)自加功能 moval,[ valuenum+6] inc al mov [valuenum+6],al Cmp al,10 N y m
7、ov [valuenum+6],00h mov al,[valuenum+4] inc al mov [valuenum+4],al 直到最后完成最高位進位 3.5 延時模塊的實現(xiàn) Mov bl,75d 3.6 Mov cx,6632d 檢測61h端口的第四位,直到第四位發(fā)生改變 Cx-1>0 Y N Bl-1>0 Y N 結(jié)束 4.程序運行界面 5.總結(jié) 在這次的課程設(shè)計中,學(xué)到的知識有很多,收獲也不小??梢詮睦碚摻Y(jié)合實際,可以把身邊的一些所涉及到的編程
8、工具自己也能夠體會和學(xué)習(xí)一下。比如這次所做的計程車計價器。由于能力有限不能拿單片機或仿真的工具來做,只是用匯編基礎(chǔ)的模擬了一下,其中也了解到了最基本的原理,鍛煉了自己的基礎(chǔ)知識水平??梢杂玫綄淼膶嶋H應(yīng)用當中。能夠體會到其中的樂趣。 但是這次也有許多的問題,首先是自己的編程水平不好,所以做起來速度很慢,需要以后多多練習(xí),實驗。有些功能還沒有能夠?qū)崿F(xiàn),所以還需要進一步的學(xué)習(xí),要學(xué)的知識還有很多,還應(yīng)該花更多的精力在這些方面,這樣才能夠提高自己的專業(yè)水平。 匯編語言和微機接口原理也是最基層的計算機語言和最接近硬件的,只有了解了這里的本質(zhì),才能更有效準確的運用其他工具。 6.參考文獻:
9、 [1] 《IBM-PC匯編語言程序設(shè)計》 沈美明 清華大學(xué)出版社 2001年8月第2版 [2] 《IBM-PC匯編語言程序設(shè)計例題習(xí)題集》沈美明 清華大學(xué)出版社 1991年6月第1版 [3] 《微機系統(tǒng)和接口應(yīng)用技術(shù)》朱世鴻 著 清華大學(xué)出版社 2006年9月第1版 7.附原程序: data segment valuenum db 00,00,00,".",00,"$";distance valuenum3 db 00,00,05,".",00,"$";price num1 db "total value","$" num2 d
10、b "distance","$" num3 db "km","$" num4 db "yuan","$" stop db "*press s to stop!","$" go_on db"*press g to go on","$" shuzi db " _ ",0dh,0ah,"$" db "| |",0dh,0ah,"$" db "|_|",0dh,0ah,"$" db " ",0dh,0ah,"$" db " |",0dh,0ah,"$" db " |",
11、0dh,0ah,"$" db " _ ",0dh,0ah,"$" db " _|",0dh,0ah,"$" db "|_ ",0dh,0ah,"$" db " _ ",0dh,0ah,"$" db " _|",0dh,0ah,"$" db " _|",0dh,0ah,"$" db " ",0dh,0ah,"$" db "|_|",0dh,0ah,"$" db " |",0dh,0ah,"$"
12、 db " _ ",0dh,0ah,"$" db "|_ ",0dh,0ah,"$" db " _|",0dh,0ah,"$" db " _ ",0dh,0ah,"$" db "|_ ",0dh,0ah,"$" db "|_|",0dh,0ah,"$" db " _ ",0dh,0ah,"$" db " |",0dh,0ah,"$" db " |",0dh,0ah,"$" db " _ ",0dh,0ah,"
13、$" db "|_|",0dh,0ah,"$" db "|_|",0dh,0ah,"$" db " _ ",0dh,0ah,"$" db "|_|",0dh,0ah,"$" db " _|",0dh,0ah,"$" data ends poscurse macro dh1,dl1 ;定義光標定位宏 push ax push bx push dx mov ah,2h mov bh,0h mov dh,dh1
14、 mov dl,dl1 int 10h pop dx pop bx pop ax endm code segment assume cS:code,ds:data main proc far mov ax,data mov ds,ax clear macro aL1,bh1,ch1,cl1,dh1,dl1 MOV AH,06H mov aL,aL1 mov bh,bh1 mov ch,ch1 mov cl,cl1
15、 mov dh,dh1 mov dl,dl1 INT 10H endm clear 0,01000000b,2,3,20,75 clear 0,00011110b,5,5,18,73 mov cx,0 B: inc cx cmp cx,32 jz c call disp3 call delay call disp2 call delay call delay call inc_2 c
16、all delay mov ah,0bh int 21h inc al jnz b mov ah,01h int 21h cmp al,s jnz b jmp a c: clear 0,01000000b,2,3,20,75 clear 0,00011110b,5,5,18,73 call disp1;顯示價格 call delay call inc_1;價格加2 call delay call disp2;顯示里程 call delay
17、 call inc_2;里程加2 call delay mov ah,0bh int 21h inc al jnz c mov ah,01h int 21h cmp al,s jnz c jmp a m:jmp b a: mov ah,0bh int 21h inc al jnz a mov ah,01h int 21h cmp al,g jnz a mov al,[valuenum] cmp al,0 ja c mov al,[valuenum+1] cmp al,0
18、 ja c mov al,[valuenum+2] cmp al,3 ja c cmp al,3 jnz m jmp c RET main endp ;-----output子程序----- output proc near push ax mov ah,09h int 21h pop ax ret output endp ;inc_1 子程序 inc_1 proc near push ax mov al,[valuenum3+4] inc al
19、inc al mov [valuenum3+4],al cmp al,0ah jnz return3 mov [valuenum3+4],00h mov al,[valuenum3+2] inc al mov [valuenum3+2],al cmp al,0ah jnz return3 mov [valuenum3+2],00h mov
20、 al,[valuenum3+1] inc al mov [valuenum3+1],al cmp al,0ah jnz return3 mov [valuenum3+1],00h mov al,[valuenum] inc al mov [valuenum3],al cmp al,0ah jnz return3 mov [valuenum3],00h re
21、turn3:pop ax ret inc_1 endp ;inc_2 子程序 inc_2 proc near push ax mov al,[valuenum+4] inc al mov [valuenum+4],al cmp al,0ah jnz return mov [valuenum+4],00h mov al,[valuenum+2] inc al m
22、ov [valuenum+2],al cmp al,0ah jnz return mov [valuenum+2],00h mov al,[valuenum+1] inc al mov [valuenum+1],al cmp al,0ah jnz return mov [valuenum+1],00h mov al,[valuenum] inc al
23、 mov [valuenum],al cmp al,0ah jnz return mov [valuenum],00h return:pop ax ret inc_2 endp ;-----delay子程序----- delay proc near push bx push ax push cx mov bl,75d waitf2: mov cx,1000d waitf1: in al,61h and al,10h cmp al,ah
24、 je waitf1 mov ah,al loop waitf1 dec bl cmp bl,0 jnz waitf2 pop cx pop ax pop bx ret delay endp ;-----disp1子程序, 從5開始顯示----- disp1 proc near lea dx,num1 poscurse 09h,6h call output lea dx,num2 poscurse 0ch,08h call output
25、 lea dx,num3 poscurse 0ch,23h call output lea dx,num4 poscurse 09h,23h call output lea dx,stop poscurse 12h,06h call output lea dx,go_on poscurse 12h,30h mov ah,09h int 21h mov al,[valuenum3] mov bl,12h
26、 mul bl mov dx,offset shuzi poscurse 07h,13h add dx,ax call output poscurse 08h,13h add dx,06h call output poscurse 09h,13h add dx,06h call output poscurse 07h,16h mov al,[valuenum3+1] mov bl
27、,12h mul bl mov dx,offset shuzi poscurse 07h,16h add dx,ax call output poscurse 08h,16h add dx,06h call output poscurse 09h,16h add dx,06h call output poscurse 07h,19h mov al,[valuenum3+2] mov bl,12h
28、 mul bl mov dx,offset shuzi poscurse 07h,19h add dx,ax call output poscurse 08h,19h add dx,06h call output poscurse 09h,19h add dx,06h call output poscurse 09h,1ch mov dl,2eh mov ah,02h int 21h
29、 poscurse 07h,1eh mov al,[valuenum3+4] mov bl,12h mul bl mov dx,offset shuzi poscurse 07h,1eh add dx,ax call output poscurse 08h,1eh add dx,06h call output poscurse 09h,1eh add dx,06h call output
30、 ret disp1 endp ;-----disp2子程序----- disp2 proc near push ax mov al,[valuenum] mov bl,12h mul bl mov dx,offset shuzi poscurse 0ah,13h add dx,ax call output poscurse 0bh,13h add dx,06h call output
31、 poscurse 0ch,13h add dx,06h call output poscurse 0ah,16h mov al,[valuenum+1] mov bl,12h mul bl mov dx,offset shuzi poscurse 0ah,16h add dx,ax call output poscurse 0bh,16h add dx,06h call output p
32、oscurse 0ch,16h add dx,06h call output poscurse 0ah,19h mov al,[valuenum+2] mov bl,12h mul bl mov dx,offset shuzi poscurse 0ah,19h add dx,ax call output poscurse 0bh,19h add dx,06h call output poscurse
33、 0ch,19h add dx,06h call output poscurse 0ch,1ch mov dl,2eh mov ah,02h int 21h poscurse 0ah,1eh mov al,[valuenum+4] mov bl,12h mul bl mov dx,offset shuzi poscurse 0ah,1eh add dx,ax call output
34、 poscurse 0bh,1eh add dx,06h call output poscurse 0ch,1eh add dx,06h call output pop ax ret disp2 endp ;-----disp3子程序----- disp3 proc near lea dx,num1 poscurse 09h,6h mov ah,09h int 21h lea dx,num2 poscurse 0
35、ch,8h mov ah,09h int 21h lea dx,num3 poscurse 0ch,23h call output lea dx,num4 poscurse 09h,23h call output lea dx,stop poscurse 12h,06h mov ah,09h int 21h lea dx,go_on poscurse 12h,30h call output
36、 mov al,[valuenum3] mov bl,12h mul bl mov dx,offset shuzi poscurse 07h,13h add dx,ax call output poscurse 08h,13h add dx,06h call output poscurse 09h,13h add dx,06h call output poscurse 07h,16h
37、 mov al,[valuenum3+1] mov bl,12h mul bl mov dx,offset shuzi poscurse 07h,16h add dx,ax call output poscurse 08h,16h add dx,06h call output poscurse 09h,16h add dx,06h call output poscurse 07h,19h
38、 mov al,[valuenum3+2] mov bl,12h mul bl mov dx,offset shuzi poscurse 07h,19h add dx,ax call output poscurse 08h,19h add dx,06h call output poscurse 09h,19h add dx,06h call output poscurse 09h,1ch
39、 mov dl,2eh mov ah,02h int 21h poscurse 07h,1eh mov al,[valuenum3+4] mov bl,12h mul bl mov dx,offset shuzi poscurse 07h,1eh add dx,ax call output poscurse 08h,1eh add dx,06h call output poscurse 09h,1eh add dx,06h call output ret disp3 endp code ends end main
- 溫馨提示:
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)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲成本核算與控制培訓(xùn)課件
- 新員工入職培訓(xùn)思想修養(yǎng)篇(ppt47)
- 同步電機的工作原理及結(jié)構(gòu)特點
- 電影敘事結(jié)構(gòu)模式完整版
- 南州六月荔枝丹課件分析說明方法
- 人教版小學(xué)音樂六下《愛我中華》課件
- &#215;&#215;空調(diào)設(shè)備有限公司整體發(fā)展戰(zhàn)略診斷(PPT 50頁)
- 《酒店培訓(xùn)體系建設(shè)》課件
- 細胞膜系統(tǒng)的結(jié)構(gòu)
- 觸發(fā)器及其應(yīng)用
- 柱體、錐體、臺體的表面積與體積
- 萬能險銷售流程和話術(shù)0
- 紅外光譜基本原理
- 3技術(shù)創(chuàng)新管理-(9)
- 函數(shù)的零點(精品)