微型計算機原理及應用實驗.ppt_第1頁
微型計算機原理及應用實驗.ppt_第2頁
微型計算機原理及應用實驗.ppt_第3頁
微型計算機原理及應用實驗.ppt_第4頁
微型計算機原理及應用實驗.ppt_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、微型計算機原理及應用實驗,電子信息技術實驗教學中心,實驗1 DEBUG調試程序的應用,一、實驗目的,掌握DEBUG調試程序的常用命令,熟悉用DEBUG調試程序對EXE文件的調試過程,并具有一定的分析運行結果的能力。,二、實驗內容,編寫一個完整的一位數(shù)加法運算程序,并生成EXE文件; 利用DEBUG調試EXE文件的執(zhí)行過程,并與源程序進行對比。,三、DEBUG常用命令,1.匯編命令A 格式: A 段寄存器名:偏移地址 A 段地址:偏移地址 A 偏移地址 A 功能:用該命令可以將匯編語言程序直接寫入內存。,2.顯示內存命令D 格式: D 段寄存器名:偏移地址 D 段地址:偏移地址 D 偏移地址 D

2、 功能:顯示指定內存范圍的內容。 3.修改內存單元內容命令E 格式: E 地址 內容表 E 地址 功能:修改內存單元內容,4.填充內存命令F 格式:E 地址范圍 內容表 功能:將內容表中的內容重復裝入內存的指定范圍內。 5.內存移動命令M 格式:M 源地址范圍 目標起始地址 功能:把源地址范圍的內容移動到目標起始地址開始的存儲單元。 6.比較命令C 格式:C 源地址范圍 目標起始地址 功能:比較兩個內存區(qū)域的內容是否相同,相同時不顯示任何信息,不相同時顯示不相同的內容,7.搜索指定內容命令S 格式:S 地址范圍 內容表 功能:在指定地址范圍內搜索內容表中的內容。 8.查看修改寄存器內容命令R

3、格式: R R 寄存器名 功能:查看或修改寄存器內容 關于標志位: OF:OV/NV 有/無;DF:DN/UP 減/增;IF:EI/DI 允許/禁止;SF:NG/PL 負/正;ZF:ZR/NZ 零/非零;AF:AC/NA 有/無;PF:PE/PO 偶/奇;CF:CY/NC 有/無。,9.單步執(zhí)行命令T 格式: T 地址 T 地址 條數(shù) 功能:單步執(zhí)行指令 10.反匯編命令U 格式: U 地址 U 地址范圍 功能:將指定內存的內容顯示成匯編語言形式。 11.命名命令N 格式:N 路徑和文件名,12.讀盤命令L 格式: L 地址 驅動器號 起始扇區(qū)號 扇區(qū)數(shù) L 地址 L 功能:將N命令指定的文件

4、或磁盤扇區(qū)內容讀到內存。 13.寫盤命令W 格式: W 地址 驅動器號 起始扇區(qū)號 扇區(qū)數(shù) W 地址 W 功能:將內存內容寫到N命令指定的文件或磁盤扇區(qū)中。,14.輸入命令I 格式:I 端口地址 功能:將端口的內容傳送到累加器AL中。 15.輸出命令O 格式:O 端口地址 功能:將累加器AL的內容傳送到端口中。 16.運行命令G 格式: G=地址 G 功能:從當前地址或指定地址開始執(zhí)行指令。,17.十六進制運算命令H 格式: H 數(shù)據(jù)1 數(shù)據(jù)2 功能:對數(shù)據(jù)1和數(shù)據(jù)2進行十六進制加法和減法運算。 18.P命令 格式: P 功能:在下一條指令執(zhí)行之前停止 19.退出命令Q 格式: Q 功能:退出

5、DEBUG調試環(huán)境。,實驗2 算術運算程序設計,一、實驗目的,二、實驗內容,掌握匯編語言中的數(shù)值接收方法; 掌握算術運算程序的編寫與結果顯示方法; 掌握宏定義與調用方法,從鍵盤接收運算式,編程實現(xiàn)兩位十進制數(shù)的算術運算(加、減、乘、除),若輸入的不是數(shù)字或運算符,進行錯誤處理,按Esc鍵退出。,三、編程提示,定義一個顯示單字符的宏; 定義一個能接收兩位數(shù)的子程序,并將其轉換成二進制,若接收的不是數(shù)字,進行錯誤處理,其算法為:退一格,顯示一個空格,再退一格。若接收的為ESC鍵退出; 主程序的編程流程如圖2.1所示。,實驗3 字符串處理程序設計,一、實驗目的,二、實驗內容,掌握串操作程序設計的基本

