微機原理課程設計模擬汽車限速_第1頁
微機原理課程設計模擬汽車限速_第2頁
微機原理課程設計模擬汽車限速_第3頁
微機原理課程設計模擬汽車限速_第4頁
微機原理課程設計模擬汽車限速_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、課程設計報告( 年度第 一 學期)課 程: 微機原理及應用 題 目: 模擬汽車限速 院 系: 自動化系 班 級: 自動化1302 學 號: 學生姓名: 指導教師: 設計周數: 一周 成 績: 日期:年 月 日微機原理及應用課程設計任 務 書一、 目的與要求1 通過對微機系統(tǒng)分析和具體設計,使學生加深對所學課程的理解。2 掌握匯編語言程序設計的基本方法和典型接口電路的基本設計方法。3 培養(yǎng)學生分析問題、解決問題的能力。4 培養(yǎng)學生對微型計算機應用系統(tǒng)的基本設計能力。5 提高學生的實踐動手能力和創(chuàng)新能力。二、 主要內容1 模擬汽車限速2 針對所選擇的設計題目進行硬件設計,合理選用所需元器件,繪制系

2、統(tǒng)結構框圖、硬件接線圖,并在實驗系統(tǒng)上完成電路的連接和調試。3 根據所選題目的要求對微機系統(tǒng)進行程序設計,繪制程序總體流程圖并編寫源程序上機調試。4 寫出課程設計報告,對整個設計過程進行歸納和綜合,對設計中所存在的問題和不足進行分析和總結,提出解決的方法、措施、建議和對這次設計實踐的認識和收獲。三、 進度計劃序號設計內容完成時間備注1選擇課程設計題目,查閱相關資料2016年1月11日2進行軟硬件設計2016年1月11日3上機調試2016年1月13日4撰寫設計報告2016年1月14日5演示及答辯2016年1月15日四、 設計成果要求1 系統(tǒng)硬件設計合理,軟件編程達到設計要求。2 系統(tǒng)硬件結構圖和

3、軟件流程圖繪制清楚規(guī)范。3 設計報告完整規(guī)范。五、 考核方式根據設計任務的完成情況、課程設計報告撰寫情況及演示答辯情況采用五級記分制評定成績。 一、課程設計目的與要求1 通過對微機系統(tǒng)分析和具體設計,使學生加深對所學課程的理解。2 掌握匯編語言程序設計的基本方法和典型接口電路的基本設計方法。3 培養(yǎng)學生分析問題、解決問題的能力。4 培養(yǎng)學生對微型計算機應用系統(tǒng)的基本設計能力。5 提高學生的實踐動手能力和創(chuàng)新能力。二、課程設計正文1.設計題目:模擬汽車限速2.設計思想1)總體設計方案本設計主要是模擬汽車限速,通過統(tǒng)計開關次數判斷汽車處于何種狀態(tài)并用led燈及點陣顯示出來,并用按鍵“0”結束系統(tǒng),

4、按鍵“1”重啟系統(tǒng)。8253的計數器0、1分別工作在方式0(計數)、3(方波);用8259來申請中斷;8255用來輸出紅綠燈狀態(tài);用1片74138和4片74574模擬實驗箱上16*16點陣的內部電路設計,用來顯示字符;用幾個邏輯門電路和74373/74245芯片模擬實驗箱上6位7段數碼管的內部電路,并其進行位選。2)系統(tǒng)主要功能手動開關模擬行車速度,每按動開關一次產生一次中斷,統(tǒng)計按的次數,每10秒采集一次統(tǒng)計結果。并用數碼管不斷做精確的10秒倒計時,若按開關次數在6次以內(包括6次),亮綠燈、16*16點陣顯示“安全”;若超過6次(不包括6次),亮黃燈報警、16*16點陣顯示“超速”;若超過

5、8次(不包括8次),亮紅燈表示攔截、揚聲器報警而且16*16點陣顯示“違規(guī)”。3.系統(tǒng)工作原理介紹1.硬件接口電路設計(1)74hc138總譯碼電路如下圖,a15需維持1才能保證74hc138正常工作,則、分別對應地址8000h-8fffh、9000h-9fffh、0a000h-0afffh、0b000h-0bfffh、0c000h-0cfffh。(2)16*16點陣的片選地址為0c000h,則接入其.注:數據總線低8位ad0.7即偶存儲體傳輸數據,即8086的a0需維持0,導致8086的a2、a1接入74hc138的b、a,則16*16點陣的列低八位(clck)、列高八位(chck)、行低八

