微機接口實驗報告_第1頁
微機接口實驗報告_第2頁
微機接口實驗報告_第3頁
微機接口實驗報告_第4頁
微機接口實驗報告_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

微機原理與接口技術(shù)實驗報告微機原理與接口原理實驗報告微機原理與接口技術(shù)系別專業(yè)班級姓名學(xué)號指導(dǎo)教師學(xué)年第學(xué)期實驗一1、實驗?zāi)康模簩ふ覂蓚€字符串中不同的字符2、源程序代碼:datasegment//ds數(shù)據(jù)段data為段名xdb“hello,world!$”dataends//data為段名extrasegmentydb“hello,world!$”extraendscodesegment//偽指令assumecs:code,ds:data,es:extra//cs與code關(guān)聯(lián),es與extra關(guān)聯(lián)start:movax,data//符號地址送段寄存器movds,ax//ds賦初值movax,extramoves,ax//將ax的內(nèi)容送到es,es內(nèi)容不變leasi,x//取x的有效地址指向sileadi,y//取y的有效地址指向dimovcx,0ch//cx=0chcld//df=0repzcmpsb//如果ds:si和es:di所指向的兩個字節(jié)相等,則繼續(xù)比較。所以如果相等的話,就停止循環(huán)。jcxzexit//防止零作除數(shù),即數(shù)組是空數(shù)組decsi//si-1decdi//di-1print:movdl,byteptr[si]//[si]以字節(jié)單位存入dl中movah,02hint21h//dos中斷顯示字符movdl,byteptres:[di]//將dl中的數(shù)據(jù)送入以es為基址,di為偏移量所指的地址中去,以字節(jié)為單位movah,02hint21h//dos中斷顯示字符exit:movah,4ch//返回dosint21hcodeends//代碼段結(jié)束endstart//整個程序結(jié)束3、實驗流程圖:定義變量x定義變量x定義變量y取x的有效地址指向si取y的有效地址指向di開始比較兩個字符串,輸出不同的字符,若找不到不相同的,則表明查找已完成返回dos結(jié)束4、程序運行結(jié)果:5、實驗感想:這個實驗的關(guān)鍵是找兩個字符串中的不同的字符,實驗過程中需要定義兩個不同的字符串。實驗二1、實驗?zāi)康模红`活運用匯編語言2、實驗內(nèi)容:BCD碼變量定義如下XDB1234HYDB5678HZDB完成Z=X+Y,并顯示X,Y,Z開始程序流程圖:開始定義數(shù)據(jù)段定義數(shù)據(jù)段代碼段開始代碼段開始給ds賦值給ds賦值將si、di傳給x、y將si、di傳給x、y02h賦值給cx02h賦值給cx傳送x、y傳送x、yBx=0Bx=0結(jié)束結(jié)束4、源程序代碼:datasegment//ds數(shù)據(jù)段data為段名XDW1234HYDW5678HZDW?dataends//data為段名codesegment//偽指令assumecs:code,ds:datastart:movax,data//送符號地址送段寄存器movds,ax//將通用寄存器ax的內(nèi)容送入cpu的ds段寄存器leasi,x//取x的有效地址指向sileadi,y//取y的有效地址指向dileabx,z//取x的有效地址指向bxmovcx,02h//(cx)=02hclc/清除cf位pushf//sp<-sp-2lopx:popf//sp<-sp+2moval,byteptr[si]//[si]以字節(jié)單位存入al中movdl,byteptr[di]//[di]以字節(jié)單位存入di中adcal,dl//al+dl帶單位存入aldaa//將al的內(nèi)容調(diào)整為2位組合型的二進制pushf//sp<-sp-2movbyteptr[bx],al//al存入bx中并強制轉(zhuǎn)換為字符單元incsi//si跳轉(zhuǎn)到下一個字符incdi//di跳轉(zhuǎn)到下一個字符incbx//bx跳轉(zhuǎn)到下一個字符looplopx//cx減1leasi,z//取z的有效地址指向simovdx,[si]//[si]送入dxmovbx,04h//(bx)=04hmovcl,0ch//(cl)=0chprint:rordx,cl//dx循環(huán)右移clmovbp,dx//dx送入bpanddx,000fh//有0為0adddx,30h//將dx加上30h并傳入dxmovah,02hint21h//dos中斷顯示字符movdx,bp//bp送入dxdecbx//bx-1jnzprint//bx不等于0時繼續(xù)輸出exit:movah,4chint21h//返回DOScodeends//代碼段結(jié)束endstart//整個程序結(jié)束5、程序運行結(jié)果:6、實驗感想:這個實驗沒什么復(fù)雜的地方,把書上的原理搞懂了問題也就不大了。實驗三1、實驗?zāi)康模毫魉疅?、源程序代碼:inportequ0ff00h-280hinportaequinport+288hinportctequinport+28bhcodesegmentassumecs:codestart:xorax,axxordx,dxmoval,80hmovdx,inportctoutdx,almoval,00hstcmovdx,inportalop:rclal,1outdx,alcalldelayjmplopdelayprocnearmovbx,03fffhx2:movbp,0ffffhx1:decbpjnzx1decbxjnzx2retdelayendpmovah,4chint21hcodeendsendstart3、實驗內(nèi)容:燈循環(huán)依次點亮4、接口連接:紅綠燈接線:電源輸出J5與開關(guān)上的J0相接J8與計數(shù)器上的J0相接32JHP上的JD2與計數(shù)器上的JD相連計數(shù)器上的PA與開關(guān)上的JL1相接計數(shù)器上的PB與開關(guān)上的JK相接復(fù)位RST與計數(shù)器RST相接計數(shù)器32JHPA0A0A1A18255CSY1/WRIOW/RDIOR5、心得體會:通過分析引腳來進行連線,就能清楚地了解接口之間如何接實驗四一、實驗?zāi)康耐ㄟ^并行接口8255實現(xiàn)十字路口交通燈的模擬控制,進一步掌握對并行口的使用。二、實驗內(nèi)容1.如圖16-1,L8、L7、L6作為南北路口的交通燈與PC7、PC6、PC5相連,L2、L1、L0作為東西路口的交通燈與PC2、PC1、PC0相連。編程使六個燈按交通燈變化規(guī)律亮滅。2.L0對應(yīng)東西路口綠燈,L1對應(yīng)東西路口黃燈,L2對應(yīng)東西路口紅燈;L6對應(yīng)南北路口綠燈,L7對應(yīng)南北路口黃燈,L8對應(yīng)南北路口紅燈。三、編程提示1.十字路口交通燈的變化規(guī)律要求:(1)南北路口的綠燈、東西路口的紅燈同時亮30秒左右。(2)南北路口的黃燈閃爍若干次,同時東西路口的紅燈繼續(xù)亮。(3)南北路口的紅燈、東西路口的綠燈同時亮30秒左右。(4)南北路口的紅燈繼續(xù)亮,同時東西路口的黃燈閃爍若干次。(5)轉(zhuǎn)(1)重復(fù)。由于DVCC卡使用PCI總線,所以分配的IO地址每臺微機可能都不同,編程時需要了解當(dāng)前的微機使用那段IO地址并進行設(shè)置,獲取方法見《用戶手冊》第五章節(jié)5.3第10~12點中的介紹。下面的程序JTD.ASM(在文件夾“ASM_匯編例程”中)是需要用戶自己根據(jù)查找到的DVCC卡的I/O基址替換到程序中帶下劃線的位置。四、實驗流程圖五、實驗代碼datasegmentioport equ0ff00h-0280hio8255a equioport+288hio8255b equioport+289hio8255c equioport+28ahio8255ct equioport+28bhdataendscodesegmentassumecs:code,ds:datastart:xorax,axxordx,dxmovax,data movds,ax movdx,io8255ct moval,80h outdx,almovdx,io8255c;全紅moval,24houtdx,al movdx,io8255amoval,09houtdx,alcalldelayok:movdx,io8255c;東西綠,南北紅moval,64houtdx,al movdx,io8255amoval,02houtdx,alcalldelaymovdx,io8255c;東西黃,南北紅moval,0a4houtdx,al movdx,io8255amoval,02houtdx,alcalldelaymovdx,io8255c;東西紅,南北綠moval,09houtdx,al movdx,io8255amoval,09houtdx,alcalldelaymovdx,io8255c;東西紅,南北黃moval,12houtdx,al movdx,io8255amoval,09houtdx,alcalldelayjmpokdelayprocnearmovbp,0aff0hx2:movbx,0ffffhx1:decbxjnzx1decbpjnzx2retdelayendpcodeends endstart六、心得體會了解了芯片的引腳構(gòu)造組成,在連接電路圖時遇到的了麻煩,沒有試驗指導(dǎo)書對引腳連線還是不會的,通過老師的示范有所了解,自己動手能連接電路并且實現(xiàn)了端口燈的控制這一應(yīng)用。實驗五1.實驗內(nèi)容:交通燈2.實驗分析:全紅L11L10L00100100100C口:24HA口:09H東西綠南北紅L11L10L01001100100C口:64HA口:02H東西黃南北紅L11L001010100110C口:0A4HA口:02H東西紅南北綠L11L10L100100001001C口:09HA口:09H東西紅南北黃L11L1100100010010C口:12HA口:09H3實驗代碼datasegmentioport equ0ff00h-0280hio8255c equioport+28ahio8255k equioport+28bhportc1db24h,44h,04h,44h,04h,44h,04h;六個燈可能 db81h,82h,80h,82h,80h,82h,80h;的狀態(tài)數(shù)據(jù) db0ffh;結(jié)束標(biāo)志dataendscodesegmentassumecs:code,ds:datastart: movcx,3000delay: loopdelay movax,data movds,ax movdx,io8255k moval,80h outdx,al movdx,io8255cre_on: movbx,0on: moval,portc1[bx] cmpal,0ffh jzre_on outdx,al incbx movcx,2000h testal,21h jzde1 movcx,0ffffhde1: movdi,0ffffhde0: decdi jnzde0 loopde1 pushdx movah,06h movdl,0ffh int21h popdx jzonexit: movah,4ch;返回 int21hcodeends endstart4.電路連線:(常用門電路)RST——(8255并行接口8253定時/計數(shù)器)RST(DVCC-32JHP)IOR——(8255并行接口8253定時/計數(shù)器)/RD(DVCC-32JHP)IOW——(8255并行接口8253定時/計數(shù)器)/WR(DVCC-32JHP)A0——(8255并行接口8253定時/計數(shù)器)A0(DVCC-32JHP)A1——(8255并行接口8253定時/計數(shù)器)A1(DVCC-32JHP)Y1——(8255并行接口8253定時/計數(shù)器)8255CS(DVCC-32JHP)JD1——(8255并行接口8253定時/計數(shù)器)JD(電源輸出)J8——(8255并行接口8253定時/計數(shù)器)J0(電源輸出)J5——(開關(guān)量)J0(開關(guān)量)L8——(8255并行接口8253定時/計數(shù)器)PA0(開關(guān)量)L9——(8255并行接口8253定時/計數(shù)器)PA1(開關(guān)量)L10——(8255并行接口8253定時/計數(shù)器)PA4(開關(guān)量)L11——(8255并行接口8253定時/計數(shù)器)PA3(開關(guān)量)JL1——(8255并行接口8253定時/計數(shù)器)PC5.心得體會:通過這次實驗了解到交通燈的控制原理,首先必須計算出在全紅、東西綠南北紅、東西黃南北紅、東西紅南北綠、東西紅南北黃的幾種情況下,C口與A口的值,再編寫源代碼,然后連接電路圖,此次電路圖也比前兩次的復(fù)雜一點,要更細心。實驗六一、實驗?zāi)康牧私鈹?shù)/模轉(zhuǎn)換器的基本原理,掌握DAC0832芯片的技術(shù)參數(shù)和使用方法。二、實驗內(nèi)容1.按圖接線,DAC0832采用單緩沖方式,具有單雙極性輸出端(圖中的DOUT1、DOUT),利用輸出指令OUTDX,AL,編寫一個小程序,然后單步運行,輸出數(shù)據(jù)給DAC0832,用萬用表測量單極性輸出端DOUT1及雙極性輸出端DOUT的電壓,驗證數(shù)字量與電壓之間的線性關(guān)系。2.編程從DOUT輸出產(chǎn)生正弦波,用示波器觀察。三、編程提示1.8位D/A轉(zhuǎn)換器DAC0832的口地址為290H,輸入數(shù)據(jù)與輸出電壓的關(guān)系為: DOUT1=-Uref×N/256DOUT=2×Uref×N/256-5 其中,Uref表示參考電壓,就是0832第8腳上的電壓為+5V,由外部輸入。N表示輸入到DA0832的數(shù)字量。3.產(chǎn)生正弦波可根據(jù)正弦函數(shù)建一個正弦數(shù)字量表,取值范圍為一個周期,表中數(shù)據(jù)個數(shù)在16個以上。實驗流程圖實驗代碼inportequ0ff00h-280hda0832equinport+288hcodesegmentassumecs:codestart:xorax,axxordx,dxmovdx,da0832ok:moval,00houtdx,alcalldelaymoval,0fehoutdx,alcalldelayjmpokdelayprocnearmovbx,0f000hx2:movbp,0f000hx1:decbpjnzx1decbxjnzx2retdelayendpcodeendsendstart實驗體會芯片0832能實現(xiàn)D/A數(shù)模轉(zhuǎn)換,它和D/A轉(zhuǎn)換不同。它主要是將計算機的數(shù)字信號轉(zhuǎn)換為外部設(shè)備中連續(xù)變化的模擬信號。而且0832芯片兩級緩沖寄存器,利用雙緩沖功能,D/A寄存器保持當(dāng)前要轉(zhuǎn)換的數(shù)據(jù),而在輸入寄存器中保存下一次要轉(zhuǎn)換的數(shù)據(jù)。實驗七一、實驗?zāi)康牧私饽?數(shù)轉(zhuǎn)換的基本原理,掌握ADC0809的使用方法。二、實驗內(nèi)容1.按圖接線。編寫實驗程序,用ADC0809完成模擬信號到數(shù)字信號的轉(zhuǎn)換,輸入的模擬量由系統(tǒng)板上一可調(diào)電位器產(chǎn)生0~5V,由Vout插孔和J11同時引出,將此電壓送入ADC0809通道0(即IN0),IN0由J1插座引出。啟動A/D轉(zhuǎn)換器,輸入命令讀取轉(zhuǎn)換結(jié)果,驗證輸入電壓與轉(zhuǎn)換后數(shù)字量的關(guān)系。注意:ADC0809通道IN1~IN7由插座J2~J8引出。2.編程采集IN0輸入的電壓,在屏幕上顯示出轉(zhuǎn)換后的數(shù)據(jù)(用16進制數(shù))。3.由于DVCC卡使用PCI總線,所以分配的IO地址每臺微機可能都不同,編程時需要了解當(dāng)前的微機使用那段IO地址并進行設(shè)置,獲取方法見《用戶手冊》第五章節(jié)5.3第10~12點中的介紹。下面的程序AD_1.ASM(在文件夾“ASM_匯編例程”中)是需要用戶自己根據(jù)查找到的DVCC卡的I/O基址替換到程序中帶下劃線的位置(0C400H)。三、實驗提示1.ADC0809包括一個8位的逐次逼近式的ADC部分,并提供一個8通道的模擬多路開關(guān)和聯(lián)合尋址邏輯。用它可以直接輸入8個單端的模擬信號,分時進行A/D轉(zhuǎn)換,在多點巡回檢測、過程控制等領(lǐng)域應(yīng)用非常廣泛。2.IN0單極性輸入電壓與轉(zhuǎn)換后數(shù)字量的關(guān)系為:N=256×Ui/Uref其中Ui為輸入電壓,Uref為參考電壓,這里的參考電壓為+5V。3.一次A/D轉(zhuǎn)換的程序可以為:MOVAL,通道地址MOVDX,0809片選地址OUTDX,AL;啟動轉(zhuǎn)換…;延時INAL,DX;讀取轉(zhuǎn)換結(jié)果放在AL中實驗流程圖五、實驗代碼:ioport equ0ff00h-0280hio0809a equioport+289hcodesegment assumecs:codestart:movdx,io0809a;啟動A/D轉(zhuǎn)換器 moval,0h outdx,al movcx,0ffh;延時delay:loopdelay inal,dx;從A/D轉(zhuǎn)換器輸入數(shù)據(jù) movbl,al;將AL保存到BL movcl,4 shral,cl;將AL右移四位 calldisp;調(diào)顯示子程序顯示其高四位 moval,bl andal,0fh calldisp;調(diào)顯示子程序顯示其低四位 movah,02 movdl,20h;加回車符 int21h movdl,20h int21h pushdx movah,06h;判斷是否有鍵按下 movdl,0ffh int21h popdx jestart;若沒有轉(zhuǎn)START movah,4ch;退出 int21hdispprocnear;顯示子程序 movdl,al cmpdl,9;比較DL是否>9 jleddd;若不大于則為'0'-'9',加30h為其ASCII碼 adddl,7;否則為'A'-'F',再加7ddd:adddl,30h;顯示 movah,02 int21h retdispendpcodeendsendstart實驗感想模/數(shù)轉(zhuǎn)換是將模擬電壓或電流轉(zhuǎn)換成數(shù)字量,它的過程和原理與用天平稱重物體十分相似。實驗八一、實驗?zāi)康模保私獯型ㄓ嵉幕驹?。2.掌握串行接口芯?251的工作原理和編程方法。二、實驗內(nèi)容1.按連接好電路,其中8253用于產(chǎn)生8251發(fā)送和接收時鐘,TXD和RXD連在一起。2.編程:從鍵盤輸入一個字符,將其ASCII碼加1后發(fā)送出去,再接收回來在屏幕上顯示,實現(xiàn)自發(fā)自收。顯示的內(nèi)容是:前一個字符為鍵盤上輸入的字符,后一個是鍵盤上輸入字符的ASCII碼加1后字符。如鍵入的字符是A,顯示的是AB。 3.由于DVCC卡使用PCI總線,所以分配的IO地址每臺微機可能都不同,編程時需要了解當(dāng)前的微機使用那段IO地址并進行設(shè)置,獲取方法見《用戶手冊》第五章節(jié)5.3第10~12點中的介紹。下面的程序D8251.ASM(在文件夾“ASM_匯編例程”中)是需要用戶自己根據(jù)查找到的DVCC卡的I/O基址替換到程序中帶下劃線的位置(0C400H)。三、實驗提示1.圖示電路8251的片選地址為2B8H,8253的片選地址為280H。2.8253計數(shù)器的計數(shù)初值=時鐘頻率/(波特率×波特率因子),這里的時鐘頻率接1MHz,波特率若選1200,波特率因子若選16,則計數(shù)器初值為52。3.收發(fā)采用查詢方式。四、實驗流程圖開始開始初始化8253初始化8251顯示提示從8251控制口讀狀態(tài)字TXRDY為1?從鍵盤接收字符將鍵入字符的ASCII碼加1是ESC鍵?通過8251數(shù)據(jù)口發(fā)送字符碼從8251數(shù)據(jù)口發(fā)送字符從8251數(shù)據(jù)口接收數(shù)據(jù)DXRD

溫馨提示

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

最新文檔

評論

0/150

提交評論