微機原理與接口技術(shù)課程設(shè)計報告車燈控制系統(tǒng)_第1頁
微機原理與接口技術(shù)課程設(shè)計報告車燈控制系統(tǒng)_第2頁
微機原理與接口技術(shù)課程設(shè)計報告車燈控制系統(tǒng)_第3頁
微機原理與接口技術(shù)課程設(shè)計報告車燈控制系統(tǒng)_第4頁
微機原理與接口技術(shù)課程設(shè)計報告車燈控制系統(tǒng)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、信息科學(xué)與技術(shù)學(xué)院微機原理與接口技術(shù)課程設(shè)計報告 題目名稱: 車燈控制系統(tǒng) 學(xué)生姓名: 郭麗 學(xué) 號: 2009082210 專業(yè)年級: 計科09級 指導(dǎo)教師: 裘祖旗 時 間: 2012年1月 目錄1.課程設(shè)計題目及要求-31.1課程設(shè)計的目的-31.2課程設(shè)計的題目-31.3課程設(shè)計的要求-32.功能設(shè)計-32.1功能設(shè)計-32.2系統(tǒng)流程圖-43.詳細設(shè)計-5 3.1設(shè)計方法-53.2各功能模塊及流程圖-54.運行結(jié)果-94.1開始界面-94.2按w鍵小車前進-94.3按a鍵小車左拐-94.4按d鍵小車右拐-94.5按s鍵小車后退-94.6按b鍵小車停止-95.課程總結(jié)-126.參考文獻

2、-137.附錄-131.課程設(shè)計的目的、題目及要求1.1課程設(shè)計的目的進行程序設(shè)計方法和技能的基本訓(xùn)練,鞏固在課堂上學(xué)到的有關(guān)程序設(shè)計和芯片的基本知識和基本方法,通過實際動手能力的培養(yǎng),進一步熟悉匯編語言的結(jié)構(gòu)和使用方法,進一步的了解常用芯片的用法,達到能獨立閱讀、編制和調(diào)試一定規(guī)模的匯編語言程序的水平。1.2課程設(shè)計的題目汽車車燈控制系統(tǒng)1.3課程設(shè)計的要求(1)實現(xiàn)停止時的指示燈;(2)實現(xiàn)汽車轉(zhuǎn)向時指示(3)實現(xiàn)倒車指示擴展功能:實現(xiàn)倒車的聲音提示2.功能設(shè)計2.1功能設(shè)計本程序?qū)崿F(xiàn)用鍵盤的asdwb鍵控制小車的轉(zhuǎn)向,前進,停止及后退。當(dāng)小車左拐是實現(xiàn)小車左邊的前后燈亮,當(dāng)小車右拐是實

3、現(xiàn)小車的右邊的前后燈亮,當(dāng)小車前進的時候不需要指示燈,當(dāng)小車后退的時候后邊的兩個燈同時亮,同時伴隨著音樂提示。其功能模塊圖如下所示:汽車車燈控制系統(tǒng)實現(xiàn)停止時指示燈提示實現(xiàn)后退時音樂提示實現(xiàn)后退時指示燈提示實現(xiàn)右拐指示燈提示實現(xiàn)左拐指示燈提示2.2系統(tǒng)流程圖開始n檢測鍵盤是否有控制鍵按下yy是否為向上鍵w向上處理n是否為向下鍵sy向下處理n是否為向左鍵ay向左處理n是否為向右鍵dy向右處理n是否為空格鍵y結(jié)束退出nyn是否為停止鍵b停止處理3.詳細設(shè)計3.1設(shè)計方法 該課程設(shè)計通過測試是否有鍵盤輸入及測試輸入的字符來執(zhí)行相應(yīng)的功能。在數(shù)據(jù)段中存放著繪制小車形狀所需要的各個字符的相對位置及其顏色

