版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 計算機硬件技術(shù)基礎(chǔ)課程設(shè)計報告</p><p> —出租車計價器設(shè)計(PC鍵盤)</p><p><b> 設(shè)計任務(wù)書</b></p><p><b> 一、設(shè)計題目</b></p><p> 設(shè)計一個計程車計價器,該系統(tǒng)能根據(jù)設(shè)定單價、設(shè)定車速和運行時間實時計算、顯示
2、出車費</p><p><b> 二、設(shè)計要求</b></p><p> 以PC機標準鍵盤為基礎(chǔ),設(shè)計計價器的專用鍵盤功能,并實現(xiàn)。要求用最簡單的硬件連接實現(xiàn)最方便的參數(shù)設(shè)置、模擬啟動、模擬停車功能。</p><p> 設(shè)計計價器的參數(shù)設(shè)置功能,包括單價的設(shè)定、車速的設(shè)定或車輪周長的設(shè)定,并實現(xiàn)。</p><p>
3、 設(shè)計計價器的實時車費顯示功能,并實現(xiàn)。</p><p> 各項的功能的設(shè)計應(yīng)合理可行,人機交流方便,畫面美觀,聲音悅耳。</p><p> 計程車運行公里數(shù)的計算方法可采用:</p><p> ?、磐ㄟ^設(shè)置車輪周長與模擬測試計程車行進過程中車輪的轉(zhuǎn)數(shù)得到公里數(shù)。</p><p> ⑵通過設(shè)置車速與已知運行時間得到公里數(shù)。</p
4、><p><b> 目錄</b></p><p> 一.總體方案設(shè)計(附圖)………………………….……....3</p><p> 二.操作說明…………………………………………….…....5</p><p> 三.硬件設(shè)計………………………………………...………..6</p><p>
5、四.程序流程圖………………………………………..……...7</p><p> 1 .主流程圖…………………………………………...…..7</p><p> 2.重要模塊流程…………………………………………..8</p><p> 五.程序清單………………………………………………...12</p><p> 六.設(shè)計感觸………………
6、……………….. ………………37</p><p> 一.總體方案設(shè)計(附圖):</p><p> 關(guān)鍵詞:匯編語言,模塊,動畫顯示,音樂播放,靈活輸入</p><p> 采用模塊化的程序設(shè)計思想.模塊化的設(shè)計具有許多優(yōu)點:其一,便于分塊細化設(shè)計,其二,讓整個主程序思路清晰,結(jié)構(gòu)明了;其三,各個模塊獨立進行調(diào)試,當程序出現(xiàn)錯誤時,以便于糾錯。本方案共分為五個部
7、分:初始化,啟動,音樂播放,運行,結(jié)束。以下逐一進行詳細闡述。</p><p> 初始化:主要由以下兩個部分組成,最初數(shù)據(jù)的輸入和屏幕的初始化。數(shù)據(jù)的輸入即單價,起步價,車輸?shù)脑O(shè)定,在輸入時可以輸入小數(shù),再經(jīng)過計算處理后,顯示的也可以是小數(shù),這是本方案設(shè)計的特色之一;另一部分是屏幕的初始化,顯示方式采用320*200圖形顯示,屏幕上顯示的內(nèi)容有:單價,起步價,車速,總價,里程以及公路和小車模型。</p&g
8、t;<p> 啟動:在設(shè)計本部分時,最初采用一般的中斷,無法達到理想的效果,巧妙的運用讀入鍵盤接口的信息進行數(shù)據(jù)的時時輸入,完成對計價器的模擬。當讀鍵盤接口有啟動鍵(小鍵盤4) 時指引程序往下運行,并修改車輛運行標志(▲),播放一段音樂,將總價顯示為起步價的值。</p><p> 音樂播放:采用通用發(fā)聲程序,編譯音樂播放宏(music),建立好歌曲的音符音值表,通過宏調(diào)用實現(xiàn)音樂的播放。這里我們
9、總共有三處音樂,分別是啟動時,暫停時,結(jié)束時,當然,通過對音符音值表的修改,可以設(shè)定出自己想要的音樂,本程序都可以給你播放出來。</p><p> 運行:這是程序的核心,主要包括計價器數(shù)據(jù)(單價,起步價,車速,總價,里程)的時時顯示,車速的更改,動畫顯示,也包括計時延遲跟隨車速的修改(動畫顯示和數(shù)據(jù)的刷新和延遲正相關(guān)),運行控制的檢測處理(暫停?暫停后的繼續(xù)、停止?停止?),后面都將進行詳略有別的說明</
10、p><p> 運行結(jié)束:小鍵盤6為結(jié)束鍵,按下后,數(shù)據(jù)凍結(jié),中線動畫停止,運行標志顯示為Π呈橙色,顯示小車從右至左的動畫,播放一段結(jié)束音樂,本次旅行就結(jié)束了。然后切換到提示再次啟動(此時沿用前次輸入?yún)?shù))的界面。按4再次啟動,按6退出程序</p><p><b> 二.操作說明:</b></p><p> 開始后,程序提示輸入信息,這需要你輸
11、入單價,起步價,車速,可以是不大于999.9的小數(shù)(當然,最好還是給出實際的價格吧,不合理的價格是用來檢測程序的極限值的),最后以回車結(jié)束。屆時屏幕初始化顯示數(shù)據(jù)以及小車,公路的模型,這時你按下小鍵盤4,啟動計價器運行,播放啟動完音樂后,計價器正式工作,你將發(fā)現(xiàn),公路中央的白線向右移動,表示小車正向左行駛,同時里程和總價有刷新。本程序有部分靈活性,由小鍵盤的7,1鍵可增減速度(范圍0~300km/h),速度有變,與之相關(guān)聯(lián)的動畫及數(shù)據(jù)的
12、刷新有連鎖響應(yīng)(經(jīng)過合理的處理,數(shù)據(jù)計算的精準不受影響),給人一種真實的感受。一次搭乘完畢,還可以按提示繼續(xù)服務(wù),或者退出。</p><p> 這里有美中不足,沒有采用中斷,其直接后果是:鍵盤的檢測總及處理總在每次延時之后,所以延時較長時,按鍵需停滯一會,等待程序響應(yīng)呵)。乘客要求暫??砂葱℃I盤5(按4可再次運行),結(jié)束可按6,你會發(fā)現(xiàn)相應(yīng)的變化。</p><p><b>
13、三.硬件設(shè)計:</b></p><p> PC對鍵盤的管理采用了中斷方式,來自鍵盤的中斷信號接到了系統(tǒng)內(nèi)部主8259A的IR1中斷請求輸入線,其中斷類型號為09H, </p><p> 計時功能可以用PC系統(tǒng)板上8254的通道0完成。系統(tǒng)板上8254通道0是一個產(chǎn)生實時時鐘信號的系統(tǒng)計時器,利用它可以完成日歷時鐘計數(shù)。該通道工作在方式3,輸出周期性方波。其計數(shù)初值啟動時由B
14、IOS設(shè)置為0,輸出信號OUT0連接到系統(tǒng)板上8259A的IR0。由于CLK0接入的脈沖信號頻率為1.1931816MHz,則OUT0引腳上輸出的方波脈沖序列的周期為Y=65536/1.1931816MHz≈55ms。即每經(jīng)過55ms產(chǎn)生一次0級中斷請求(中斷類型號為08H)。系統(tǒng)設(shè)置INT 1CH的目的在于建立一個用戶可用的定時操作服務(wù)程序入口。若用戶沒有編制新的INT 1CH中斷服務(wù)程序,并修改1CH的中斷向量地址,則調(diào)用了1CH中
15、斷后立即從INT 1CH中斷返回,因為系統(tǒng)原來的INT 1CH中斷服務(wù)程序僅由一條中斷返回指令I(lǐng)RET組成..</p><p><b> 四.程序流程圖:</b></p><p><b> 1 .主流程圖:</b></p><p> 好了,這里我們看到與總體方案設(shè)計中類似的主流程圖,不過這里不側(cè)重于總體的功能說明,而
16、是具體的運行細節(jié)。從左邊的一級結(jié)結(jié)初步展開二級結(jié)構(gòu),也是主程序?qū)^程調(diào)用的大略說明。</p><p><b> 2.重要模塊流程:</b></p><p> 在程序清單中你將發(fā)現(xiàn)設(shè)計的宏,子程序較多,計4+33個,不可能一一作出流程加以詳述,我們在這兒擇要圖列。</p><p> 初始化:在數(shù)據(jù)輸入時最多輸入五位(整數(shù)位,小數(shù)點,小數(shù)位)
17、,不適格會要求重輸,合適的輸入會及時加以處理,后臺處理而矣,用戶不需理睬。</p><p> 鍵盤輸入增減速流程圖:</p><p> 由于避免對中斷的應(yīng)用,特設(shè)計鍵盤檢測程序,在大循環(huán)中調(diào)用,當call delay0較長(是由車速大小決定的),你將感到按鍵變得不靈敏,因為程序還未運行到這里,這個不太人性化的設(shè)計要求我們的用戶按鍵多保持一會,多多見諒呵。</p><
18、p><b> 計算并處理里程:</b></p><p> 里程在總的程序中的地位較為重要,除了顯示有里程這一項,總價的計算也是以它不基礎(chǔ)的,當這兩個量的顯示出錯的時候,我們總要從里程計算這個模塊開始檢查。在程序糾錯中,找到錯誤所在,然后才是查出錯因。對于程序邏輯錯誤,找到錯處不算太容易。</p><p><b> 計算并顯示總價:</b&g
19、t;</p><p> 總價最大值為999.9元(實際沒多少人打的也要花1000大洋,只是程序完善的需要罷了)在此值附近將暫停,之后就算再按小鍵盤4啟動也將再次進入暫停,唯有6鍵退出,結(jié)束本次行程.</p><p><b> 五.程序清單:</b></p><p><b> .486</b></p>&
20、lt;p> ;*****設(shè)置顯示方式宏****</p><p> setdistype macro typenum</p><p> mov ah,00h</p><p> mov al,typenum ;分辨率為320*200</p><p><b> int 10h</b></p>&l
21、t;p><b> endm</b></p><p> ;*****數(shù)據(jù)初始輸入宏****</p><p> ;提示輸入,接受輸入,并判斷數(shù)據(jù)是否適格,均為三位整數(shù)</p><p> ;strings指向提示信息</p><p> ;string指向輸入變量(第三個單元開始才是實際輸入的數(shù)據(jù))</p&
22、gt;<p> chushida macro strings,string</p><p> local lpcs,lpcs1,exitcs,exitcs2,exitcs3,ispoint,ispoint2,lpzheng,lpxiao,nexchsh</p><p><b> lpcs:</b></p><p> lea
23、 dx,strings ;顯示輸入提示信息</p><p> mov ah,09h</p><p><b> int 21h</b></p><p> lea dx,buffervar;輸入變量名</p><p> mov ah,0ah</p><p><b> int 21h
24、</b></p><p><b> mov al,0</b></p><p> mov flagpoint,al;輸入小數(shù)點標志置0</p><p> lea si,buffervar+2</p><p><b> mov cx,0</b></p><p>
25、;<b> lpcs1:</b></p><p> mov al,[si]</p><p> cmp al,0dh</p><p> jz exitcs</p><p> cmp al,'.'</p><p> jz ispoint</p><p
26、> cmp al,'0'</p><p><b> jb lpcs</b></p><p> cmp al,'9'</p><p><b> ja lpcs</b></p><p><b> inc si</b></p&
27、gt;<p><b> inc cx</b></p><p> jmp lpcs1 </p><p><b> ispoint:</b></p><p><b> mov bl,1</b></p><p> mov flagpoint,bl<
28、;/p><p><b> inc cx</b></p><p><b> inc si</b></p><p> mov al,[si]</p><p> cmp al,0dh</p><p> jz exitcs</p><p> cmp
29、al,'.'</p><p> jz exitcs2</p><p> cmp al,'0'</p><p> jb exitcs2</p><p> cmp al,'9'</p><p> ja exitcs2</p><p>&
30、lt;b> inc cx</b></p><p> jmp exitcs</p><p><b> exitcs2:</b></p><p><b> mov al,0</b></p><p> mov flagpoint,al</p><p>&
31、lt;b> dec cx</b></p><p> ;jmp nexchsh</p><p><b> exitcs:</b></p><p><b> ;cmp cx,1</b></p><p> ;jz exitcs3</p><p><
32、;b> ;nexchsh:</b></p><p> mov al,flagpoint</p><p><b> cmp al,1</b></p><p> jz ispoint2</p><p> lea si,buffervar+1</p><p><b&g
33、t; add si,cx</b></p><p> lea di,string+2</p><p><b> lpzheng:</b></p><p><b> cmp cx,0</b></p><p> jz exitcs3</p><p> mo
34、v al,[si]</p><p> mov [di],al</p><p><b> dec cx</b></p><p><b> dec si</b></p><p><b> dec di</b></p><p> jmp lpzhen
35、g</p><p><b> ispoint2:</b></p><p> lea si,buffervar+1</p><p><b> add si,cx</b></p><p> mov al,[si]</p><p> cmp al,'.'&
36、lt;/p><p> jz exitcs3</p><p> lea di,string+4</p><p><b> lpxiao:</b></p><p><b> cmp cx,0</b></p><p> jz exitcs3</p><
37、p> mov al,[si]</p><p> mov [di],al</p><p><b> dec cx</b></p><p><b> dec si</b></p><p><b> dec di</b></p><p> j
38、mp lpxiao</p><p> exitcs3: </p><p><b> endm</b></p><p> ;*****字符串轉(zhuǎn)成數(shù)字宏****</p><p> ;string1是字符串,string2為對應(yīng)數(shù)值*10</p><p> daconver macro
39、string1,string2</p><p> local lpdac,nextdac,nextdac1,nextdac2</p><p> lea si,string1</p><p><b> mov ax,0</b></p><p><b> mov bx,0</b></p&g
40、t;<p><b> lpdac:</b></p><p> mov bl,[si]</p><p> cmp bl,'.'</p><p> jz nextdac2</p><p> cmp bl,'0'</p><p> jb ne
41、xtdac</p><p> cmp bl,'9'</p><p> ja nextdac</p><p> jmp nextdac1</p><p><b> nextdac:</b></p><p><b> inc si</b></p&
42、gt;<p><b> jmp lpdac</b></p><p><b> nextdac1:</b></p><p> sub bl,30h</p><p><b> mov dx,10</b></p><p><b> mul dx<
43、;/b></p><p><b> add ax,bx</b></p><p><b> inc si</b></p><p><b> jmp lpdac</b></p><p><b> nextdac2:</b></p>
44、<p><b> inc si</b></p><p> mov bl,[si]</p><p> sub bl,30h</p><p><b> mov dx,10</b></p><p><b> mul dx</b></p><p&
45、gt;<b> add ax,bx</b></p><p> mov string2,ax</p><p><b> endm</b></p><p> ;*****音樂播放宏****</p><p> music macro frequency,timetable</p>
46、<p> local music1,leng,dl10ms,exitmu </p><p> lea si,frequency</p><p> lea bp,timetable</p><p> music1:mov di,[si]</p><p> cmp di,-1</p><p>
47、 je exitmu</p><p> mov bx,ds:[bp]</p><p> mov al,10110110b</p><p> out 43h,al</p><p> mov dx,12h</p><p> mov ax,3280h</p><p><
48、b> div di</b></p><p> out 42h,al</p><p> mov al,ah</p><p> out 42h,al</p><p> in al,61h</p><p> mov ah,al</p><p><b&g
49、t; or al,3</b></p><p> out 61h,al</p><p> leng: mov ecx,0ffffffh</p><p> dl10ms: loopd dl10ms</p><p><b> dec bx</b></p><p><
50、b> jnz leng</b></p><p> mov al,ah</p><p> out 61h,al</p><p><b> add si,2</b></p><p><b> add bp,2</b></p><p> jm
51、p music1</p><p><b> exitmu:</b></p><p><b> endm </b></p><p> DATAS SEGMENT</p><p> ;....................................暫存器</p>
52、<p> time1 dw 0 ;計時器1的時分</p><p> time2 dw 0 ;計時器1的秒百分之一秒</p><p> time3 dw 0 ;計時器2的時分</p><p> time4 dw 0 ;計時器2的秒百分之一秒</p><p> subtime dd 0 ;兩
53、次計時時差暫存器</p><p> x0 dw ? ;字符字模輸出的起始橫坐標</p><p> y0 dw ? ;字符字模輸出的起始列坐標</p><p> color db ? ;字模的顏色</p><p> flagdis db 0 ;動畫顯示標志,為1顯中線1,為0顯中線2</p&
54、gt;<p> distype db 0 ;顯示方式號</p><p> qibujias db 0ah,0dh,'please input qibujia[yuan]:$',0ah,0dh</p><p> danjias db 0ah,0dh,'please input danjia[yuan/km]:$',0ah,0dh<
55、;/p><p> chesus db 0ah,0dh,'please input chesu[km/h]:$',0ah,0dh</p><p> demand db 0ah,0dh,'press key 4 to try again,key 6 to exit:$',0ah,0dh</p><p><b> ;輸入
56、提示語句</b></p><p> buffervar db 6,?,6 dup(?),'$'</p><p> qibujia db ' ',' ','0','.','0','$';起步價,單位:元</p><p> qibujia2
57、 dw 0 ;起步價(數(shù)值),單位:角</p><p> danjia db ' ',' ','0','.','0','$';單價,單位:元</p><p> danjia2 dw 0 ;單價(數(shù)值),
58、單位:角</p><p> chesu db ' ',' ','0','.','0','$';車速</p><p> chesu2 db 0 ;將車速換到[m/(1/100)s]尺度</p><p> chesu3 dw 0
59、 ;車速(數(shù)值),單位:bm/h</p><p> zongjia db ' ',' ','0','.','0','$';總價</p><p> licheng db ' ',' ','0','.',&
60、#39;0','$';里程</p><p> licheng2 dd 0 ;保存里程的二進制值,單位m </p><p> licheng3 dw 0 ;保存里程,0.1km為基本單位 </p>
61、;<p> licheng4 dw 10 ;初值10是起步里程,并作每次里程比較的暫存器</p><p> flagpoint db 0 ;輸入小數(shù)點標志</p><p> ;....................................字模表</p><p> charptr dw 30h,30h,03, 40h,3
62、0h,03, 50h,30h,03;'起步價'</p><p> dw 30h,40h,03, 40h,40h,03 ;'單價'</p><p> dw 30h,50h,03, 40h,50h,03 ;'車速'</p><p> dw 0b0h,30h,03,
63、 0c0h,30h,03 ;'總價'</p><p> dw 0b0h,40h,03, 0c0h,40h,03 ;'里程'</p><p><b> charptr2:</b></p><p> dw 0b0h,09bh,03
64、 ;小車車體 </p><p> ;每三個數(shù)據(jù)一組,分別為待顯示字模起始橫縱坐標,顏色</p><p> dw 0ffffh ;顯示結(jié)束標志 </p><p> buffer1 dw 0eh,8,0fh,8, 7,9,8,9,9,9,0ah,9,0bh,9,0ch,9,0dh,
65、9,3,0ah,4,0ah</p><p> dw 5,0ah,6,0ah, 2,0bh,0,0ch,1,0ch, 0,0dh,1,0dh, 1,0eh, 2,0fh</p><p> dw 3,0fh,4,0fh,5,0fh,6,0fh,7,0fh,8,0fh,9,0fh,0ah,0fh,0bh,0fh</p><p> dw 0ch,0fh,0dh,0fh
66、,0eh,0fh,0fh,0fh ;一區(qū)</p><p> dw 1bh,2,1ch,2,1dh,2,1eh,2,1fh,2, 1bh,3,1fh,3, 13h,4,14h,4,15h</p><p> dw 4,16h,4,17h,4,18h,4,19h,4,1ah,4,1bh,4,1ch,4,1dh,4,1eh,4,1fh,4</p><
67、;p> dw 12h,5, 11h,6, 10h,7 ;二區(qū)</p><p> dw 15h,0ch,16h,0ch,17h,0ch, 14h,0dh, 18h,0dh, 13h,0eh,19h,0eh</p><p> dw 10h,0fh,11h,0fh,12h,0fh,1ah,0fh,1bh,0fh,1ch,0fh,1dh
68、,0fh,1eh,0fh</p><p> dw 1fh,0fh, 16h,10h ;三區(qū)</p><p> dw 20h,4,21h,4,22h,4,23h,4,24h,4,25h,4,26h,4,27h,4,28h,4,29h,4,2ah</p><p> dw 4,2bh,4,2ch,4,2dh,4
69、,2eh,4,2fh,4 ;四區(qū)</p><p> dw 2ah,0ch,2bh,0ch,2ch,0ch, 29h,0dh,2dh,0dh, 28h,0eh,2eh,0eh</p><p> dw 20h,0fh,21h,0fh,22h,0fh,23h,0fh,24h,0fh,25h,0fh,26h,0fh,27h</p><p>
70、dw 0fh,2fh,0fh, 2bh,10h ;五區(qū)</p><p> dw 30h,4, 31h,5,32h,5, 33h,6,34h,6, 35h,7,36h,7 ;六區(qū)</p><p> dw 37h,8,38h,8,39h,8,3ah,8, 3bh,9, 3ch,0ah, 3ch,0bh, 3dh,0ch</p>
71、<p> dw 3dh,0dh,3eh,0dh,3fh,0dh,3dh,0eh,3eh,0eh,3fh,0eh, 30h,0fh,31h,0fh</p><p> dw 32h,0fh,33h,0fh,34h,0fh,35h,0fh,36h,0fh,37h,0fh,38h,0fh,39h,0fh</p><p> dw 3ah,0fh,3bh,0fh,3ch,0fh,3dh
72、,0fh ;七區(qū) </p><p> dw 0ffh,0ffh ;小車車體的字模 </p><p> buffer2 dw 5,2,5,3,5,4,5,5,3,6,4,6,5,6,6,6,10,6,11,6,5,7,11,7,
73、5,8,11,8,2,9</p><p> dw 3,9,4,9,5,9,6,9,7,9,9,9,10,9,5,10,9,10,12,10,3,11,5,11,6,11,7</p><p> dw 11,9,11,10,11,11,11,3,12,4,12,5,12,3,13,6,13,7,13,14,13,2,14,8</p><p> dw 14,9,14
74、,10,14,11,14,12,14,13,14 ;起</p><p> dw 0ffh,0ffh </p><p> buffer3 dw 8,2,8,3,8,4,5,5,8,5,9,5,10,5,11,5,5,6,8,6,5,7,8,7,11,7,12,7,13</p><p> dw 7,5,8,7,8,8,
75、8,9,8,10,8,4,9,5,9,6,9,8,9,11,9,2,10,3,10,6,10,8</p><p> dw 10,11,10,5,11,8,11,10,11,9,12,8,13,7,14,6,15</p><p> dw 0ffh,0ffh ;步</p><p> buffer4
76、 dw 9,2,5,3,9,3,5,4,9,4,4,5,8,5,3,6,7,6,9,6,10,6,2,7,4,7,6,7,7,7</p><p> dw 10,7,11,7,12,7,4,8,5,8,7,8,10,8,13,8,4,9,7,9,10,9,4,10,7,10,10</p><p> dw 10,4,11,7,11,10,11,4,12,6,12,10,12,4,13,1
77、0,13</p><p> dw 10,14,10,15 ;'價'的字模,以0ffh結(jié)束</p><p> dw 0ffh,0ffh </p><p> buffer5 dw 11,1,5,2,11,2,6,3,10,3,7,4,9,4,5,5,6,5,7,5,8,5,9,5,10,5,
78、11,5,5</p><p> dw 6,8,6,11,6,5,7,7,7,8,7,9,7,11,7,5,8,8,8,11,8,6,9,7,9,8,9,9,9</p><p> dw 10,9,8,10,7,11,8,11,9,11,10,11,3,12,4,12,5,12,6,12,8,12,11,12</p><p> dw 12,12,13,12,14,
79、12,8,13,8,15,8,14</p><p> dw 0ffh,0ffh ;單 </p><p> buffer6 dw 8,1,8,2,8,3,4,4,5,4,6,4,7,4,8,4,9,4,10,4,11,4,7,5,6,6,8,6,5,7,8</p><p>
80、 dw 7,5,8,6,8,7,8,8,8,9,8,10,8,8,9,8,10,10,10,11,10,12,10,13,10,5</p><p> dw 11,6,11,7,11,8,11,9,11,3,12,4,12,8,12,8,13,8,14,8,15</p><p> dw 0ffh,0ffh ;車
81、 </p><p> buffer7 dw 9,2,9,3,3,4,7,4,8,4,9,4,10,4,11,4,4,5,9,5,4,6,7,6,8,6,9,6,10,6</p><p> dw 11,6,4,7,6,7,9,7,12,7,4,8,7,8,8,8,9,8,10,8,11,8,4,9,8,9,9,9</p><p> dw 11,9
82、,4,10,7,10,9,10,11,10,4,11,7,11,9,11,11,11,3,12,4,12,5,12</p><p> dw 6,12,7,13,8,13,9,13,10,13,11,14,12,14,13,14,14,14</p><p> dw 0ffh,0ffh ;速</p>&
83、lt;p> buffer8 dw 10,2,4,3,10,3,5,4,9,4,6,5,8,5,5,6,6,6,7,6,8,6,9,6,10,6,5,7,10</p><p> dw 7,5,8,9,8,6,9,7,9,8,9,11,10,12,10,2,11,4,11,7,11,8,11,9,11,13</p><p> dw 11,2,12,5,12,6,13,12,13,
84、7,14,8,14,9,14,10,14,11,14,12,14,13,14</p><p> dw 0ffh,0ffh ;總</p><p> buffer9 dw 5,3,6,3,7,3,8,3,9,3,10,3,11,3,4,4,8,4,12,4,4,5,8,5,12,5,4,6,6</p>
85、<p> dw 6,7,6,8,6,9,6,10,6,12,6,4,7,8,7,12,7,5,8,6,8,7,8,8,8,9,8,10,8</p><p> dw 11,8,8,9,8,10,6,11,7,11,8,11,9,11,10,11,8,12,8</p><p> dw 13,3,14,4,14,5,14,6,14,7,14,8,14,9,14,10,14,11,
86、14,12,14,13,14</p><p> dw 0ffh,0ffh ;里 </p><p> buffer10 dw 6,1,6,2,5,3,4,4,9,4,10,4,11,4,12,4,13,4,2,5,3,5,5,5,9,5,13,5,5</p><p> dw
87、6,9,6,13,6,2,7,3,7,4,7,5,7,6,7,7,7,9,7,10,7,11,7,12,7,4,8,5,8</p><p> dw 3,9,5,9,6,9,9,9,10,9,11,9,12,9,13,9,2,10,5,10,7,10,11,10,2,11</p><p> dw 5,11,11,11,5,12,10,12,11,12,12,12,5,13,11,13,5
88、,14,8,14,9,14,10</p><p> dw 14,11,14,12,14,13,14,14,14,5,15 </p><p> dw 0ffh,0ffh ;程</p><p> ;....................................文本字符表</p&
89、gt;<p> buffertxt1 db 5,5,218, 5,34,170, 12,5,192,12,34,217 ;邊框四角</p><p> db 7,12,58,9,12,58,11,12,58, 7,26,58,9,26,58 ;':'</p><p> db 7,18,157, 9,18,157,9,1
90、9,47,9,20,107,9,21,109;¥,¥/km</p><p> db 11,18,107,11,19,109,11,20,47,11,21,104 ;km/h</p><p> db 7,32,157, 9,32,107,9,33,109 ;¥/km</p><p> db 0ffh,0ffh ;0ffh
91、為文本結(jié)束標志</p><p> bufferflag db 11,28,17,1,11,30,14,1, 11,32,254,2 ;運行,暫停,停止(■)</p><p> ;依次為行值,列值,字符值,顏色</p><p> db 0ffh,0ffh ;0ffh為文本結(jié)束標志 </p><p> liner
92、 db 196,89h,5,6,34, 196,89h,12,6,34, 196,8ah,19,0,40, 196,8ah,22,0,40</p><p> ;依次為字符值,顏色,行值,起始與終止列值</p><p> db 0ffh,0ffh ;0ffh為結(jié)束標志</p><p> linel db 179,89h,5,6,12, 179,8
93、9h,34,6,12</p><p> ;依次為字符值,顏色,列值,起始與終止行值</p><p> db 0ffh,0ffh</p><p> colortxt db 10001001b</p><p> ;文本字符顏色10001000b黑色(不可見)10001001b青色10001010b品紅10001011b白色</p
94、><p> disdataptr db 7,12,03, 9,12,03, 11,12,02, 7,26,02, 9,26,02</p><p> ;數(shù)據(jù)起步價,單價,車速,總價,里程顯示屬性,分別為行值,列值,顏色</p><p> bufferzx1 db 21,1,196,21,2,32,21,3,196,21,4,32,21,5,196,21,6,32,
95、21,7,196,21,8,32,21,9,196</p><p> db 21,10,32,21,11,196,21,12,32,21,13,196,21,14,32,21,15,196,21,16,32,21,17,196</p><p> db 21,18,32,21,19,196,21,20,32,21,21,196,21,22,32,21,23,196,21,24,32,21
96、,25,196</p><p> db 21,26,32,21,27,196,21,28,32,21,29,196,21,30,32,21,31,196,21,32,32,21,33,196</p><p> db 21,34,32,21,35,196,21,36,32,21,37,196,21,38,32,21,39,196;路中線 </p><
97、p> ;每三個為一組數(shù)據(jù),依次為文本字符的行(從上到下)、列(從左到右)、字符值</p><p> db 0ffh,0ffh ;0ffh為文本結(jié)束標志</p><p> bufferzx2 db 21,0,196,21,1,32,21,2,196,21,3,32,21,4,196,21,5,32,21,6,196,21,7,32,21,8,196,21,9,32</p
98、><p> db 21,10,196,21,11,32,21,12,196,21,13,32,21,14,196,21,15,32,21,16,196,21,17,32</p><p> db 21,18,196,21,19,32,21,20,196,21,21,32,21,22,196,21,23,32,21,24,196,21,25,32</p><p> d
99、b 21,26,196,21,27,32,21,28,196,21,29,32,21,30,196,21,31,32,21,32,196,21,33,32</p><p> db 21,34,196,21,35,32,21,36,196,21,37,32,21,38,196;路中線 </p><p> ;每三個為一組數(shù)據(jù),依次為文本字符的行(從上到下)、列(從左到右)、
100、字符值</p><p> db 0ffh,0ffh ;0ffh為文本結(jié)束標志</p><p> ;..............................音樂頻率及節(jié)拍表</p><p> frequency1 dw 330,330,349,392,392,349, 330,294,262,262,294,330,330,294,294,-1;歡樂頌(
101、前段)</p><p> timetable1 dw 8 dup(25)</p><p> dw 4 dup(25),50,2 dup(25)</p><p> frequency2 dw 5 dup(262),293,293,329,294, 262,262,523,494,440,392,392</p><p> dw 3 d
102、up(440),392,349,349,392,392,440,262, 3 dup(293),262,294</p><p> dw 440,329,440,392,392,-1</p><p> timetable2 dw 25,12,13,25,25,25,12,13,50,25,25,50,25,12,13,50</p><p> dw 25,12,
103、13,12,13,25,25,12,13,50,25,12,13,25,25</p><p> dw 12,13,25,50,75 ;對面</p><p> frequency3 dw 330,330,349,392,392,349, 330,294,262,262,294,330,294,262,
104、262,-1;歡樂頌(后段) </p><p> timetable3 dw 8 dup(25)</p><p> dw 4 dup(25),50,2 dup(25) </p><p> DATAS ENDS</p><p> ;..................................
105、..</p><p> ;....................................</p><p> STACKS SEGMENT</p><p> ;此處輸入堆棧段代碼</p><p> STACKS ENDS</p><p> ;::::::::::::::::::::::::::::::
106、::::::::::::::::::</p><p> ;.....................主程序.....................</p><p> ;________________________________________________</p><p> CODES SEGMENT</p><p> AS
107、SUME CS:CODES,DS:DATAS,SS:STACKS</p><p><b> START:</b></p><p> MOV AX,DATAS</p><p><b> MOV DS,AX</b></p><p> call chushihua;完成一系列初始化</p&g
108、t;<p><b> restart:</b></p><p> call getstart ;車輛啟動程序</p><p><b> lop: </b></p><p> daconver chesu,chesu3</p><p> mov ax,chesu3</p&
109、gt;<p><b> cmp ax,0</b></p><p> jz next1 ;車速為0,動畫停止</p><p> cmp ax,3000</p><p><b> jbe next2</b></p><p> mov ax,3000;車速大于300km/h
110、,限速處理</p><p> mov chesu3,ax</p><p> call speedconver</p><p><b> next2:</b></p><p> mov al,flagdis</p><p><b> cmp al,0</b></
111、p><p> jnz nextlop</p><p> call diszhongxian2;顯示路中線2</p><p><b> mov al,1</b></p><p> mov flagdis,al</p><p><b> nextlop:</b></p
112、><p> call diszhongxian1;顯示路中線1</p><p><b> mov al,0</b></p><p> mov flagdis,al</p><p><b> next1:</b></p><p> call varyspeed ;鍵盤輸
113、入增減速度</p><p> call delay0</p><p> call chulilicheng;處理里程</p><p> call jizongjia ;計算并顯示總價</p><p> call checkkey ;檢鍵盤命令</p><p><b> jmp lop<
114、;/b></p><p> ;.................................... </p><p><b> exit:</b></p><p> MOV AH,4CH</p><p><b> INT 21H</b></p><p&g
115、t; ;::::::::::::::::::::::::::::::::::::::::::::::::</p><p> ;------------------------------------------------</p><p> ;*****鍵盤輸入停止處理****</p><p><b> stop proc</b><
116、;/p><p> lea si,bufferflag</p><p><b> mov al,1</b></p><p> mov [si+3],al</p><p><b> mov al,1</b></p><p> mov [si+7],al</p>
117、<p><b> mov al,2</b></p><p> mov [si+11],al</p><p> call disflag ;修改運行,暫停,停止(■)標志并顯示</p><p> call movecar</p><p> music frequency3,timetable3 ;播
118、放結(jié)束音樂</p><p> call clearscreen ;清屏</p><p> setdistype distype</p><p> lea dx,demand ;顯示輸入提示信息</p><p> mov ah,09h</p><p><b&
119、gt; int 21h</b></p><p><b> lpstop:</b></p><p> in al,60h</p><p> cmp al,4bh</p><p> jnz nextstop</p><p> lea si,licheng+4</p>
120、;<p><b> mov ax,0</b></p><p><b> mov dx,0</b></p><p><b> mov bx,10</b></p><p><b> div bx</b></p><p> add dl,
121、30h</p><p> mov [si],dl ;存小數(shù)位</p><p><b> dec si</b></p><p><b> dec si</b></p><p><b> mov dx,0</b></p><p><b>
122、 div bx</b></p><p> add dl,30h</p><p> mov [si],dl ;存?zhèn)€位</p><p><b> dec si</b></p><p><b> mov dx,0</b></p><p><b>
123、 div bx</b></p><p><b> cmp ax,0</b></p><p> jz nexxtsc1</p><p> add dl,30h</p><p> mov [si],dl </p><p><b> dec si</b>&
124、lt;/p><p> jmp nexxtsc3</p><p><b> nexxtsc1:</b></p><p><b> cmp dl,0</b></p><p> jnz nexxtsc2</p><p> mov dl,' '</p>
125、;<p> mov [si],dl</p><p><b> dec si</b></p><p> mov [si],dl</p><p> jmp exxitsc</p><p><b> nexxtsc2:</b></p><p> add d
126、l,30h</p><p> mov [si],dl</p><p> mov dl,' '</p><p><b> dec si</b></p><p> mov [si],dl</p><p> jmp exxitsc ;存十位</p><p
127、><b> nexxtsc3:</b></p><p> add al,30h</p><p> mov [si],al ;存百位</p><p><b> exxitsc:</b></p><p> call chushi2</p><p> jmp f
128、ar ptr restart ;小鍵盤4重啟</p><p><b> nextstop:</b></p><p> cmp al,4dh ;小鍵盤6結(jié)束程序</p><p> jnz lpstop </p><p> jmp far ptr exit</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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算機硬件技術(shù)基礎(chǔ)課程設(shè)計----出租車計價器的設(shè)計
- 硬件課程設(shè)計----出租車計價器
- 硬件課程設(shè)計--出租車計價器系統(tǒng)
- 硬件課程設(shè)計報告--出租車計價器
- 出租車計價器課程設(shè)計
- 出租車計價器課程設(shè)計
- 出租車計價器課程設(shè)計
- 出租車計價器課程設(shè)計
- 課程設(shè)計--出租車計價器設(shè)計
- 出租車計價器設(shè)計課程設(shè)計
- 課程設(shè)計---出租車計價器設(shè)計
- 課程設(shè)計---出租車計價器設(shè)計
- 出租車計價器課程設(shè)計報告
- eda課程設(shè)計--出租車計價器
- eda課程設(shè)計--出租車計價器
- 出租車計價器課程設(shè)計論文
- 接口課程設(shè)計---出租車計價器
- 課程設(shè)計---出租車計價器的設(shè)計
- 課程設(shè)計--出租車計價器的設(shè)計
- eda課程設(shè)計報告---出租車計價器
評論
0/150
提交評論