計(jì)算機(jī)綜合實(shí)踐《電氣工程及其自動(dòng)化》
《計(jì)算機(jī)綜合實(shí)踐《電氣工程及其自動(dòng)化》》由會(huì)員分享,可在線閱讀,更多相關(guān)《計(jì)算機(jī)綜合實(shí)踐《電氣工程及其自動(dòng)化》(8頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、四川大學(xué)網(wǎng)絡(luò)教育學(xué)院 計(jì)算機(jī)綜合實(shí)踐 校外學(xué)習(xí)中心: 蘇州研究院 學(xué)生姓名: 專 業(yè): 電氣工程及其自動(dòng)化 層 次: 專升本 年 級(jí): 學(xué) 號(hào): 實(shí)踐時(shí)間: 實(shí)驗(yàn)一 DEBUG 調(diào)試工具熟悉、使用 一、 實(shí)驗(yàn)題目:熟悉、使用DEBU調(diào)試工具 二、 實(shí)驗(yàn)日期: 2016/08/5 三、 實(shí)驗(yàn)?zāi)康? 1. 了解并逐步熟悉匯編語(yǔ)言的編輯方法及特點(diǎn) . 2. 復(fù)習(xí) 8088匯編語(yǔ)言的段結(jié)構(gòu)、常用的指令與偽指令、存儲(chǔ)空間的分配等。 3. 掌握匯編語(yǔ)言的編輯、匯編及連接的過(guò)程。 4. 了解并逐步掌握運(yùn)用DEBUGS行調(diào)試匯編語(yǔ)言程序。 5借助DEBU調(diào)試工具來(lái)發(fā)現(xiàn)匯編語(yǔ)言程序
2、的錯(cuò)誤所在并加以改正。 四、 實(shí)驗(yàn)內(nèi)容 : 1進(jìn)入DEBU方法 方法1:在Windows開始菜單中單擊運(yùn)行命令,直接在運(yùn)行對(duì)話框中輸入"DEBUG" 方法 方法2:在運(yùn)行對(duì)話框中輸入"CMD啟動(dòng)DOS命令窗口后輸入"DEBUG" 方法3:在程序、附件、命令提示符,啟動(dòng)DOS命令窗口后輸入"DEBUG" 2, DEBU晞令格式DEBUG勺每個(gè)命令都是一個(gè)字母,后跟一個(gè)或多個(gè)參數(shù)。下面 對(duì)DEBU⑧令作幾點(diǎn)說(shuō)明。字母不分大小寫。 ?只使用16進(jìn)制數(shù),且不能帶后綴H。 ?以空格或逗號(hào)作為命令各項(xiàng)之間的分隔符。分隔符只在兩個(gè)數(shù)值之間是必須的。 ?可以用 Ctrl-C 或 Ctrl-Br
3、eak 終止命令的執(zhí)行。 ?若輸入的命令有語(yǔ)法錯(cuò)誤,則提示“ Error” ,并用“八”指出錯(cuò)誤位置。 3, 常用的Debug功能用Debug的R命令查看、改變CPU寄存器的內(nèi)容, 用Debug的D命令查看內(nèi)存中的內(nèi)容, 用Debug的E命令改寫內(nèi)存中的內(nèi)容, 用Debug的U命令將內(nèi)存中的機(jī)器指令翻譯成匯編指令。 用Debug的T命令執(zhí)行一條機(jī)器指令 用Debug的A命令以匯編指令的格式在內(nèi)存中寫了一條機(jī)器指令 4, 用Debug的R命令查看、改變CPU寄存器的內(nèi)容, R命令用來(lái)顯示和修改寄存器的值, 包括以下兩種格式。 1, R 顯示所有寄存器和 8個(gè)標(biāo)志位的值 ,并
4、反匯編 CS:IP 所指的指令。 2, R<寄存器名〉示指定寄存器的值,并等待用戶鍵入新的值,按回車鍵結(jié)束R命 令。 5, 用Debug的D命令查看內(nèi)存中的內(nèi)容,D命令可以查看內(nèi)存中的內(nèi)容,D命令的 格式較多,只介紹本次實(shí)驗(yàn)中用到的格式,8086/8088CPU能夠訪問1M內(nèi)容,D命令 可以顯示 0000:0000H-FFFF:FFFFH 中的任何一個(gè)單元的內(nèi)存如果想知道內(nèi)存 10000H處的內(nèi)容,可以用"d段地址,偏移地址"的格式來(lái)查看,如輸入-d 1000:0 使用 d 1000:9 查看 1000:9 處的內(nèi)容。使用 d 1000:0 9 查看 1000:0-1000:9 的 內(nèi)容一
5、進(jìn)入Debug,可直接使用D命令直接查看,將列出Debug預(yù)設(shè)的地址處的內(nèi) 容 &用Debug的E命令改寫內(nèi)存中的內(nèi)容,使用"e起始地址數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù)..." 的格式來(lái)進(jìn)行如將內(nèi)存 1000:0-1000:9 單元中的內(nèi)容分別寫為 0、 1、 2、 3、 4、 5、 6、 7、 8、 9 -e 1000:0 0 1 2 3 4 5 6 7 8 9 也可以采用提問方式一個(gè)一個(gè)修改內(nèi)存中的內(nèi)容 , 如 輸入e 1000:0,按Enter鍵輸入修改的數(shù)據(jù),再按空格鍵輸入下一個(gè)要修改的數(shù) 據(jù) , 最 Enter 鍵結(jié)束操作。 輸入字符串的格式,如-e 1000:10 1 'a' 2 "C
6、++" 3 "IBM"將輸入1 a 2 C++ 3 IBM 到相應(yīng)單元 向內(nèi)容中寫入機(jī)器碼 , 如 b80100 ( 代表 mov ax, 0001), b90200( 代表 mov Cx, 002), 01C8( 代表 add ax, Cx), 那么輸入 -e 1000:0 b8 01 00 b9 02 00 01 C8 就將該程序輸入內(nèi)容1000:0處,然后使用u命令-u 1000:0可以將內(nèi)存單元中的 內(nèi)容翻譯成匯編指令。如果要執(zhí)行該程序 , 首先用 r 命令將 Cs 修改成 1000ip 修 改成0,再執(zhí)行t命令,單步執(zhí)行程序。執(zhí)行T命令時(shí),CPU執(zhí)行CS:IP執(zhí)行的指令 并將 I
7、P 加 1. 7、用Debug的A命令以匯編指令的形式在內(nèi)存中寫了機(jī)器指令示例 ,用A命令, 輸入下列程序并運(yùn)行 -a 1000:0 mov ax, 1 mov bx, 2 mov Cx, 3 add ax, bx add ax, Cx add ax, ax 直接按Enter鍵結(jié)果輸入。用r命令將cs修改成1000,ip修改成0,再執(zhí)行t命 令,單步執(zhí)行程序。執(zhí)行T命令時(shí),CPU執(zhí)行CS:IP執(zhí)行的指令并將IP加1. 實(shí)驗(yàn)二 設(shè)計(jì)匯編語(yǔ)言程序 一, 實(shí)驗(yàn)題目 設(shè)計(jì)匯編語(yǔ)言程序 二, 驗(yàn)日期: 2016/08/6 三, 實(shí)驗(yàn)?zāi)康?字符串統(tǒng)計(jì)程序設(shè)計(jì) 雙字乘法程序設(shè)計(jì)
8、 四, 實(shí)驗(yàn)內(nèi)容 1,字符串統(tǒng)計(jì)。 在數(shù)據(jù)段中建立一個(gè)緩沖區(qū)BUFFER變量VER編程使得程序具有如下功能, 從鍵盤輸入一個(gè)子字符串存入VER從鍵盤輸入包含一個(gè)或幾個(gè)子字符串的字符 串存入BUFFER統(tǒng)計(jì)BUFFER中的字符串含有多少個(gè)子字符串以及每個(gè)子字符串 的位置。 2,雙字乘法程序。 設(shè)計(jì)一個(gè)程序?qū)崿F(xiàn) 32位帶符號(hào)雙精度數(shù)乘法運(yùn)算。 由于只有 8位和 16位的乘法 指令。因此 32 位乘法運(yùn)算是不能直接用指令實(shí)現(xiàn)的。但可以用 16位乘法指令, 通過(guò) 4 次想乘然后把部分積想加。 對(duì)于帶符號(hào)數(shù), 可以先根據(jù)絕對(duì)值求得積。 然 后判斷積的符號(hào),若積為負(fù)數(shù),應(yīng)將其用補(bǔ)碼表示。 五,程
9、序設(shè)計(jì)
1 、字符串統(tǒng)計(jì)程序設(shè)計(jì) #include
10、 cout<<" 總共有 "<
11、segment assume ds:data,cs:code start: mov ax,data mov ds,ax mov ax,x mul y mov z,ax mov z+2,dx mov ax,x+2 mul y mov z+4,ax mov z+6,dx mov ax,x mul y+2 add z+4,ax adc z+6,dx mov ax,x+2 mul y+2 adc z+8,ax adc z+10,dx adc z+12,0 mov ax,4c00h nt 21h code ends end start 驗(yàn)三 8253 定時(shí)器/ 計(jì)數(shù)器接口與數(shù)字電子琴 一、實(shí)驗(yàn)題目
12、 8253定時(shí)器/ 計(jì)數(shù)器接口與數(shù)字電子琴 二、實(shí)驗(yàn)日期: 2016/08/07 三、實(shí)驗(yàn)?zāi)康模焊淖兌〞r(shí)器 2 的計(jì)數(shù)值來(lái)改變聲音頻率, 通過(guò)編程來(lái)獲得聲調(diào) (頻 率)和節(jié)奏 ( 延時(shí)長(zhǎng)短)使計(jì)算機(jī)演奏出樂曲來(lái)。 四、實(shí)驗(yàn)內(nèi)容 : 設(shè)計(jì)程序讓微機(jī)演奏一段簡(jiǎn)單樂曲 利用DOS勺鍵盤管理功能。將微機(jī)變?yōu)橐粋€(gè)具有簡(jiǎn)單功能的電子琴 (選作)。 五、程序設(shè)計(jì) 硬件設(shè)計(jì) 利用實(shí)驗(yàn)板上的 8253計(jì)數(shù)/ 定時(shí)器和 8255并行接口,定時(shí)器 8253利用工作方 式 3 產(chǎn)生一定頻率信號(hào),通過(guò)可編程的并行外圍接口芯片 8255 控制頻率信號(hào)的 通斷。8255的A 口設(shè)置為輸出,8255的A 口的低
13、兩位用來(lái)控制揚(yáng)聲器驅(qū)動(dòng),當(dāng) 輸出端口的PA0位為“1”或?yàn)椤?”時(shí)。將使控制驅(qū)動(dòng)器的與門電路接通或關(guān)閉, 使8253所發(fā)出的音頻信號(hào)能到達(dá)驅(qū)動(dòng)器或被阻斷。這樣通過(guò)控制 PA0的變化, 可使揚(yáng)聲器接通和斷開,控制揚(yáng)聲器是否能發(fā)出聲音。此外,通過(guò)控制PA0的通 斷時(shí)間,就能發(fā)出不同的音長(zhǎng)。8255的PA1位為“ 1”時(shí),控制8253定時(shí)器產(chǎn) 生驅(qū)動(dòng)揚(yáng)聲器發(fā)聲的音頻信號(hào),該位為“ 0”則不發(fā)信號(hào)。 8253有三個(gè)定時(shí)器。 分為 0 號(hào)、1 號(hào)和 2號(hào)定時(shí)器,驅(qū)動(dòng)揚(yáng)聲器的是 0號(hào)定時(shí)器,該定時(shí)器工作方式 3,是一個(gè)頻率發(fā)生器,它負(fù)責(zé)向揚(yáng)聲器發(fā)送指定頻率的脈沖信號(hào)。當(dāng) 8255 的 PA0和PA1都
14、為1時(shí),8253發(fā)出指定頻率的聲音信號(hào)的前提下,聲音信號(hào)通過(guò)與 門到達(dá)驅(qū)動(dòng)器驅(qū)動(dòng)揚(yáng)聲器發(fā)聲。 換件原理圖如圖1所示; 825.^ 訃數(shù)器 迖 M255 PAII 門擰 持用制2」 揚(yáng)擊器驅(qū)動(dòng)電路婦國(guó)2所示。 S255 PM 擰制喇叭 M I硬與門園 圖2揚(yáng)聲器驅(qū)動(dòng)電路 軟件設(shè)計(jì) 系統(tǒng)要求實(shí)現(xiàn)2個(gè)功能,電子琴和音樂盒的功能。兩者發(fā)聲的方法一樣,只是一 個(gè)數(shù)據(jù)是從鍵盤讀取的,另一個(gè)是已經(jīng)保存好的數(shù)據(jù)。首先我們可以用一個(gè)子程 序?qū)崿F(xiàn)單個(gè)音調(diào)的產(chǎn)生,對(duì)8253輸入不同的計(jì)數(shù)初值生成不同頻率的波形,然后 延時(shí)一段時(shí)間。電子琴程序主要是讀取鍵盤按鍵,根據(jù)鍵值產(chǎn)生不同的音調(diào)即可
15、。 而樂曲的播放先將樂曲的音符編碼表和節(jié)拍編碼表建立好的 ,然后在播放時(shí)讀取 數(shù)據(jù)。 1. 單音調(diào)子程序SOUND單音調(diào)子程序的調(diào)用前需要進(jìn)行以下幾個(gè)方面工 作, 1) 確定相應(yīng)的音調(diào)所對(duì)應(yīng)的頻率,查表可以得到,再由頻率得到對(duì)應(yīng)的8253計(jì)數(shù) 初值。 2) 確定音長(zhǎng),即一個(gè)音符所持續(xù)的時(shí)間。在單音調(diào)子程序中實(shí)現(xiàn)發(fā)出一個(gè)音符的 聲音,持續(xù)所需的時(shí)間,流程圖如圖3所示: 圖3單音調(diào)子程序流程圖 2, 音樂盒程序 音樂盒的樂曲播放程序中需要有兩組數(shù)據(jù)支持,一組是頻率數(shù)據(jù),一組是節(jié)拍時(shí) 間數(shù)據(jù)。音符的頻率可以通過(guò)簡(jiǎn)譜從頻率表中查得。 節(jié)拍時(shí)間就是音符的持續(xù)時(shí) 間,取決于樂曲的速
16、度和每個(gè)音符的節(jié)拍數(shù)據(jù)。如 4/4,四四拍,中,每小節(jié)包括4 拍,全音符持續(xù)4拍,二分音符持續(xù)2拍,四分音符持續(xù)一拍,八分音符持續(xù)半拍 等。有了音調(diào)與頻率和時(shí)間的關(guān)系后,就可以按照樂曲的曲譜將每個(gè)音符的頻率 和持續(xù)的時(shí)間定義成兩組數(shù)據(jù)表,然后編程依次取出表中的頻率值和節(jié)拍值 ,調(diào) 用單音調(diào)子程序就可依次產(chǎn)生各個(gè)音調(diào),播放出樂曲。 在程序中存儲(chǔ)幾個(gè)樂曲數(shù)據(jù),根據(jù)音樂盒子菜單選擇相應(yīng)的樂曲演奏 ,讀取對(duì)應(yīng) 的數(shù)據(jù)輸出。 樂曲《兩只老虎》的簡(jiǎn)譜如下: 兩只老虎 l-c 4/4 12 3 1 12 3 1 3 4 5 3 4 5 - 56 54 3 1 5_6 "
17、3 2 5 1 - 2 5 1 - 對(duì)應(yīng)的頻率數(shù)據(jù)表Freq、節(jié)拍數(shù)據(jù)表Time如下: TWOTIGERS_FRE DW 2 DUP(524,588,660,524,0) 樂曲的頻率表 DW DW DW TWOTIGERS_TIME 樂曲的時(shí)間表 DW 2 DUP(660,698,784,0) 2 DUP(784,880,784,698,660,524,0) 2 DUP(588,392,524,0),1 DW 10 DUP(100),200,100,100,200 2 DUP(50,50,50,50,100,100) DW 2 DUP(100,100,200)
18、 outb_p(0x34,0x43); utb_p(LATCH&0xff,0x40); outb_p(LATCH>>8,0x40); outb(inb_p (0x21) & ~0x01, 0x21); // 允許接收定時(shí)器中斷 } void do_timer(void) { 這是定時(shí)器主程序 , 用于每隔一段時(shí)間后進(jìn)行某些操作 } [8253.asm]: // 以下是nasm格式的匯編代碼,這個(gè)中斷處理函數(shù)必須用匯編 timer_interrupt: push gs push fs push es push ds push ebp push edi push esi p
19、ush edx push ecx push ebx push eax 如果你不在操作系統(tǒng)下使用 , 以下三行必須刪除 , 否則必須把 0x10 更改為內(nèi)核段 選擇符 mov eax,0x10 mov ds,ax mov es,ax mov al,0x20 out 0xa0,al ; 發(fā)送 EOI out 0x20,al call do_timer pop ebx pop ecx pop edx pop esi pop edi pop ebp pop ds pop es pop fs pop gs xor eax,eax iretd 踐體會(huì) 次微機(jī)實(shí)驗(yàn)課程設(shè)計(jì) , 使我對(duì)微機(jī)軟硬件結(jié)合有
20、了進(jìn)一步的了解。原來(lái)并不太清 楚是什么意思 ,一直都很模糊 ,聽課本也是很迷茫 , 而之前的那些單元實(shí)驗(yàn) ,也沒 有都做好。之前做的實(shí)驗(yàn) ,由于大部分是驗(yàn)證性的 ,所以就很被動(dòng)地去做 , 甚至并 沒有想為什么要那樣連電路 ,內(nèi)部的代碼更沒有認(rèn)真看。 這次課程設(shè)計(jì) ,因?yàn)橐?己去設(shè)計(jì)整個(gè)過(guò)程 , 所以就不得不去了解學(xué)習(xí)自己原來(lái)并沒有真正弄懂的東西。 比如一些程序的代碼的意思 ,匯編語(yǔ)言的邏輯 , 比如一些芯片的用途。使我對(duì)前面 所做的實(shí)驗(yàn)有了原理性的了解 , 回頭看一些實(shí)驗(yàn) , 也知其然其所以然了。 同時(shí)對(duì)課 本上講的一些內(nèi)容 ,不再像以前那樣覺得抽象 ,通過(guò)這次設(shè)計(jì) ,有了具體的理解。 同時(shí)
21、,我也知道了設(shè)計(jì)一個(gè)項(xiàng)目, 應(yīng)該如何下手。 應(yīng)該先對(duì)項(xiàng)目要求有個(gè)全面的 了解,知道要做什么, 然后根據(jù)要求所要涉及到的知識(shí)我們要主動(dòng)去攝取, 結(jié)合 自己已學(xué)過(guò)的,再對(duì)整體框架有個(gè)感知,心里有數(shù)后,進(jìn)行設(shè)計(jì)。設(shè)計(jì)時(shí)用流程 圖,這很重要, 這樣整個(gè)思路就很清晰, 而且是按照軟硬件語(yǔ)言的邏輯順序進(jìn)行 就很方便。 設(shè)計(jì)過(guò)程可以分模塊, 不要一開始就想把所有的功能都實(shí)現(xiàn)了, 應(yīng)該 一個(gè)模塊一個(gè)模塊地實(shí)現(xiàn), 再總的連起來(lái), 實(shí)現(xiàn)最后的總模塊。 在每個(gè)模塊設(shè)計(jì) 時(shí),盡量想到比較簡(jiǎn)單的設(shè)計(jì),簡(jiǎn)化編程和電路,也可少出錯(cuò)。對(duì)微機(jī)是這樣, 對(duì)其他的像數(shù)字系統(tǒng)設(shè)計(jì)也是一樣的。 因此,我也覺得微機(jī)實(shí)驗(yàn)的這種形式的課程設(shè)計(jì)是很好也很有必要的。 對(duì)我們對(duì) 微機(jī)實(shí)驗(yàn)的理解有很大幫助。
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年防凍教育安全教育班會(huì)全文PPT
- 2025年寒假安全教育班會(huì)全文PPT
- 初中2025年冬季防溺水安全教育全文PPT
- 初中臘八節(jié)2024年專題PPT
- 主播直播培訓(xùn)提升人氣的方法正確的直播方式如何留住游客
- XX地區(qū)機(jī)關(guān)工委2024年度年終黨建工作總結(jié)述職匯報(bào)
- 心肺復(fù)蘇培訓(xùn)(心臟驟停的臨床表現(xiàn)與診斷)
- 我的大學(xué)生活介紹
- XX單位2024年終專題組織生活會(huì)理論學(xué)習(xí)理論學(xué)習(xí)強(qiáng)黨性凝心聚力建新功
- 2024年XX單位個(gè)人述職述廉報(bào)告
- 一文解讀2025中央經(jīng)濟(jì)工作會(huì)議精神(使社會(huì)信心有效提振經(jīng)濟(jì)明顯回升)
- 2025職業(yè)生涯規(guī)劃報(bào)告自我評(píng)估職業(yè)探索目標(biāo)設(shè)定發(fā)展策略
- 2024年度XX縣縣委書記個(gè)人述職報(bào)告及2025年工作計(jì)劃
- 寒假計(jì)劃中學(xué)生寒假計(jì)劃安排表(規(guī)劃好寒假的每個(gè)階段)
- 中央經(jīng)濟(jì)工作會(huì)議九大看點(diǎn)學(xué)思想強(qiáng)黨性重實(shí)踐建新功