4、屬性的數(shù)據(jù)段cars,以及要實現(xiàn)小車倒車提示音樂時所需要的音樂數(shù)據(jù)段mus_freg和mus_time 。 在程序中通過跳轉(zhuǎn)到相應(yīng)的程序段和調(diào)用相應(yīng)的子程序來完成相應(yīng)的功能。 子程序direction檢測是否有鍵盤輸入以及判斷是何種輸入子程序car繪制小車的形狀及擦出小車子程序music實現(xiàn)一段音樂播放3.2各功能模塊及流程圖(1) 向上處理向上處理清除原來的小車調(diào)用clear 子程序行值減1,dec row重新畫小車 call draw畫小車檢測鍵盤輸入(2) 向下處理向下處理清除原來的小車調(diào)用clear 子程序行值加1,dec row重新畫小車 call draw_dd先定位光標(biāo)將小車的兩

5、個后燈畫為紅色并輸出一段音樂檢測鍵盤輸入(3) 左拐處理左拐處理清除原來的小車調(diào)用clear 子程序行值減1,dec row列減1dec column重新畫小車 call draw_l將小車左邊的前后燈至為紅色檢測鍵盤輸入(4) 右拐處理右拐處理清除原來的小車調(diào)用clear 子程序行值減1,dec row列加1dec column重新畫小車 call draw_l將小車右邊的前后燈至為紅色檢測鍵盤輸入(5) 停止處理左拐處理清除原來的小車調(diào)用clear 子程序重新畫小車 call draw_l將小車前后燈全部至為紅色檢測鍵盤輸入4.運行結(jié)果4.1開始界面4.2按w鍵小車前進4.3按a鍵小車左拐

6、4.4按d鍵小車右拐4.5按s鍵小車后退4.6按b鍵小車停止5.課程總結(jié)在臨近期末,正值我們帶著喜悅回家的時候,我們搞了一個微機原理與接口技術(shù)的課程設(shè)計。以前還以為這個課程設(shè)計很神秘,對它充滿著期待。搞完這個之后,才知道這個東西也沒什么,只要你認(rèn)真做你就會明白怎么做的。剛開始選題的時候,我看到這個題目很有意思,因為以前沒有用匯編語言做過關(guān)于動畫這方面的程序,所以就選了這個題目。說實話,剛開始下手的時候,我還真是一頭霧水,不知道該怎么做,老師上課的時候也沒有講過。于是,我就到網(wǎng)上查了一些相關(guān)的資料,看完動畫設(shè)計那塊的時候,我才明白了該怎么做。動畫無非分兩種動畫,一種是逐幀動畫,另一種是實時動畫,

7、當(dāng)然,這里是逐幀動畫。逐幀動畫設(shè)計起來相對來說比較簡單,就是一組圖像按一定的頻度連續(xù)播放,給人一種視覺上的效應(yīng),好像這個東西真的動起來了!其實,做這個題之前,我也從網(wǎng)上下了一些別人以前做過的關(guān)于這方面的程序,我發(fā)現(xiàn)他們的程序代碼比較多,可讀性比較差,代碼冗長,于是,我決定自己做一個代碼較少,可讀性較好的程序。搞完這次課程設(shè)計,我更加明白數(shù)學(xué)和邏輯推理對程序設(shè)計的重要性,找到簡單、合適及高效的算法可以大大節(jié)約程序運行的時間和空間,優(yōu)化了程序,提高了程序運行的效率,這對于一個優(yōu)秀的程序設(shè)計員來說非常重要。老師,說實話,你讓我們搞課程設(shè)計其實是給了我們一個自己動手的設(shè)計機會。也許大學(xué)的意義不在于整體

8、,而在于個人,看自己怎么學(xué),不可能像中學(xué)那樣讓老師天天督促我們,畢竟,我們是成年人了!6.參考文獻1 ibm-pc匯編語言程序設(shè)計 沈美明 清華大學(xué)出版社 2001年8月第2版 3 微機系統(tǒng)和接口應(yīng)用技術(shù)朱世鴻 著 清華大學(xué)出版社 2006年9月第1版 7.附錄:源代碼.model small.datacars dw 10db 0,0,4fh,7,0,1,4fh,7db 1,0,0dbh,7,0,-1,0dbh,7db 1,-1,0dbh,7,0,1,0dbh,7db 0,1,0dbh,7,0,1,0dbh,7db 1,0,4fh,7,0,-3,4fh,7 ;定義小車形狀row db ? co

