微機(jī)原理與接口技術(shù)課程設(shè)計_第1頁
微機(jī)原理與接口技術(shù)課程設(shè)計_第2頁
微機(jī)原理與接口技術(shù)課程設(shè)計_第3頁
微機(jī)原理與接口技術(shù)課程設(shè)計_第4頁
微機(jī)原理與接口技術(shù)課程設(shè)計_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計實驗報告課程名稱 微機(jī)原理與接口技術(shù)課程設(shè)計實驗名稱 proteus仿真實驗實驗?zāi)康模?通過使用proteus軟件模擬原先在硬件平臺上搭建的數(shù)字錄音機(jī)電路,系統(tǒng)地學(xué)習(xí)從零開始用芯片搭建一個數(shù)字電路,并且在此電路基礎(chǔ)上運(yùn)行由匯編語言代碼轉(zhuǎn)換來的機(jī)器語言代碼,使之完成模擬信號的模數(shù)轉(zhuǎn)換、數(shù)模轉(zhuǎn)換兩個過程。實驗內(nèi)容: 1.數(shù)字錄音機(jī)模擬仿真實驗實驗環(huán)境:硬件配置:windows xp軟件配置:protues isis實驗要求: 無。實驗步驟及結(jié)果分析: 1.模擬硬件平臺的搭建由于之前已經(jīng)完成了硬件平臺上數(shù)字錄音機(jī)電路的搭建,因此在這次試驗中我們開始時主要借鑒了硬件平臺上的電路布局來進(jìn)行芯片選

2、擇和連接,主要還是使用了原先用過的8255、8253、adc0808、dac0832等芯片,同時由于在這次試驗環(huán)境中,我們所模擬的是一個沒有任何操作系統(tǒng)控制的裸機(jī),因此原來實驗中用到的int中斷在這次試驗中不能使用。鑒于此,我們和其他同學(xué)討論了這個問題,我們發(fā)現(xiàn),在電路中可以使用一個virtual terminal,使其模擬原先試驗中鍵盤的讀入和屏幕的顯示。具體電路圖如下所示:adc0808芯片電路:8086芯片電路:說明:由于在這次試驗中,所有的芯片都沒有事先確定硬件地址,因此還需要用到一個譯碼器,使之用于選擇各個芯片;另外,在多次試驗中,我們發(fā)現(xiàn),8086芯片中的地址輸出應(yīng)先接入到一個地址

3、鎖存器中,因而在此我們也做了相應(yīng)的調(diào)整。地址鎖存器電路和譯碼器電路:8253芯片和8255芯片電路:dac0832芯片電路:8251芯片和虛擬中斷電路:2.匯編代碼的編寫和編譯這次試驗主要還是使用了上次試驗中我們編寫的代碼,但是對其中的一些部分做了改動,比如去掉了原先使用的int中斷代碼,將其替換為只是簡單地把數(shù)據(jù)輸入8251芯片,而把原先中斷讀入的任務(wù)交給了virtual terminal。代碼如下所示:ioportequ0a400h - 280hio8253equioport + 280hio8253cequio8253 + 6hio8255equioport + 288hio8255ce

4、quio8255 + 6hio0832equioport + 290hio0808equioport + 298hio8251equioport + 2a0hio8251cequio8251 + 2hdata segmentbufdb1000 dup(?)msg1dbpress any key to start recording. press esc to leave.,0dh,0ah,$msg2dbrecording.,0dh,0ah,$msg3dbplaying.,0dh,0ah,$data endsstacksegmentstackdb100h dup(?)stack endscode

5、 segmentassume cs:code, ds:data, ss:stackstart:movax,datamovds,ax;8251初始化movdx,io8251cmoval,4ahoutdx,alnopmoval,5houtdx,alnop;8255初始化movdx,io8255cmoval,90houtdx,albegin:leasi,msg1callprintcallscancmpal,27 ;若按鍵為esc鍵,則退出jzexitstartrecord:leasi,msg2callprintmovcx,500leadi,bufmovdx,io0808rec:outdx,alcal

6、ldelay ;開始一個計時inal,dxmovdi,alincdilooprecleasi,msg3callprintleadi,bufmovcx,500movdx,io0832play:moval,dioutdx,alcalldelaynopincdiloopplayjmpbeginexit:jmpexit;啟動一個計時delayproc nearpushdxmovdx,io8253cmoval,10houtdx,almovdx,io8253moval,166;此處數(shù)值可以依據(jù)具體情況進(jìn)行調(diào)整outdx,almovdx,io8255outtest: ;用查詢方式查看8255pa0口是否有高

7、電平輸入(即8253是否計時結(jié)束)inal,dxtestal,01hjzouttestpopdxretdelayendp;功能說明:打印si里的字符串printproc nearpushaxpushbxpushdxprint_start:movbl,sicmpbl,$jzprint_end;由于int中斷指令存在于windows操作系統(tǒng),;而本實驗中所使用電路相當(dāng)于一個裸機(jī),;因而不能調(diào)用int中斷,;只能通過使用軟件中所提供的器件虛擬終端來實現(xiàn)外部中斷(鍵盤輸入)功能wait8251:movdx,io8251cinal,dxandal,1jzwait8251movdx,io8251outdx

8、,almoval,bloutdx,alincsijmpprint_startprint_end:popdxpopbxpopaxretprintendp;將終端輸入字符讀入alscanproc nearpushdxscan_wait:movdx,io8251cinal,dxandal,2jzscan_waitmovdx,io8251inal,dxpopdxretscanendpcode ends end start編譯代碼:首先要在系統(tǒng)中安裝ml615,安裝完成后按windows+r鍵打開命令提示符窗口,在窗口中輸入以下代碼:然后點擊回車,即對所編寫的recordtest.asm源文件進(jìn)行編譯,

9、生成一個recordtest.exe文件并存放到e:ml615文件夾中:3.運(yùn)行可執(zhí)行文件(機(jī)器代碼)打開電路圖,右鍵點擊8086芯片,選擇edit component選項,如下所示:在program file一欄點擊文件型按鈕,輸入需要運(yùn)行的源代碼的地址,點擊0k即可。在本例中,源代碼地址為e:ml615recordtest.exe點擊proteus左下角三角形按鈕,即可運(yùn)行代碼,如下所示:在本次試驗中,我們錄音的聲源是方波,其頻率為300hz,錄音、放音時的效果如下所示:實驗總結(jié): 我們組的4位同學(xué)都是準(zhǔn)備考研的,做這次試驗的時間比較緊張,我們都是利用比較零散的時間做,因此整個進(jìn)度斷斷續(xù)續(xù)。中間也遇到了不少的問題,比如原先硬件平臺上可以屏顯的效果如何在proteus環(huán)境下實現(xiàn)、按鍵中斷如何實現(xiàn)、硬件地址如何確定、編譯后的代碼如何調(diào)試等等。不過,經(jīng)過大家的努力,我們最終還是完成

溫馨提示

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

評論

0/150

提交評論