6、位(rlck)、行高八位(rhck)地址分別為0c000h、0c002h、0c004h、0c006h。 (3)6位7段數碼管的片選地址為0b000h,則接入。注:數據總線低8位ad0.7即偶存儲體傳輸數據,即8086的a0需維持0,導致8086的a3、a2、a1分別接入三個與非門,則數碼管位選/鍵盤列輸出(outbit)、數碼管段選(outseg)地址分別為0b004h、0b008h。(4)8253a的片選地址為0a000h,則接入。計數器0、1分別工作在方式0(計數)、3(方波)a.clk0、clk1接入125 khz的時鐘源;b.out0持續(xù)輸出低電平直至2ms后變高電平,out1輸出的2

7、500hz方波接出蜂鳴器;c.gate0接入電源保證計數器0能持續(xù)計數,gate1接入q3即8255的pa3口。 注:數據總線低8位ad0.7即偶存儲體傳輸數據,即8086的a0需維持0,導致8086的a2、a1接入8253a的a1、a0,則8253a的計數器0、計數器1、控制器地址分別為a000h、a002h、a006h。 (5)8255a的片選地址為8000h,則接入。a. pa口輸出數據:pa3、pa2、pa1、pa0分別接出8253的gate1(控制計數器1是否工作,即決定蜂鳴器是否發(fā)聲)、紅色led、黃色led、綠色led(控制led的亮滅);b. pb口讀入數據:pb0接入8253

8、的out0(通過讀入out0狀態(tài),判斷是否已到2ms)。注:數據總線低8位ad0.7即偶存儲體傳輸數據,即8086的a0需維持0,導致8086的a2、a1接入8255a的a1、a0,則8255a的pa口、pb口、控制器地址分別為8000h、8002h、8006h。 (6)proteus的8086模型取的中斷號是最后一次io操作時總線上的數據, 而非 8259 設置的中斷號。擔心這個缺陷給后續(xù)仿真帶來影響,故proteus中暫時不使用8259a,直接向8086的nmi端接入中斷請求信號(由開關提供),上升沿觸發(fā)中斷。但在實驗室中需由8259a提供中斷申請,電路也需做出修改。8259a的片選地址為

9、9000h,則接入ir2端輸入中斷請求信號(由開關提供)上升沿觸發(fā)。5.系統(tǒng)調試結果1.上一個10s之內不按開關,結果為:綠燈亮,16*16點陣滾動顯示“安全”。2. 上一個10s之內按7次開關,結果為:黃燈亮,16*16點陣滾動顯示“超速”。3.上一個10s之內按12次開關,結果為:紅燈亮,蜂鳴器發(fā)出響聲,16*16點陣滾動顯示“違規(guī)”。三、課程設計總結1)問題分析與總結在實驗室搭建硬件電路要注意與proteus上的區(qū)別,有些是在proteus上可以連接的,但在實驗箱上是沒有的。比如nmi中斷,又比如在proteus上5253芯片有3個計數器,但在實驗箱上只有2個計數器。在實驗箱上16*16

10、點陣是可以顯示完整的漢字的,但在proteus上第8列單步運行時是可以被點亮,但全速運行時不能被點亮,這個問題目前還沒有被解決。也是在proteus仿真中,點陣顯示個別漢字時仍看得到閃爍,證明動態(tài)顯示做得不夠好,嘗試過幾種方法,比如:掃描換為列掃描;考慮可能是未消隱帶來影響,掃描下一行前,關掉所有行;原意為2ms掃描一行(對應頻率為31.25hz),實際上還需執(zhí)行其他指令,會延長掃描時間即降低頻率,可能會到達人眼可分辨的區(qū)間內,故試圖1ms掃描一行,但1s計數次數cx增加至512左右時程序會跑飛,且暫時原因不明,目前尚未能解決這個問題。2)實驗心得本次試驗從最開始的嘗試到最后全部完成,歷經很長

11、時間,做了很多努力,讓我們都非常欣慰,在做實驗的過程中,不斷嘗試,優(yōu)化,大大提高了我們對專業(yè)知識的掌握,設計的過程雖然有點辛苦,但都很開心,我認為這點很重要。希望每次的實驗都可以從興趣而發(fā),以樂趣結束,不再為書本而苦惱。相信我們也會越做越好。另外感謝老師的耐心指導和周圍同學們的無私幫助,給了我們很大的幫助。四、參考文獻 1 馬平,姚萬業(yè),微機原理及應用,北京:中國電力出版社,2002.12附錄(設計流程圖、程序等)設計流程圖:源程序及注釋;proteus:加入數碼管,2ms列掃描點陣,使用nmi中斷a8255 equ 8000h ;8255的pa口地址b8255 equ 8002h ;8255