9、lumn db ?mode db ?;mode=1時畫小車,mode=0時清除小車 mus_freg dw 262,262,294,262,349,330 dw 262,262,294,262,392,349 dw 262,262,523,440,349,330,294 dw 466,466,440,262,392,349 dw -1 mus_time dw 50,50,100,100,100,200 dw 50,50,100,100,100,200 dw 50,50,100,100,100,100,300 dw 50,50,100,100,100,200.codestart:mov ax,d

10、ata mov ds,ax;初始化 mov row,13 ;小車的初始行坐標(biāo) mov column,38;小車的初始列坐標(biāo)call draw;畫小車call direction;檢查是否有控制鍵按下? mov ax,4c00h;退出程序 int 21h;direction proc near;鍵盤檢測子程序draw_u:mov ah,0;接收鍵盤輸入 int 16h cmp al,57h;向上? jnz draw_d;沒有則轉(zhuǎn)移call clear;清除小車 dec row;行坐標(biāo)減1call draw;畫小車cmp row,1 ;小車在最上邊嗎?jnz draw_d;不是則轉(zhuǎn)移call cl

11、ear;是則清除小車mov row,24;把小車置于最下邊 draw_d:cmp al,53h;向下? jnz draw_l;沒有則轉(zhuǎn)移call clear;清除小車 inc row;行坐標(biāo)加1call draw_dd;畫小車cmp row,24;小車在最下邊嗎?jnz draw_l;不是則轉(zhuǎn)移call clear;清除小車mov row,1;把小車置于最上邊jmp draw_l a1:jmp draw_u draw_l:cmp al,41h;向左? jnz draw_r;沒有則轉(zhuǎn)移call clear;清除小車 dec row;行坐標(biāo)減1 dec column;列坐標(biāo)減1call draw_

12、ll;畫小車cmp column,0;小車在最左邊嗎?jnz draw_r;不是則轉(zhuǎn)移call clear;清除小車mov column,76;把小車置于最右邊mov row,24 draw_r:cmp al,44h ;向右? jnz draw_stop;沒有則轉(zhuǎn)移call clear;清除小車 inc column ;列坐標(biāo)加1 dec row;行坐標(biāo)減1call draw_rr;畫小車cmp column,76;小車在最右邊嗎?jnz draw_stop;不是則轉(zhuǎn)移call clear;清除小車mov column,0;把小車置于最左邊mov row,24draw_stop:cmp al,

13、42h jnz exit call clear call draw_ss exit:cmp al,20h;空格?jnz a1;沒有則返回ret;退出direction endp draw: ;畫小車mov mode,1call carretclear:;清除小車mov mode,0call carretcar proc near;小車圖形子程序 mov dh,row mov dl,column mov cx,10 lea di,cars+2one: add dh,di+0;置光標(biāo)列add dl,di+1;置光標(biāo)行mov ah,2int 10hmov al,di+2;顯示字符的ascii碼mov

14、 bl,di+3;顯示字符的屬性cmp mode,0;mode=1時畫小車,mode=0時清除小車jne skipmov bl,0skip:push cxmov cx,1mov ah,09hint 10hpop cxadd di,4loop oneretcar endp;左拐的處理draw_ll: ;畫小車mov mode,1call car_lretcar_l proc near;小車圖形子程序 mov dh,row mov dl,column mov cx,10 lea di,cars+2one_l: add dh,di+0;置光標(biāo)行add dl,di+1;置光標(biāo)列mov ah,2int

15、10hmov al,di+2;顯示字符的ascii碼mov bl,di+3;顯示字符的屬性skip_l:push cxmov cx,1mov ah,09hint 10hpop cxadd di,4loop one_l mov dh,row;左前燈亮 mov dl,columnlea di,cars+2add dh,di+0;置光標(biāo)行add dl,di+1;置光標(biāo)列mov ah,02hint 10hmov al,di+2;顯示字符的ascii碼 mov bl,4;顯示字符的屬性mov cx,1mov ah,09hint 10hpop cx add dh,3;左后燈亮 add dl,-1mov a

