版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、信息科學(xué)與技術(shù)學(xué)院微機(jī)原理與接口技術(shù)課程設(shè)計(jì)報(bào)告 題目名稱: 車燈控制系統(tǒng) 學(xué)生姓名: 郭麗 學(xué) 號(hào): 2009082210 專業(yè)年級(jí): 計(jì)科09級(jí) 指導(dǎo)教師: 裘祖旗 時(shí) 間: 2012年1月 目錄1.課程設(shè)計(jì)題目及要求-31.1課程設(shè)計(jì)的目的-31.2課程設(shè)計(jì)的題目-31.3課程設(shè)計(jì)的要求-32.功能設(shè)計(jì)-32.1功能設(shè)計(jì)-32.2系統(tǒng)流程圖-43.詳細(xì)設(shè)計(jì)-5 3.1設(shè)計(jì)方法-53.2各功能模塊及流程圖-54.運(yùn)行結(jié)果-94.1開始界面-94.2按w鍵小車前進(jìn)-94.3按a鍵小車左拐-94.4按d鍵小車右拐-94.5按s鍵小車后退-94.6按b鍵小車停止-95.課程總結(jié)-126.參考文獻(xiàn)
2、-137.附錄-131.課程設(shè)計(jì)的目的、題目及要求1.1課程設(shè)計(jì)的目的進(jìn)行程序設(shè)計(jì)方法和技能的基本訓(xùn)練,鞏固在課堂上學(xué)到的有關(guān)程序設(shè)計(jì)和芯片的基本知識(shí)和基本方法,通過實(shí)際動(dòng)手能力的培養(yǎng),進(jìn)一步熟悉匯編語言的結(jié)構(gòu)和使用方法,進(jìn)一步的了解常用芯片的用法,達(dá)到能獨(dú)立閱讀、編制和調(diào)試一定規(guī)模的匯編語言程序的水平。1.2課程設(shè)計(jì)的題目汽車車燈控制系統(tǒng)1.3課程設(shè)計(jì)的要求(1)實(shí)現(xiàn)停止時(shí)的指示燈;(2)實(shí)現(xiàn)汽車轉(zhuǎn)向時(shí)指示(3)實(shí)現(xiàn)倒車指示擴(kuò)展功能:實(shí)現(xiàn)倒車的聲音提示2.功能設(shè)計(jì)2.1功能設(shè)計(jì)本程序?qū)?shí)現(xiàn)用鍵盤的asdwb鍵控制小車的轉(zhuǎn)向,前進(jìn),停止及后退。當(dāng)小車左拐是實(shí)現(xiàn)小車左邊的前后燈亮,當(dāng)小車右拐是實(shí)
3、現(xiàn)小車的右邊的前后燈亮,當(dāng)小車前進(jìn)的時(shí)候不需要指示燈,當(dāng)小車后退的時(shí)候后邊的兩個(gè)燈同時(shí)亮,同時(shí)伴隨著音樂提示。其功能模塊圖如下所示:汽車車燈控制系統(tǒng)實(shí)現(xiàn)停止時(shí)指示燈提示實(shí)現(xiàn)后退時(shí)音樂提示實(shí)現(xiàn)后退時(shí)指示燈提示實(shí)現(xiàn)右拐指示燈提示實(shí)現(xiàn)左拐指示燈提示2.2系統(tǒng)流程圖開始n檢測鍵盤是否有控制鍵按下yy是否為向上鍵w向上處理n是否為向下鍵sy向下處理n是否為向左鍵ay向左處理n是否為向右鍵dy向右處理n是否為空格鍵y結(jié)束退出nyn是否為停止鍵b停止處理3.詳細(xì)設(shè)計(jì)3.1設(shè)計(jì)方法 該課程設(shè)計(jì)通過測試是否有鍵盤輸入及測試輸入的字符來執(zhí)行相應(yīng)的功能。在數(shù)據(jù)段中存放著繪制小車形狀所需要的各個(gè)字符的相對(duì)位置及其顏色
4、屬性的數(shù)據(jù)段cars,以及要實(shí)現(xiàn)小車倒車提示音樂時(shí)所需要的音樂數(shù)據(jù)段mus_freg和mus_time 。 在程序中通過跳轉(zhuǎn)到相應(yīng)的程序段和調(diào)用相應(yīng)的子程序來完成相應(yīng)的功能。 子程序direction檢測是否有鍵盤輸入以及判斷是何種輸入子程序car繪制小車的形狀及擦出小車子程序music實(shí)現(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、個(gè)后燈畫為紅色并輸出一段音樂檢測鍵盤輸入(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.運(yùn)行結(jié)果4.1開始界面4.2按w鍵小車前進(jìn)4.3按a鍵小車左拐
6、4.4按d鍵小車右拐4.5按s鍵小車后退4.6按b鍵小車停止5.課程總結(jié)在臨近期末,正值我們帶著喜悅回家的時(shí)候,我們搞了一個(gè)微機(jī)原理與接口技術(shù)的課程設(shè)計(jì)。以前還以為這個(gè)課程設(shè)計(jì)很神秘,對(duì)它充滿著期待。搞完這個(gè)之后,才知道這個(gè)東西也沒什么,只要你認(rèn)真做你就會(huì)明白怎么做的。剛開始選題的時(shí)候,我看到這個(gè)題目很有意思,因?yàn)橐郧皼]有用匯編語言做過關(guān)于動(dòng)畫這方面的程序,所以就選了這個(gè)題目。說實(shí)話,剛開始下手的時(shí)候,我還真是一頭霧水,不知道該怎么做,老師上課的時(shí)候也沒有講過。于是,我就到網(wǎng)上查了一些相關(guān)的資料,看完動(dòng)畫設(shè)計(jì)那塊的時(shí)候,我才明白了該怎么做。動(dòng)畫無非分兩種動(dòng)畫,一種是逐幀動(dòng)畫,另一種是實(shí)時(shí)動(dòng)畫,
7、當(dāng)然,這里是逐幀動(dòng)畫。逐幀動(dòng)畫設(shè)計(jì)起來相對(duì)來說比較簡單,就是一組圖像按一定的頻度連續(xù)播放,給人一種視覺上的效應(yīng),好像這個(gè)東西真的動(dòng)起來了!其實(shí),做這個(gè)題之前,我也從網(wǎng)上下了一些別人以前做過的關(guān)于這方面的程序,我發(fā)現(xiàn)他們的程序代碼比較多,可讀性比較差,代碼冗長,于是,我決定自己做一個(gè)代碼較少,可讀性較好的程序。搞完這次課程設(shè)計(jì),我更加明白數(shù)學(xué)和邏輯推理對(duì)程序設(shè)計(jì)的重要性,找到簡單、合適及高效的算法可以大大節(jié)約程序運(yùn)行的時(shí)間和空間,優(yōu)化了程序,提高了程序運(yùn)行的效率,這對(duì)于一個(gè)優(yōu)秀的程序設(shè)計(jì)員來說非常重要。老師,說實(shí)話,你讓我們搞課程設(shè)計(jì)其實(shí)是給了我們一個(gè)自己動(dòng)手的設(shè)計(jì)機(jī)會(huì)。也許大學(xué)的意義不在于整體
8、,而在于個(gè)人,看自己怎么學(xué),不可能像中學(xué)那樣讓老師天天督促我們,畢竟,我們是成年人了!6.參考文獻(xiàn)1 ibm-pc匯編語言程序設(shè)計(jì) 沈美明 清華大學(xué)出版社 2001年8月第2版 3 微機(jī)系統(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時(shí)畫小車,mode=0時(shí)清除小車 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時(shí)畫小車,mode=0時(shí)清除小車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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- NB/T 11536-2024煤礦帶壓開采底板井下注漿加固改造技術(shù)規(guī)范
- 《市場調(diào)查課程考核》課件
- 《電化學(xué)催化》課件
- 《小學(xué)生說明文》課件
- 單位管理制度集合大合集【職員管理】十篇
- 單位管理制度匯編大合集【職工管理篇】
- 單位管理制度合并匯編職員管理篇
- 《淋巴結(jié)斷層解剖》課件
- 單位管理制度分享合集人事管理
- 單位管理制度范文大合集人員管理十篇
- 中國風(fēng)鎏金年終總結(jié)PPT模板
- 年產(chǎn)萬噸丁二烯畢業(yè)設(shè)計(jì)
- 醫(yī)學(xué)課件-檢驗(yàn)科質(zhì)量控制教學(xué)課件
- 高中化學(xué)必修二教學(xué)進(jìn)度表
- T-CAAMM 8-2018 動(dòng)力換檔拖拉機(jī) 通用技術(shù)條件
- 收款賬戶確認(rèn)書
- 消防水池 (有限空間)作業(yè)安全告知牌及警示標(biāo)志
- 修復(fù)學(xué)全口義齒
- 機(jī)械設(shè)備租賃合同范本簡單版(9篇)
- 美甲顧客檔案表Excel模板
- 公安警察工作總結(jié)匯報(bào)PPT模板
評(píng)論
0/150
提交評(píng)論