12、的pb口地址k8255 equ 8006h ;8255控制器地址o8259 equ 9000h ;8259偶地址j8259 equ 9002h ;8259奇地址j8253_0 equ 0a000h ;8253計數器0地址j8253_1 equ 0a002h ;8253計數器1地址k8253 equ 0a006h ;8253控制器地址keyin equ 0b002h ;鍵盤行讀入outbit equ 0b004h ;數碼管位選/鍵盤列輸出地址outseg equ 0b008h ;數碼管段選地址collow equ 0c000h ;點陣列低八位地址colhigh equ 0c002h ;點陣列高八

13、位地址 rowlow equ 0c004h ;點陣行低八位地址rowhigh equ 0c006h ;點陣行高八位地址code segment assume cs:codestart:cli ;關中斷;8253a初始化(clk0=clk1=125000hz) mov dx,k8253 mov al,30h ;00110000b out dx,al ;計數器0:工作方式0(計數)+二進制 mov al,76h ;01110110b out dx,al ;計數器1:工作方式3(方波)+二進制 mov dx,j8253_0 mov al,0fah ;計數器0預置值250=0fah out dx,al

14、 ;計數器0持續(xù)低電平直至2ms后變高電平 mov al,00h out dx,al mov dx,j8253_1 mov al,32h ;計數器1預置值50=32h out dx,al ;計數器1輸出2500hz方波 mov al,00h out dx,al;8255初始化 mov dx,k8255 mov al,82h ;10000010b=82h out dx,al ;a口方式0輸出,b口方式0輸入;非規(guī)范裝入nmi中斷向量 mov ax,0 mov ds,ax ;中斷向量表段基址0000h mov bx,02h*4 ;bx為nmi即2號中斷向量指針 mov ax,offset intp

15、 mov bx,ax inc bx inc bx mov ax,seg intp ;中斷子程序intp入口地址 mov bx,ax ;放入nmi中斷向量表2號;主程序 mov dx,a8255 mov al,00h ;led全滅+計時器2停止工作 out dx,al mov ax,data mov ds,ax sti ;開中斷 l8: mov bh,5 ;速度標志初始化為5;等待定時時間到l0: mov di,0 ;中斷統(tǒng)計次數初始化為0 mov bl,10 ;10s計數次數初始化為10l1: mov cx,0 ;1s計數次數初始化為0l2: mov dx,b8255 in al,dx ;讀o

16、ut0即pb0口狀態(tài) and al,01h ;屏蔽pb口高7位 cmp al,1 ;out0輸出高電平則2ms到 jnz l2 ;2ms到則重新啟動計數器0 mov dx,k8253 mov al,30h ;01110000b out dx,al ;計數器0:工作方式0(計數)+二進制 mov dx,j8253_0 mov al,0fah ;計數器0預置值250=0fah out dx,al mov al,00h out dx,al ;考慮7段數碼管顯示 cmp bl,9 jle l6 ;bl=9轉到l6 call smg1 ;bl=10調用smg1;考慮16*16點陣顯示l6: cmp bh

17、,5 je l3 ;bh=5轉到l3 call dian ;bh!=5調用dianl3: inc cx cmp cx,500 jnz l2 ;cx=500則1s到 mov dx,outbit mov al,0dfh ;11011111b out dx,al ;低電平掃描第1列 mov dx,keyin in al,dx ;讀第1列的行鍵 not al and al,0fh ;屏蔽無用的高4行 cmp al,1 jne l7 call stop ;al=1(即按下鍵0)調用stop jmp l8l7: call smg2 ;調用smg2 dec bl jnz l1 ;bl=0則10s到;空,空,

18、空,空,聲,紅,黃,綠(高電平:點燈+計時器1輸出方波) cmp di,8 jg l5 cmp di,6 jg l4 mov dx,a8255 mov al,01h ;00000001b out dx,al ;di=6即未超速,點綠燈 mov bh,0 jmp l0l4: mov dx,a8255 mov al,02h ;00000010b out dx,al ;6di8即嚴重超速,點紅燈+啟動揚聲器 mov bh,2 jmp l0;按下鍵0停止系統(tǒng)子程序stop proc near;關閉led和揚聲器 mov dx,a8255 mov al,00h out dx,al;關閉6位數碼管 mov

19、 dx,outseg mov al,00h out dx,al;關閉點陣所有列 mov al,0ffh mov dx,collow out dx,al mov dx,colhigh out dx,al;查詢按鍵1是否按下(即重啟系統(tǒng))t0: mov dx,outbit mov al,0dfh ;11011111b out dx,al ;低電平掃描第1列 mov dx,keyin in al,dx ;讀第1列的行鍵 not al and al,0fh ;屏蔽無用的高4行 cmp al,2 jne t0 ret ;al=2(即按下鍵1)返回stop endp;數碼管動態(tài)顯示10子程序smg1 pr