16、h,02hint 10hmov al,di+2;顯示字符的ascii碼mov bl,4;顯示字符的屬性push cxmov cx,1mov ah,09hint 10hpop cx retcar_l endp;右拐的處理draw_rr: ;畫小車mov mode,1call car_rretcar_r proc near;小車圖形子程序 mov dh,row mov dl,column mov cx,10 lea di,cars+2one_r: add dh,di+0;置光標(biāo)行add dl,di+1;置光標(biāo)列mov ah,2int 10hmov al,di+2;顯示字符的ascii碼mov bl

17、,di+3;顯示字符的屬性skip_r:push cxmov cx,1mov ah,09hint 10hpop cxadd di,4loop one_r ;右前燈亮 mov dh,row mov dl,columnlea di,cars+6add dh,di+0;置光標(biāo)行add dl,di+1;置光標(biāo)列mov ah,02hint 10hmov al,di+2;顯示字符的ascii碼 mov bl,4;顯示字符的屬性mov cx,1mov ah,09hint 10hpop cxadd dh,3;左后燈亮 add dl,+1mov ah,02hint 10hmov al,di+2;顯示字符的asc

18、ii碼mov bl,4;顯示字符的屬性push cxmov cx,1mov ah,09hint 10hpop cxretcar_r endp;后退的處理draw_dd: ;畫小車mov mode,1call car_dretcar_d proc near;小車圖形子程序 mov dh,row mov dl,column mov cx,10 lea di,cars+2one_d: add dh,di+0;置光標(biāo)行add dl,di+1;置光標(biāo)列mov ah,2int 10hmov al,di+2;顯示字符的ascii碼mov bl,di+3;顯示字符的屬性skip_d:push cxmov cx

19、,1mov ah,09hint 10hpop cxadd di,4loop one_dmov dh,row mov dl,column add dh,3;左后燈亮 add dl,-1mov ah,02hint 10hmov al,4fh;顯示字符的ascii碼mov bl,4;顯示字符的屬性push cxmov cx,1mov ah,09hint 10hpop cx ;右后燈亮 add dl,+3mov ah,02hint 10hmov al,4fh;顯示字符的ascii碼mov bl,4;顯示字符的屬性push cxmov cx,1mov ah,09hint 10hpop cxcall mu

20、sic retcar_d endpdraw_ss: ;畫小車mov mode,1call car_stopretcar_stop proc near;小車圖形子程序 mov dh,row mov dl,column mov cx,10 lea di,cars+2one_stop: add dh,di+0;置光標(biāo)行add dl,di+1;置光標(biāo)列mov ah,2int 10hmov al,di+2;顯示字符的ascii碼mov bl,di+3;顯示字符的屬性skip_stop:push cxmov cx,1mov ah,09hint 10hpop cxadd di,4loop one_stop

21、;右前燈亮 mov dh,row mov dl,columnlea di,cars+6add dh,di+0;置光標(biāo)行add dl,di+1;置光標(biāo)列mov ah,02hint 10hmov al,di+2;顯示字符的ascii碼 mov bl,4;顯示字符的屬性mov cx,1mov ah,09hint 10hpop cx;左前燈亮add dl,-1mov ah,02hint 10hmov al,4fh;顯示字符的ascii碼mov bl,4;顯示字符的屬性push cxmov cx,1mov ah,09hint 10hpop cxmov dh,row mov dl,column add dh,3;左后燈亮 add dl,-1mov ah,02hint 10hmov al,4fh;顯示字符的ascii碼mov bl,4;顯示字符的屬性push cxmov cx,1mov ah,09hint 10hpop cx ;右后燈亮 add dl,+3mov ah,02hint 10hmov al,4fh;顯示字符的ascii碼mov bl,4;顯示字符的屬性push cxmov cx,

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論