6、方法; 掌握串查找與替換的方法; 掌握字符串接收和顯示的方法; 掌握循環(huán)和分支程序設計方法。,編程實現(xiàn)字符接收、字符轉換、字符顯示等操作; 具體要求:從鍵盤接收30個字符存入變量X中,將X中的字符傳送到變量Y中,將變量Y中的空格字符轉換成字符“0”,回車換行后顯示Y中的內容。,三、編程提示,編程流程如圖3.1所示。,實驗4 數(shù)值處理程序設計,一、實驗目的,二、實驗內容,掌握數(shù)組元素的輸入方法; 掌握一般的排序算法。,編程實現(xiàn)數(shù)值輸入、數(shù)組排序、顯示等基本操作; 具體要求:從鍵盤輸入20個有符號兩位十進制數(shù),編程對其從小到大進行排序,并顯示排序后的結果,以逗號分隔。,三、參考程序,dispc m

7、acro x mov dl,x mov ah,2 int 21h endm datasegment xdb 20 dup(?) dataends codesegment assume cs:code,ds:data go:mov ax,data mov ds,ax 接收20個有符號數(shù)的程序段 mov bx,19,l0:mov cx,19 lea si,x l1:lodsb cmp al,si jge l2 mov ah,si mov si,al mov si-1,ah l2:loop l1 dec bx cmp bx,0 jne l0 mov cx,20 l3:lodsb cmp al,0,j

8、ge l4 push ax dispc - pop ax neg al l4:aam or ax,3030h mov bh,al cmp ah,30h je l5 dispc ah l5:dispc bh dispc , loop l3 dispc 8,dispc 20h mov ah,7 int 21h mov ah,4ch int 21h codeends endgo,實驗5 文件、文件夾操作程序設計,一、實驗目的,掌握在磁盤上建立文件夾的程序設計方法; 掌握在文件夾下建立文件的程序設計方法; 掌握對文件的讀、寫、關閉的程序設計方法,二、實驗內容,編程實現(xiàn)文件、文件夾的建立、寫入、字符串接

9、收等基本操作; 具體要求: 清屏,將光標置于5行,0列,從鍵盤接收最多80個字符的字符串,將接收字符串中的小寫字母全部轉換成大寫,其余不變; 從10行,0列開始顯示轉換后的字符串; 在D盤上建立一文件夾USER; 將轉換后的字符串寫入文件D:USERSTRING.TXT中。 (注:文件操作時要求有相應的提示信息),三、參考程序,disps macro x mov ah,9 lea dx,x int 21h endm datasegment buffer db 80,?,81 dup(0) pfname db D:USER,0 fname db D:USERSTRING.TXT,0 d1 db

10、Create paper file error,0dh,0ah,$ d2 db Create file error,0ah,0dh,$ d3 db Write file error,0ah,0dh,$ d4 db Close file error,0ah,0dh,$ d5 db Operate succeed ,0ah,0dh,$,d6 db 0ah,0dh,$ dataends codesegment assume cs:code,ds:data go:mov ax,data mov ds,ax mov ah,2 mov bh,0 mov dx,0 int 10h mov al,20h mo

11、v ah,9 mov cx,2000 mov bl,12h int 10h,mov ah,2 mov bh,0 mov dh,5 mov dl,0 int 10h mov ah,0ah lea dx,buffer int 21h mov cl,buffer+1 mov ch,0 lea si,buffer+2 l1:lodsb cmp al,a jb l2 cmp al,z,ja l2 xor al,20h mov si-1,al l2:loop l1 mov byte ptrsi,$ mov ah,2 mov bh,0 mov dh,10 mov dl,0 int 10h disps buf

12、fer+2 disps d6 mov ah,39h lea dx,pfname int 21h,jnc l1 disps d1 jmp l6 l2:mov ah,5bh mov cx,0 lea dx,fname int 21h push ax jnc l3 disps d2 jmp l6 l3:mov ah,40h pop bx mov cl,buffer+1 mov ch,0,lea dx,buffer+2 int 21h jnc l4 disps d3 jmp l6 l4:mov ah,3eh int 21h jnc l5 disps d4 jmp l6 l5:disps d5 l6:m