20、oc near push cx mov ax,cx ;ax=cx mov cl,2 ;cl=2 div cl ;ax%cl=cx%2=ah cmp ah,0 jnz s1s0: mov dx,outbit mov al,01h ;00000001b選wei0 out dx,al mov dx,outseg mov al,3fh ;顯示0 out dx,al jmp s3s1: mov dx,outbit mov al,02h ;00000010b選wei1 out dx,al mov dx,outseg mov al,06h ;顯示1 out dx,als3: pop cx retsmg1 e

21、ndp;數碼管靜態(tài)顯示91子程序smg2 proc near push bx mov bh,0 dec bl ;bx=bl mov si,bx ;si=bx=bl lea bx,smgdm mov dx,outbit mov al,01h ;00000001b選wei0 out dx,al mov dx,outseg mov al,bx+si ;顯示 out dx,al pop bx retsmg2 endp;點陣動態(tài)顯示漢字子程序dian proc near push cx push bx;選出要掃描的列(每隔4ms掃描下列) mov ax,cx mov cl,16 div cl ;ax%c

22、l=cx%16=ah mov cl,ah ;cl存放右移次數;選出本列要輸出的行數據 shl ah,1 mov al,ah ;al=ah*2 mov ah,0 mov si,ax ;si存放行數據的相對位置;向要掃描的列放入低電平 mov ax,7fffh ;0111111111111111b ror ax,cl mov dx,collow out dx,al mov dx,colhigh mov al,ah out dx,al;選擇要輸出哪組字:安全,超速,違規(guī) shl bh,1 shl bh,1 ;bh=bh*4 mov cl,bh ;cl存放組相對table的位置;選擇本組要輸出的字(第

23、1、第2個字隔1s輸出) mov bh,0 mov ax,bx mov bl,2 div bl ;bl%2=ah shl ah,1 ;ah存放字相對組的位置 add cl,ah mov ch,0 ;cx存放字相對table的位置 push si mov si,cx lea bx,table mov cx,bx+si mov bx,cx ;bx存放字相對data的位置 pop si;高電平選擇輸出的行 mov dx,rowhigh mov al,bx+si out dx,al mov dx,rowlow mov al,bx+si+1 out dx,al pop bx pop cx retdian

24、 endp;中斷服務子程序intp proc near inc di iretintp endpcode ends ;code邏輯段結束data segment ;data邏輯段開始;共陰極數碼管段碼表smgdm db 3fh,06h,5bh,4fh ;0-7 db 66h,6dh,7dh,07h db 7fh,6fh,77h,7ch ;8-f db 39h,5eh,79h,71h;字模低電平列掃描,高電平點亮行(先輸出高8位,后輸出低8位);安z1_0 db 01h,00h,09h,01h,31h,01h,21h,21h db 21h,62h,21h,92h,0afh,14h,61h,08h

25、 db 21h,08h,21h,34h,21h,0c4h,21h,02h db 29h,01h,31h,00h,01h,00h,00h,00h;全z1_1 db 01h,00h,01h,02h,02h,02h,04h,22h db 0ah,22h,12h,22h,22h,22h,0c3h,0feh db 22h,22h,12h,22h,0ah,22h,04h,22h db 02h,02h,01h,02h,01h,00h,00h,00h;超z2_0 db 02h,01h,12h,06h,12h,0f8h,12h,04h db 0ffh,0feh,12h,22h,12h,22h,42h,02h d

26、b 45h,0f2h,79h,12h,41h,12h,45h,12h db 43h,12h,7dh,0f2h,00h,02h,00h,00h;速z2_1 db 02h,00h,02h,02h,42h,04h,33h,0f8h db 00h,04h,20h,12h,2fh,22h,29h,42h db 29h,82h,0ffh,0fah,29h,82h,29h,42h db 2fh,22h,20h,12h,00h,02h,00h,00h ;違 z3_0 db 02h,02h,42h,04h,33h,0f8h,00h,04h db 20h,82h,24h,82h,24h,82h,24h,82h d

27、b 0ffh,0feh,24h,82h,24h,82h,24h,92h db 24h,8ah,20h,0f2h,00h,02h,00h,00h;規(guī)z3_1 db 01h,02h,11h,04h,11h,18h,0ffh,0e0h db 11h,10h,11h,0dh,01h,02h,7fh,0c4h db 40h,18h,40h,60h,4fh,80h,40h,7eh db 40h,01h,7fh,0c1h,00h,07h,00h,00h;字模表(1個字占2字節(jié),1組字占4字節(jié))table dw z1_0,z1_1,z2_0,z2_1,z3_0,z3_1data ends ;data邏輯段結束 end start ;源程序結束在實驗室中,代碼須作出以下修改:;地址修改a8255 equ 8000h ;8255的pa口地址b8255 e

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論