東華大學微機硬件實驗報告_第1頁
東華大學微機硬件實驗報告_第2頁
東華大學微機硬件實驗報告_第3頁
東華大學微機硬件實驗報告_第4頁
東華大學微機硬件實驗報告_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

..東華大學微機原理實驗__電氣 ____東華大學信息學院硬件實驗部分一、綜合設計實驗部分一、設計要求參考基礎實驗的實驗1~實驗5所使用的硬件和范例程序,設計一個簡單的紅綠燈控制系統,用LED1~LED4表示兩組紅綠燈,每組紅燈、綠燈各1只。要求實現以下功能:<1>紅綠燈的定時切換〔每10秒切換一次<2>設置燈光測試開關K1,當K1打開〔高電平時,LED1~LED4全亮,關閉時恢復正常切換。提示:<1>定時功能可利用8253實現,利用定時器輸出作為中斷申請,利用中斷處理切換LED的顯示;LED狀態可用內存保存或用I/O口讀取。<2>測試功能運行可在主循環中通過I/O口讀取開關狀態后判定,或利用中斷處理方式運行。二、報告要求:1外圍芯片信號連接原理圖〔與CPU連接部分可省略2程序的流程圖、源代碼和源代碼行中必要的注釋3調試中遇到的問題和解決方法三、程序源代碼及流程框圖:assumecs:codecodesegmentpublicorg100hst: movdx,04c0h;74LS244地址inal,dx;讀輸入開關量movdx,04d0h;74LS273地址outdx,al;輸出至LEdtestal,18hjnestartjmpststart:mov dx,04b6h ;控制寄存器 mov ax,36h ;計數器0,方式3 out dx,ax mov dx,04b0h mov ax,7Ch out dx,ax mov ax,92h out dx,ax ;計數值927Cmov dx,04b6hmov ax,0b6h ;計數器2,方式3out dx,axmov dx,04b4hmov ax,90hout dx,axmovax,01 out dx,axnext:nopstart1: mov dx,04a6h ;控制寄存器地址 mov ax,90h ;設置為A口輸入,B口輸出,c口輸出 out dx,ax movdx,04c0h;74LS244地址inal,dx;讀輸入開關量testal,18hjeststart2: mov dx,04a0h;A口地址 in ax,dx ;輸入 mov dx,04a2h ;B口地址 out dx,ax ;輸出movdx,04a4h ;c口地址notax out dx,ax ;輸出movdx,04c0h;74LS244地址inal,dx;讀輸入開關量testal,18hjest jmp start2jmpnextcode endsend st四:解決問題及原理圖二、基礎實驗部分實驗1存儲器讀寫實驗一、實驗設備微機實驗箱、8086CPU模塊。二、實驗步驟和要求1、實驗接線:本實驗無需接線。2、編寫調試程序3、運行實驗程序,可采取單步、設置斷點方式,打開內存窗口可看到內存區的變化。三、思考題源程序代碼及流程框圖codesegment assumecs:code org0100hstart: movax,0100h movds,ax ;數據段地址 moves,ax movsi,1000h ;偏移地址 movcx,010h ;循環次數 moval,0intram: mov[si],al incsi loopintram;清零 movsi,1000h ;設置斷點處 movcx,10h movdi,0fil: movax,dimov[si],al;RAM區循環置數incdi incsi loopfil nop ;設置斷點處 jmpstartcodeendsendstart思考題:單步執行到"intram"標號的語句時,ds寄存器的數據是什么?采用斷點方式運行時執行到第一個斷點處,2000H~202FH內存單元的數據是什么?執行到第二個斷點處,2000H~200FH內存單元的數據是什么?并根據觀察結果和對源程序的判讀簡述源程序的運行效果。2、修改程序,實現從2000H到200FH單元依次賦值00H~0FH的功能。解決問題:剛開始,沒有注意將循環次數改掉,CX依舊弄成了100H,后來弄成010H,正好和要求一樣。之后的目標單元置數是正確的,符合要求。實驗2簡單I/O口擴展實驗實驗設備微機實驗箱、8086CPU模塊。二、實驗步驟1、實驗接線:<表示相互連接>CS2CS244;CS3CS273;平推開關的輸出K1~K8IN0~IN7〔對應連接;O0~O7LED1~LED8。2、編輯程序,單步運行,調試程序3、調試通過后,全速運行程序,觀看實驗結果。4、編寫實驗報告。三、思考題源程序代碼及流程框圖assumecs:codecodesegmentpublicorg100hstart: movdx,04c0h;74LS244地址inal,dx;讀輸入開關量movdx,04d0h;74LS273地址outdx,al;輸出至LEDjmpstartcodeendsendstart四、思考題:將74LS244的片選信號CS244改接CS2,將74LS273的片選信號CS273改接CS3,修改程序實現與范例程序相同的功能。解決問題:這個思考題修改沒出什么問題,就是把信號改接的位置換了一下,編程序時,將地址改一下,就成功了。實驗38255并行口實驗一、實驗設備微機實驗箱、8086CPU模塊。二、實驗步驟1、實驗接線CS2CS8255;PA0~PA7平推開關的輸出K1~K8;PB0~PB7發光二極管的輸入LED1~LED8。2、編程并全速或單步運行。3、全速運行時撥動開關,觀察發光二極管的變化。當開關某位置于H時,對應的發光二極管點亮,置于L時熄滅。三、思考題源程序代碼及流程框圖assumecs:code codesegmentpublic org100hstart: mov dx,04c6h ;控制寄存器地址 mov ax,90h ;設置為A口輸入,B口輸出 out dx,ax start1: mov dx,04c0h ;A口地址 in ax,dx ;輸入xorax,0ffffh mov dx,04c2h ;B口地址 out dx,ax ;輸出 jmp start1code endsend start四、思考題:1、修改接線CS2CS8255,并要求開關置"H"<下>位置時對應LED亮,修改程序實現相應功能。解決問題:和第二個實驗一樣,將CS8255的接線地址換一下,沒出問題。但我和搭檔在之后的取反時弄錯了,弄成了00000H,后來實驗結果不對,想了一下,發現這個有錯誤,就改成了0ffffH。結果對了。實驗48253定時器/計數器接口實驗一、實驗設備微機實驗箱、8086CPU模塊、示波器。二、實驗步驟1、實驗連線:CS1CS8253OUT08253CLK2OUT2LED1OUT1LED2CLK38253CLK0,CLK38253CLK12、編程調試程序3、全速運行,觀察實驗結果三、思考題源程序代碼及流程框圖assumecs:codecodesegmentpublicorg100hstart: mov dx,04b6h ;控制寄存器 mov ax,36h ;計數器0,方式3 out dx,ax mov dx,04b0h mov ax,7Ch out dx,ax mov ax,92h out dx,ax ;計數值927Ch mov dx,04b6h mov ax,76h ;計數器1,方式3 out dx,ax mov dx,04b2hmov ax,32hout dx,axmov ax,0 ;計數值32hout dx,axmov dx,04b6hmov ax,0b6h ;計數器2,方式3out dx,axmov dx,04b4hmov ax,50hout dx,axmov ax,0 ;計數值50hout dx,axnext: nop jmp nextcodeendsendstart四、思考題:為什么說范例程序運行時LED1閃爍周期的理論值是0.2秒?在范例程序設置LED2的最大閃爍周期是多少?請分析說明。修改片選信號接線使CS1和CS8253連接,并要求LED1的閃爍周期變為4秒〔亮2秒,滅2秒,修改程序實現功能。解決問題:依舊將CS8253的接線地址改一下,沒出問題,然后將T2的數值弄成之前的20倍。結果正確。實驗58259中斷控制器實驗一、實驗設備微機實驗箱、8086CPU模塊。二、實驗步驟1、實驗接線CS0CS8259CS3CS273O0~O3LED1~LED4K1~K3IR0~IR2INTINT<8086CPU板>INTAINTA〔8086CPU板IR3P+2、編譯調試程序3、全速運行程序,撥動某一電平開關,觀察LED的亮滅情況。"且按Pules"鍵時LED1~LED4全亮。三、思考題源程序代碼及流程框圖assumecs:code codesegmentpublic org100hstart: mov cx,0start1: cli mov dx,04a0h mov ax,13h out dx,ax ;ICW1,ICW4NEEDED mov dx,04a2h mov ax,80h out dx,ax ;ICW2中斷類型80h mov ax,01h;01 out dx,ax ;ICW4 mov ax,00h out dx,ax ;OCW1,開放所有中斷 nop ;以上為8259初始化 mov ax,0 mov ds,ax mov di,200h ;初始化中斷向量表 mov ax,offsetint0 mov ds:[di],ax add di,2 mov ds:[di],100h add di,2 mov ax,offsetint1 mov ds:[di],ax add di,2 mov ds:[di],100h add di,2 mov ax,offsetint2 mov ds:[di],ax add di,2 mov ds:[di],100h add di,2 mov ax,offsetint3 mov ds:[di],ax add di,2;上述程序為芯片8259的初始化程序 mov ds:[di],100h;建議不熟練者不要修改。main: mov ax,0 sti ;開中斷。waiting: cmp ax,0h je waiting ;沒發生中斷,則等待 nop nopmovdx,04d0h out dx,ax ;對應LED燈亮 mov cx,0delay: loop

溫馨提示

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

評論

0/150

提交評論