13、ov ah,7 int 21h mov ah,4ch int 21h,codeends endgo,實驗6 圖形程序設計,一、實驗目的,二、實驗內容,掌握屏幕顯示方式的設置方法; 掌握寫象素點的方法; 掌握宏的定義和調用方法。,編程實現(xiàn)幾何圖形的繪制,不同顏色的填充; 具體要求:將屏幕設置成640*480,在屏幕上畫5個幾何圖形:空心正方形、空心長方形、實心正方形、實心長方形、空心直角等腰三角形。大小、顏色、位置自定。,三、參考程序,sxfkmacro x1,y1,x2,y2,color;畫實心矩形(左上頂點坐標, local l1,l2 右下頂點坐標,顏色) mov ah,0ch mov a

14、l,color mov dx,y1 l1:mov cx,x1 l2:int 10h inc cx cmp cx,x2 jbe l2 inc dx cmp dx,y2 jbe l1 endm,kxfkmacro x1,y1,x2,y2,color;畫空心矩形(左上頂點坐標, local l1,l2,l3,l4 右下頂點坐標,顏色) mov ah,0ch mov dx,y1 mov cx,x1 mov al,color l1:int 10h inc cx cmp cx,x2 jb l1 l2:int 10h inc dx cmp dx,y2 jb l2 l3:int 10h,dec cx cmp

15、cx,x1 ja l3 l4:int 10h dec dx cmp dx,y1 ja l4 endm sjxmacro x1,y1,long,color;畫等腰直角三角形(左上 local l1,l2,l3 頂點坐標,腰長,顏色) mov ah,0ch mov al,color mov dx,y1 mov cx,x1 mov si,long,add si,dx l1:int 10h inc dx cmp dx,si jbe l1 mov di,long add di,cx l2:int 10h inc cx cmp cx,di jbe l2 mov cx,x1 mov dx,y1 l3:inc

16、 cx inc dx,int 10h cmp cx,di jb l3 endm codesegment assume cs:code go:mov ax,0012h int 10h mov ah,0bh mov bx,1 int 10h sjx 50,50,125,4 kxfk 1,2,241,242,3 sxfk 10,250,320,470,6 sxfk 339,179,639,479,5,kxfk 270,5,630,170,9 mov ah,7 int 21h mov ah,4ch int 21h codeends endgo,實驗7 中斷控制實驗,一、實驗目的,二、實驗內容,了解Wi

17、ndows下中斷處理過程; 比較中斷和查詢兩種數(shù)據(jù)交換方法的效率差別。,用查詢和中斷方式分別實現(xiàn)控制指示燈,實驗電路如圖。要求直接用手動產(chǎn)生的單脈沖作為中斷請求信號,每按一次單脈沖產(chǎn)生一次中斷,讓8個指示燈顯示一秒鐘的01010101,否則讓指示燈顯示10101010。然后在任務欄比較中斷和查詢方式下CPU利用率的差別。,中斷方法:將8255的A口設為輸出,IRQ直接接到正脈沖,線路連接如圖7.1所示; 查詢方法:將8255的A口設為輸出接指示燈,C口設為輸入,將PC0接正脈沖輸入,線路連接如圖7.2所示。,三、編程提示,中斷方法的編程流程如圖7.3所示,查詢方法的編程流程如圖7.4所示,實驗

18、 定時器/計數(shù)器實驗,一、實驗目的,二、實驗內容,掌握8253的基本工作原理和編程方法。,定時器應用:按圖8.1連接電路,將計數(shù)器0、計數(shù)器1分別設置為方式3,計數(shù)初值設為1000,用邏輯筆觀察OUT1輸出電平的變化(頻率1HZ); 計數(shù)器應用:按圖8.2連接電路,將計數(shù)器0設置為方式0,計數(shù)器初值為N(N0FH),用手動逐個輸入單脈沖,編程使計數(shù)值在屏幕上顯示,并同時用邏輯筆觀察OUT0電平變化(當輸入N+1個脈沖后OUT0變高電平)。,圖 8.1,圖 8.2,三、編程提示,8253控制寄存器地址 283H 計數(shù)器0地址 280H 計數(shù)器1地址 281H 定時器應用時的編程流程如圖8.3所示

19、,計數(shù)器應用時的編程流程如圖8.4所示。,實驗 并行通信實驗,一、實驗目的,二、實驗內容,掌握并行接口芯片8255的工作原理及使用方法,方式0的應用:實驗電路如圖9.1,8255C口接邏輯電平開關K0K7,A口接LED顯示電路L0L7,編程從8255C口輸入數(shù)據(jù),再從A口輸出; 方式的應用:實驗電路如圖9.2,要求每按一次單脈沖按鈕產(chǎn)生一個正脈沖使8255產(chǎn)生一次中斷請求,讓CPU進行一次中斷服務:依次輸出01H、02H,04H,08H,10H,20H,40H,80H使L0L7依次發(fā)光,中斷次結束。,三、編程提示,8255控制端口地址 28BH A口的地址 288H C口的地址 28AH 方式

20、應用時編程流程如圖9.3所示,方式應用時編程流程如圖9.4所示。,圖 9.3,圖 9.4,實驗10 段數(shù)碼管顯示控制實驗,一、實驗目的,二、實驗內容,靜態(tài)顯示:按圖10.1連接好電路,將8255的A口PA0PA6分別與七段數(shù)碼管的段碼驅動輸入端a相連,位碼驅動輸入端S1接+5V(選中),S0、dp接地(關閉)。編程從鍵盤輸入一位十進制數(shù)字(09),在七段數(shù)碼管上顯示出來; 動態(tài)顯示:按圖10.2連接好電路,七段數(shù)碼管段碼連接不變,位碼驅動輸入端S1,S0接8255 C口的PC1,PC0,編程在兩個數(shù)碼管上顯示“56”。,掌握數(shù)碼管顯示數(shù)字的原理。,圖 10.1,圖 10.2,實驗臺上的七段數(shù)碼

21、管為共陰型,段碼采用同相驅動,輸入端加高電平,選中的數(shù)碼管亮,位碼加反相驅動器,位碼輸入端高電平選中。 靜態(tài)顯示時的編程流程如圖10.3所示,動態(tài)顯示時的編程流程如圖10.4所示。,三、編程提示,圖 10.3,圖 10.4,實驗1 搶答器設計實驗,一、實驗目的,二、實驗內容,了解微機化競賽搶答器的基本原理; 進一步學習使用并行接口。,圖11.1為競賽搶答器(模擬)的原理圖,邏輯開關K0K7代表競賽搶答按鈕07號,當某個邏輯電平開關置“”時,相當某組搶答按鈕按下。在七段數(shù)碼管上將其組號(07)顯示出來,并使微機揚聲器響一下。,圖 11.1,三、編程提示,設置8255為口輸入、口輸出,讀取口數(shù)據(jù),

22、若為0表示無人搶答,若不為0則有人搶答。根據(jù)讀取數(shù)據(jù)可判斷搶答組號。從鍵盤上按空格鍵開始下一輪搶答,按其它鍵程序退出。,圖 11.2,實驗12 交通燈控制實驗,一、實驗目的,二、實驗內容,通過并行接口8255實現(xiàn)十字路口交通燈的模擬控制,進一步掌握對并行口的使用。,如圖12.1,L7、L6、L5作為南北路口的交通燈與PC7、PC6、PC5相連,L2、L1、L0作為東西路口的交通燈與PC2、PC1、PC0相連。編程使六個燈按交通燈變化規(guī)律亮滅。,圖 12.1,三、編程提示,十字路口交通燈的變化規(guī)律要求: (1) 南北路口的綠燈、東西路口的紅燈同時亮30秒左右; (2) 南北路口的黃燈閃爍若干次,

23、同時東西路口的紅燈繼續(xù)亮; (3) 南北路口的紅燈、東西路口的綠燈同時亮30秒左右; (4) 南北路口的紅燈繼續(xù)亮、同時東西路口的黃燈亮閃爍若干次; (5) 轉(1)重復。 編程流程如圖12.2所示 。,圖 12.2,實驗13 串行通信實驗,一、實驗目的,二、實驗內容,了解串行通訊的基本原理; 掌握串行接口芯片8251的工作原理和編程方法。,按圖13.1連接好電路,(8251插通用插座)其中8253計數(shù)器用于產(chǎn)生8251的發(fā)送和接收時鐘.TXD和RXD連在一起; 編程:從鍵盤輸入一個字符,將其ASCII碼加1后發(fā)送出去,再接收回來在屏幕上顯示。實現(xiàn)自發(fā)自收。,圖 13.1,三、編程提示,圖示電

24、路8251的控制口地址為2B9H,數(shù)據(jù)口地址為2B8H; 8253計數(shù)器的計數(shù)初值=時鐘頻率 /(波特率波特率因子),這里的時鐘頻率接1MHz,波特率若選1200,波特率因子若選16,則計數(shù)器初值為52H; 收發(fā)采用查詢方式; 編程流程如圖13.2所示。,圖 13.2,實驗14 數(shù)/模轉換實驗,一、實驗目的,二、實驗內容,了解數(shù)/模轉換器的基本原理,掌握DAC0832芯片的使用方法 。,實驗電路原理如圖14.1所示,DAC0832采用單緩沖方式,具有單雙極性輸入端(圖中的Ua、Ub); 編程產(chǎn)生鋸齒波(從Ub輸出,用示波器觀察); 編程產(chǎn)生正弦波(從Ub輸出,用示波器觀察)。,圖 14.1,三

25、、編程提示,8位D/A轉換器DAC0832的口地址為290H,輸入數(shù)據(jù)與輸出電壓的關系為: Ua=-(UREF/256)*N Ua=-(UREF/256)*N-5 (UREF表示參考電壓,N表示數(shù)數(shù)據(jù)),這里的參考電壓為機的電源。 產(chǎn)生鋸齒波只須將輸出到DAC0832的數(shù)據(jù)由0循環(huán)遞增; 產(chǎn)生正弦波可根據(jù)正弦函數(shù)建一個下弦數(shù)字量表,取值范圍為一個周期,表中數(shù)據(jù)個數(shù)在16個以上。,圖 14.2,圖 14.3,實驗15 模/數(shù)轉換實驗,一、實驗目的,二、實驗內容,了解模/數(shù)轉換的基本原理,掌握ADC0809的使用方法 。,實驗電路原理圖如圖15.1所示。通過實驗臺左下角電位器RW1輸出05直流電壓

26、送入ADC0809通道0(IN0),編程采集IN0輸入的電壓,在屏幕上顯示出轉換后的數(shù)據(jù)(用16進制數(shù)) 。,圖 15.1,三、編程提示,ADC0809的IN0口地址為298H,IN1口地址為299H; IN0單極性輸入電壓與轉換后數(shù)字的關系為: N=Ui/(Uref/256) 其中Ui為輸入電壓,UREF為參考電壓,這里的參考電壓為機的電源。 編程流程如圖15.2所示,圖 15.2,實驗16 8255A并行口鍵盤掃描實驗,一、實驗目的,掌握8255A編程原理。 了解鍵盤陣列結構,學會讀取按鍵的方法。,二、實驗內容,本實驗的實驗電路如圖16.1所示。它做在一塊擴展電路板上,用一根20芯扁平電纜

27、線將實驗板擴展插頭J1與實驗臺上的擴展插頭J7相連,為擴展電路連接電源及外部總線。擴展電路板上的數(shù)碼管、鍵盤陣列既能由8279控制,也可以由外部電路控制,其實現(xiàn)靠的是若干組短路子組成的控制選擇開關K1、K2、K3、K4、KB0、KB1、KB2。,當K1、K3、K4連接在8279一端時,數(shù)碼管由8279控制,連接在LS273一端時由外部總線通過LS273直接控制。當K2、KB1、KB2、KB3連接在8279一端時,鍵盤陣列由8279控制,連接在8255一端時由外接芯片8255控制。因為本實驗為8255控制實驗,所以除了連接J1和J7外,還需要將選擇開關K2、KB1、KB2、KB3連接在8255一

28、端,并將KA0-KA7,KB0-KB2連接到8255芯片A口,C口,還需要連接8255芯片的片選,以使鍵盤陣列由8255芯片控制。 8255A的端口A地址為:288H,端口C地址為:28AH,控制口地址為:28BH。編程使得在鍵盤陣列上每按一個鍵后,微機屏幕上有相應字符顯示出來。,圖 16.1,三、編程提示,1識別鍵盤上的閉合鍵,通過采用行掃描法或列翻轉法: (1)行掃描法是使鍵盤上某一列線為低電平,而其余行接高電平,然后讀取列值;如果列值中有某位為低電平,則表明行列交點處的鍵被按下;否則掃描下一行,直到掃完全部的行線為止。 (2)行反轉法識別閉合鍵時,要將行線接一個并行口,先讓它工作在輸出方式,將列線也接到一個并行口,先讓它工作在輸入方式;程序通過輸出端口向全部行線上送低電平,然后讀取列線的值;如果此時有某一鍵被按下,則必定會使某一列線值為零,程序再對兩個并行端口進行方式設置,使行線工作在輸入方式,列線工作在輸出方式,并且將剛才讀到的列線值從列線所接的并行端口輸出,再讀取行線上的值;那么,在閉合鍵所在的行線上的值必定為零。這樣,當一個鍵被按下時,必定可以讀到一對唯一的行值和列值。在我們提供的程序中就采用行反轉法來識別鍵盤按鍵。,2在程序設計時,將各個鍵對應的代碼(列值,行

溫馨提示

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

最新文檔

評論

0/150

提交評論