微機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)_第1頁(yè)
微機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)_第2頁(yè)
微機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)_第3頁(yè)
微機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)_第4頁(yè)
微機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

說(shuō)明

微機(jī)原理與接口技術(shù)是電子信息類專業(yè)必修的基礎(chǔ)專業(yè)課之一,該課程在軟

硬件兩方面的實(shí)驗(yàn)栗求都比較嚴(yán)格,要求完成課程之后,熟練掌握X86系列匯編

語(yǔ)言的編程,并實(shí)現(xiàn)對(duì)各常見接口電路芯片的編程控制與使用。

鑒于軟件學(xué)院的特點(diǎn),我們采取虛擬實(shí)驗(yàn)為主,實(shí)際硬件設(shè)計(jì)實(shí)驗(yàn)為輔的原

則,利用海軍航空工程學(xué)院青島分院開發(fā)的《微機(jī)原理與接口技術(shù)虛擬實(shí)驗(yàn)室》

完成實(shí)驗(yàn)教學(xué)。

現(xiàn)將虛擬實(shí)驗(yàn)中的說(shuō)明部分整理成冊(cè),附加相關(guān)資料,作為實(shí)驗(yàn)指導(dǎo)書,希

望能夠?qū)ν瑢W(xué)的實(shí)驗(yàn)學(xué)習(xí)提供方便。

在整編過(guò)程中,得到了楊發(fā)寶、羊勇生、王崇國(guó)、曹為民等諸位老師的支持

與幫助。盡管如此,該書還是比較粗糙,在使用過(guò)程出現(xiàn)的各種錯(cuò)誤,敬請(qǐng)及時(shí)

反饋。

參考資料:

《微型計(jì)算機(jī)技術(shù)及應(yīng)用(第三版)》戴梅萼史嘉權(quán)清華大學(xué)出版社

《微型計(jì)算機(jī)技術(shù)及應(yīng)用習(xí)題與實(shí)驗(yàn)題集(第三版)》戴梅萼清華大學(xué)出版社

《微機(jī)原理與接口技術(shù)虛擬實(shí)驗(yàn)室》吳為團(tuán)等海軍航空工程學(xué)院(青島)

冷洪勇

2006-4-17

目錄

實(shí)驗(yàn)一10控制實(shí)驗(yàn)3

實(shí)驗(yàn)二8225驅(qū)動(dòng)LED實(shí)驗(yàn)5

實(shí)驗(yàn)三8255驅(qū)動(dòng)數(shù)碼管實(shí)驗(yàn)8

實(shí)驗(yàn)四鍵盤實(shí)驗(yàn)10

實(shí)驗(yàn)五8253使用14

實(shí)驗(yàn)六A/D轉(zhuǎn)換實(shí)驗(yàn)16

實(shí)驗(yàn)七D/A轉(zhuǎn)換19

實(shí)驗(yàn)八交通燈控制實(shí)現(xiàn)22

實(shí)驗(yàn)九溫度監(jiān)控實(shí)現(xiàn)25

實(shí)驗(yàn)十霓虹燈控制27

附錄一虛擬實(shí)驗(yàn)臺(tái)的使用31

附錄二匯編程序的建立與調(diào)試33

附錄三debug命令簡(jiǎn)明介紹37

附錄四ASCII碼表40

附錄五涉及常用芯片管腳定義圖41

實(shí)驗(yàn)一IO控制實(shí)驗(yàn)

實(shí)驗(yàn)?zāi)康?/p>

1.掌握I/O數(shù)據(jù)傳送的基本原理;

2.掌握查詢方式的程序設(shè)計(jì)方法。

實(shí)驗(yàn)內(nèi)容

利用查詢方式,從BUFFER開始的單元中依次讀取10個(gè)字節(jié)數(shù),并存放到43AH端

口。設(shè)狀態(tài)端口為43BH,其DO位為0時(shí)允許傳送。

實(shí)驗(yàn)原理

輸出裝置取得數(shù)據(jù)后發(fā)出ACK信號(hào),使“BUSY”線為0。CPU讀取此狀態(tài)信息后,便執(zhí)

行輸出指令,將輸出數(shù)據(jù)送入鎖存器,同時(shí)將觸發(fā)器置1。

圖1-1查詢式輸出接口電路

實(shí)驗(yàn)操作

1.電路連接查詢式輸出專用實(shí)驗(yàn)臺(tái)

2.程序調(diào)試

進(jìn)入Windows的MS-DOS方式下,進(jìn)行匯編語(yǔ)言程序調(diào)試的步驟

編輯程序用MASM匯編程序用LINK連接程序運(yùn)行程序

流程圖與輸出結(jié)果

[開始)

數(shù)據(jù)個(gè)數(shù)fex

數(shù)據(jù)起始地址-s工

外設(shè)數(shù)據(jù)緩沖區(qū)

10

圖1-2流程圖與輸出結(jié)果

例程:

Datasegment

Bufferdb1,2,3,4,5,6,7,8,9,10

Dataends

Codesegment

Assumecs:code,ds:data

Go:movax,data

Movds,ax

Leasi,buffer

Movex,10

LI:Movdx,43BH

Inal,dx;讀狀態(tài)端口

Testal,0000000IB

Jnz11

Moval,[si]

Decex

Outdx,al;數(shù)據(jù)輸出

Incsi

Loop11

Movah,4ch

Int21h

Codeends

Endgo

實(shí)驗(yàn)二8225驅(qū)動(dòng)LED實(shí)驗(yàn)

實(shí)驗(yàn)?zāi)康?/p>

1.學(xué)會(huì)利用PC總線組織一個(gè)并行接口的基本方法;

2.了解并行接口電路8255A的基本性能,掌握其引腳連接方法和初始化編程方法;

3.初步學(xué)會(huì)對(duì)并行端口進(jìn)行一般輸出控制的方法。

實(shí)驗(yàn)內(nèi)容

利用8255A擴(kuò)展一組(3個(gè))并行口,利用這些并行口連接24個(gè)發(fā)光二極管,使之組

成一個(gè)連環(huán),然后通過(guò)編程控制這些發(fā)光二極管,使其按照一定規(guī)律交替閃亮。

實(shí)驗(yàn)項(xiàng)目

利用8255的三個(gè)端口輸出24個(gè)數(shù)字信號(hào),經(jīng)過(guò)74LS07反相驅(qū)動(dòng)器接至各LED的陰

極端,LED陽(yáng)極通過(guò)上拉電阻接至+5V電源,電路如圖所示。當(dāng)8255輸出高電平時(shí)對(duì)應(yīng)的

LED可發(fā)亮,輸出低電平則滅,這樣便可通過(guò)編程,每間隔一段時(shí)間,通過(guò)8255改變輸出

數(shù)據(jù),使LED按照一定的規(guī)律閃亮變化。

D0PP

D1P

D2P-P1

D3P-P1

D4P-P1

D5P-P1

D6P-F1

D7P-F1

ZIOR5P

RD

8255P

RRP

OOP

AlP

P

RESETP

CSP

L4

-r痣

學(xué)

鹿

圖2-1LED顯示控制系統(tǒng)原理圖

流程圖一

例程一

codesegment;匯編語(yǔ)言程序Endgo

assumecs:code;//c語(yǔ)言程序

portAequ400H;PA口地址#include<stdio.h>

go:movdx,porta+3#include<dos.h>

moval,80h#include<conio.h>

Outdx.al;三端口均初始化為方式0輸出#definedl100

LO:movsi,24voidmain(void)

movbxj;低16位初始值設(shè)為1{inti=l,j=0;

movcl,0;高8位初始值設(shè)為0outportb(0x403,0x80);

LI:movah,0bHwhile(!kbhit())

Int21h;有無(wú)按鍵{switch(j)

Cmpal,OffH(

Jzexitcase0:

movdx,porta;;輸出24位數(shù)outportb(0x400,i);

moval,bldelay(dl);i=i*2;

Outdx,alif(i==128){i=l;j++;}

Incdxbreak;

moval,bhcase1:

Outdx,aloutportb(0x400,0);//delay(dl);

Incdxj++;break;

moval,clcase2:

Outdx,aloutportb(0x401,i);

Calldelay05;延時(shí)delay(dl);i=i*2;

SHLbx,l;低16位左移一位if(i==128){i=l;j++;}

Rclcl,l;高8位左移一位break;

decsicase3:

jnzLIj++;

JmpLO;重新開始o(jì)utportb(0x401,0);//delay(dl);

Exit:movah,4chbreak;

Int21hcase4:

delay05procnear;循環(huán)延時(shí)子程序outportb(0x402,i);

pushexdelay(dl);

pushbxi=i*2;

movcx,0000Hif(i==128){i=l;j++;}

dl:movbx,0a00hbreak;

d2:decbxcase5:

jnzd2j=o;

loopd1outportb(0x402,0);//delay(dl);

popbxbreak;

popex)

ret)

delay05endp)

Codeends

流程圖二

(5K)

圖2-3流程圖二

例程二

;匯編語(yǔ)言程序Outdx,al

codesegmentCalldelay05;延時(shí)

assumecs:codeXorbx,OffffH;各位取反

portAequ400H;PA口地址xorcl,OffH

go:movdx,porta+3JmpLO

moval,80hExit:movah,4ch

Outdx,al;三端口均初始Int21h

化為方式0輸出delayO5procnear;循環(huán)延時(shí)子程

movbx,5555H序

movcl,55Hpushex

LO:movah,0bHpushbx

Int21h;有無(wú)按鍵movcx,0900H

Cmpal,OffHdl:movbx,0

Jzexitd2:decbx

movdx,porta;輸出24位數(shù)jnzd2

moval,blloopdl

Outdx,alpopbx

Incdxpopex

moval,bhret

Outdx,aldelayO5endp

IncdxCodeends

moval,clEndgo

實(shí)驗(yàn)三8255驅(qū)動(dòng)數(shù)碼管實(shí)驗(yàn)

實(shí)驗(yàn)?zāi)康?/p>

1.掌握七段數(shù)碼管顯示數(shù)字的原理;

2.了解8255A與CPU的連接。利用8255A的并行口來(lái)控制四個(gè)七段數(shù)碼管:

實(shí)驗(yàn)內(nèi)容

1.循環(huán)顯示數(shù)字0000、1111、…、9999;

2.依次循環(huán)顯示數(shù)字6:

3.分別顯示字符a、b、c、do

實(shí)驗(yàn)原理

利用8255A的PA口作為段選輸出,選擇哪些段發(fā)光,用8255A的PB口作為位選輸出,

分別接數(shù)碼管的共陰(陽(yáng))極,來(lái)決定哪個(gè)數(shù)碼管可顯示。

a、b、?.dpcommo

位選

coimDoni..4

8255A

圖3-1數(shù)碼管驅(qū)動(dòng)原理圖

流程圖二流程圖三

初始化8255,A口、B口輸出初始化8255,A口、B口輸出

段碼置初值COH,位選置QFH

段碼送PAD,顯示段碼送PAD,顯示字符

GM

圖3-2流程圖

例程一

Datasegmentint21h;檢測(cè)有無(wú)按鍵,返回

PortAequ404H;8255的PA口地址AL=0FFh(有按鍵)或0(無(wú)按鍵)

xzdbOcOh,Of9h,0a4h,ObOh,99h,92h,cmpal,0FFh

82h,Of8h,80h,90h;定義0?9的顯示代碼jzExit

Dataendsincsi;準(zhǔn)備顯示下一數(shù)字

Codesegmentcmpsi,Oah;判斷是否顯示完”9"

assumecs:code,ds:datajnz11

Start:movax,datajmp10

movds,axExit:movah,4ch;結(jié)束程序

movdx,PortA+3int21h

moval,80Hdeprocnear;循環(huán)延時(shí)子程序

outdx,al;PA、PB口初始化pushex

為基本輸出方式pushbx

L0:leasi,xzmovcx,55OOH

Ll:moval,[si];顯示數(shù)字dl:movbx,0

movah,Ofh;置位選初值,四d2:decbx

個(gè)數(shù)碼管同時(shí)顯示jnzd2

movdx,PortAloopd1

outdx,alpopbx

moval,ahpopex

movdx,PortA+lret

outdx,aldeendp

callde;延時(shí)Codeends

movah,ObhendStart

例程二

Datasegment10:moval,ah

PortAequ404H;8255的PA口地址pushax

Dataendsmovdx,PortA+l

Codesegmentoutdx,al

assumecs:code,ds:datacallde;延時(shí)

Start:movax,dataLA:movah,Obh

movds,axint21h;檢測(cè)有無(wú)按鍵,

movdx,PortA+3返回AL=0FFh(有按鍵)或0(無(wú)按鍵)

moval,80Hcmpal,0FFh

outdx,al;;PA、PB口初始化為jzExit

基本輸出方式popax

movah,01Ih;置位選初值,右rolahJ;選擇下一數(shù)碼管

邊數(shù)碼管先顯示jmp10

moval,82h;顯示數(shù)字“6"(因Exit:movah,4ch;結(jié)束程序

力口反向器,PA0~PA6要取反)int21h

movdx,PortAdeprocnear;循環(huán)延時(shí)子程序

outdx,alpushex

pushbxpopbx

movex,11OOHpopex

d1:movbx,0ret

d2:decbxdeendp

jnzd2Codeends

loopdlendStart

例程三

Datasegment返回AL=0FFh(有按鍵)或0(無(wú)按鍵)

PortAequ404H;8255的PA口地址empal,0FFh

xzdb88h,83h,Oc6h,Oalh;定義a?d的jzExit

顯示代碼incsi;準(zhǔn)備顯示下一數(shù)字

Dataendspopax

Codesegmentshrah,l;選擇下一數(shù)碼管

assumecs:code,ds:dataempah,0;判斷是否顯示完"d"

Start:movax,datajnz11

movds,axjmp10

movdx,PortA+3Exit:movah,4ch;結(jié)束程序

moval,80Hint21h

outdx,al;PA、PB口初始化deprocnear;循環(huán)延時(shí)子程序

為基本輸出方式pushex

L0:leasi,xzpushbx

movah,08h;置位選初值,從movcx,01(X)H

左邊開始顯示d1:movbx,200h

LI:pushaxd2:decbx

moval,[sij;顯示數(shù)字jnzd2

movdx,PortAloopdl

outdx,alpopbx

moval,ahpopex

movdx,PortA+lret

outdx,aldeendp

callde;延時(shí)Codeends

movah,ObhendStart

int21h;檢測(cè)有無(wú)按鍵,

實(shí)驗(yàn)四鍵盤實(shí)驗(yàn)

實(shí)驗(yàn)?zāi)康?/p>

1.了解鍵盤基本結(jié)構(gòu),掌握鍵盤接口設(shè)計(jì)原理;

2.通過(guò)編程掌握按鍵識(shí)別方法。

實(shí)驗(yàn)內(nèi)容

利用8255A設(shè)計(jì)一個(gè)4x4的小鍵盤接口和4位數(shù)碼管顯示混合電路,通過(guò)編程實(shí)現(xiàn)

以下功能:

1.識(shí)別按鍵并在微機(jī)屏幕上顯示當(dāng)前按鍵上的字符0、1...9、A--F;

2.在數(shù)碼管上顯示按鍵的行、列號(hào)。

實(shí)驗(yàn)原理

一、電路設(shè)計(jì)

實(shí)驗(yàn)原理圖

8255A

p響0

p殖1

p響2

p響3

p響4

p況5

p吠6

p隔7

pB0

pB1

pB2

PB3

圖4-1鍵盤原理圖

二、按鍵識(shí)別

按鍵識(shí)別有兩種方法:一是采用行掃描法,二是行反轉(zhuǎn)法。

行掃描法的基本原理:使鍵盤上某一行線為低電平,其余行線為高電平,通過(guò)

程序讀取列值,如果列值中某位為低電平,則表明行列交叉點(diǎn)處的鍵被按下,否則掃描下一

行,直至掃描全部行線為止。為此需要采用輸入口、輸出口各一個(gè)。

行反轉(zhuǎn)法的基本原理:將行線接一個(gè)并行口,先讓它工作在輸出方式,將列線

也接在一個(gè)并行口上,讓它工作在輸入方式。先往各行線上全部送低電平,然后讀入列線值,

如果此時(shí)有鍵按下,則使某一列線值為0。再把行線端口改為輸入方式,列線端口改為輸出

方式,再讀入行線的值,此時(shí)閉合鍵所在行線的值必定為0。因此,當(dāng)一個(gè)鍵被按下時(shí),一

定可讀到一對(duì)唯一的行列值。為此需要提供兩個(gè)可編程的雙向I/O端口。

三、去抖動(dòng)

去抖動(dòng)方法一般有硬件去抖法和軟件延時(shí)法。軟件延時(shí)法的做法是:當(dāng)發(fā)現(xiàn)有鍵按下或釋放

時(shí),軟件延時(shí)一段時(shí)間再檢測(cè),延時(shí)時(shí)間長(zhǎng)短根據(jù)鍵的質(zhì)量而定,一般在5~20ms左右,如

下圖所示。

Ui

5^2Oms

圖4-2去抖動(dòng)示意圖

實(shí)驗(yàn)操作

1.電路連接打開鍵盤實(shí)驗(yàn)專用實(shí)驗(yàn)臺(tái)

2.程序調(diào)試(下載匯編調(diào)試程序MASM5.0)

進(jìn)入Windows的MS-DOS方式下,進(jìn)行匯編語(yǔ)言程序調(diào)試的步驟

編輯程序用MASM匯編程序用LINK連接程序運(yùn)行程序

流程圖

圖4-3流程圖

例程

DatasegmentDataends

PortAequ408H;8255的PA口地址Codesegment

tabledb30h,31h,32h,33h,34h,35h,36h,assumecs:code,ds:data

37h,38h,39h.41h,42h,43h,44h,45h,46hStartimovax,data

movds,axjnz10

movdx,PortA+3movah,4ch

moval,82H;PA輸出PB輸入int21h

outdx,al;dispprocnear

10:movsi,0pushbx

moval,Ofeh;pushsi

movbx,04hpushdi

ll:movdx,PortApushax

outdx,alpushdx

pushaxleabx,table

movdx,portA+laddsi,si

inal,dxaddsi,si

movcx,04hadddi,si

movdi,0movax,di

12:shral,lxlat

jc13movdl,al

calldispmovah,02h

13:incdiint21h

loop12popdx

popaxpopax

rolal,lpopdi

incsipopsi

decbxpopbx

jnzllret

movah,Obhdispendp

int21h;檢測(cè)有無(wú)按鍵,返回Codeends

AL=0FFh(有按鍵)或0(無(wú)按鍵)endStart

cmpal,OFFh

實(shí)驗(yàn)演示

\iMS-DOS提示符■■■力區(qū)

I~F耳隹畫畫所可反

()000000000000000000000000000000()0000()00()

00000000000000000000000000011111111111111

1212I2I212I212I2I2I2I212I2I212I21212I2I2

1212121212129129129129129129129129129129

1291291291291291291291919191919191919191

|9I9I919I9I9I919191919191919I9I9I919_

圖4-4實(shí)驗(yàn)結(jié)果演示圖

實(shí)驗(yàn)五8253使用

實(shí)驗(yàn)?zāi)康?/p>

1.了解8253定時(shí)器的硬件連接方法及時(shí)序關(guān)系;

2.掌握8253的各種模式的編程及其原理。

實(shí)驗(yàn)內(nèi)容

將8253計(jì)數(shù)器/定時(shí)器0的工作方式分別設(shè)置為方式2、方式3,用示波器觀察輸出波

形的變化。

實(shí)驗(yàn)原理

圖5-1方波輸出實(shí)驗(yàn)原理圖

實(shí)驗(yàn)操作

I.電路連接打開8253專用實(shí)驗(yàn)臺(tái)

2.程序調(diào)試(下載匯編調(diào)試程序MASM5.0)

進(jìn)入Windows的MS-DOS方式下,進(jìn)行匯編語(yǔ)言程序調(diào)試的步驟

編輯程序用MASM匯編程序用LINK連接程序運(yùn)行程序

流程圖

圖5-2流程圖

例程

datasegment

TIM_CTLEQU453H;8253狀態(tài)/命令口地址

TIMEROEQU450H

MODE03db36h

dataends

codesegment

assumecs:code,ds:data

go:movax,data

movds,ax

movex,10

movbx,5h

movdx,TIM_CTL

moval,MODE03

outdx,al;定時(shí)器0工作在方式3

MOVdx,TIMER0

MOVal,bl

outdx,al

MOVAl,bh

outdx,al;計(jì)數(shù)初值為01OOH

movah,4ch

int21h

codeends

ENDgo

實(shí)驗(yàn)六A/D轉(zhuǎn)換實(shí)驗(yàn)

實(shí)驗(yàn)?zāi)康?/p>

1.掌握A/D轉(zhuǎn)換器芯片ADC0809將模擬量轉(zhuǎn)換成數(shù)字量的過(guò)程和工作原理;

2.掌握ADC0809芯片的性能特點(diǎn)和正確使用方法。

實(shí)驗(yàn)內(nèi)容

利用ADC0809芯片完成A/D轉(zhuǎn)換的功能。要求:輸入八路電壓模擬信號(hào),按延時(shí)的方

式采樣A/D轉(zhuǎn)換數(shù)據(jù),轉(zhuǎn)換結(jié)果送入420H-427H端口。

實(shí)驗(yàn)原理

R=1K2

一、電量測(cè)量電路

產(chǎn)生模擬信號(hào):按右圖設(shè)計(jì)電路,將產(chǎn)

生八路輸入模擬信號(hào)(IV、1.5V、2V

4.5V)。

A/D轉(zhuǎn)換:在CLOCK端加300KHZ的

時(shí)鐘脈沖,通過(guò)寫I/O端口400H~407H選

擇并啟動(dòng)相應(yīng)的通路進(jìn)行轉(zhuǎn)換,采用延時(shí)的

方法等待轉(zhuǎn)換結(jié)束。

獲取結(jié)果:通過(guò)讀400H~407H中的任

一I/O端口獲得轉(zhuǎn)換結(jié)果(輸入量0?4.5V的

轉(zhuǎn)換結(jié)果對(duì)應(yīng)于數(shù)字量0-255)。

圖6-1電量測(cè)量電路

二、非電量測(cè)量電路

將非電量參數(shù)轉(zhuǎn)化為電量參數(shù)。利用傳

感器等對(duì)非電量(如壓力、溫度、光等)參數(shù)

進(jìn)行變換、加工處理,按照能夠確定的模型力

轉(zhuǎn)化為0~5V的模擬信號(hào)?;?/p>

A/D轉(zhuǎn)換:在CLOCK端力口300KHZ的度

時(shí)鐘脈沖,啟動(dòng)相應(yīng)的通路進(jìn)行轉(zhuǎn)換,采用光

延時(shí)的方法等待轉(zhuǎn)換結(jié)束。電

獲取結(jié)果:根據(jù)模型計(jì)算得出非電量參阻

數(shù)值。

圖6-2非電量測(cè)量電路

實(shí)驗(yàn)操作

I.電路連接專用實(shí)驗(yàn)臺(tái)

2.程序調(diào)試(下載匯編調(diào)試程序MASM5.0)

進(jìn)入Windows的MS-DOS方式下,進(jìn)行匯編語(yǔ)言程序調(diào)試的步驟

編輯程序用MASM匯編程序用LINK連接程序運(yùn)行程序

流程圖callachange

calldchange

?movdx,offsetb;顯示結(jié)果

IDX?-端口步址420HI

movah,9

int21h

movah,2

movdl,Oah;回車、換行

int21h

movdl,Odh

int21h

incsi

inccl

empcl,8

jnzgo

圖6-3流程圖movah,4ch

例程int21h

datasegment

portequ420hdelayproc;延時(shí)程序

adb8dup(?)pushbx

bdb"IN?:????.?V$";定義顯示格式pushex

dataendsmovcx,Offfh

codesegmentnb:movbx,Offft

assumecs:code,ds:data,es:datarra:decbx

start:movax,datajnzrra

movds,axdecex

moves,axjnzrrb

movsi,offsetapopex

movex,8popbx

movdx,portret

again:moval,llhdelayendp

outdx,al;啟動(dòng)A/D轉(zhuǎn)換

calldelay;延時(shí)等待dchangeproc;將數(shù)字量的

inal,dx百位、十位、個(gè)位分離

mov[si],al;獲取轉(zhuǎn)換結(jié)果moval,[si]

incdxmovah,0

incsimovbl,100

loopagain;判斷8路輸入量divbl

轉(zhuǎn)換完否pushax

movcx,0addal,30h

movsi,offsetamov[di+5],al

movdi,offsetbpopax

go:movch,clmoval,ah

addch,30hmovah,0

mov[di+2],chmovbl,10

divbl數(shù)字量*5/255

pushaxdivbl

addal,30hsubah,l28;四舍五入

mov[di+6],aljcshequ

popaxincal

addah,3Ohshequ:movah,0

mov[di+7],ahmovbl,10

retdivbl

dchangeendpaddal,30h

mov[di+1l],al

achangeproc;將數(shù)字量addah,30h

轉(zhuǎn)換為模擬量以顯示mov[di+13],ah

movbl,50ret

moval,[sil;模擬量achangeendp

0?5V對(duì)應(yīng)于數(shù)字量0~255codeends

mulblendstart

movbl,255;模擬量=

結(jié)果演示

醫(yī)ES-DOS方式HBE3I

|自動(dòng)_xJ口跑跑|囹|富|臼|A|漢I

E:\MASM>ad8

IN0:2294.5U

IH1:2044.0U

IN2:1783.5U

IN3:1533.0U

IN4:1272.5U

IN5:1022.OU

IN6:0761.5U

IN7:0511.0U

E:\MASM>

圖6-4結(jié)果演示圖

實(shí)驗(yàn)七D/A轉(zhuǎn)換

實(shí)驗(yàn)?zāi)康?/p>

1.掌握D/A轉(zhuǎn)換器芯片DAC0832將數(shù)字量轉(zhuǎn)換成模擬量的過(guò)程和工作原理;

2.掌握DAC0832芯片的性能特點(diǎn)和正確使用方法。

實(shí)驗(yàn)內(nèi)容

利用DAC0832芯片完成D/A轉(zhuǎn)換的功能。要求:通過(guò)編程分別產(chǎn)生鋸齒波、三角波、正弦

波,并在示波器上顯示出來(lái),調(diào)整頻率使之易于觀察。

實(shí)驗(yàn)原理

DAC0832實(shí)驗(yàn)原理圖

流程圖

圖7-2流程圖

實(shí)驗(yàn)操作

1.電路連接打開數(shù)模轉(zhuǎn)換專用實(shí)驗(yàn)臺(tái)

2.程序調(diào)試(下載匯編調(diào)試程序MASM5.0)

進(jìn)入Windows的MS-DOS方式下,進(jìn)行匯編語(yǔ)言程序調(diào)試的步驟

編輯程序用MASM匯編程序用LINK連接程序運(yùn)行程序

例程

DATASEGMENTDECDX

MESSIDB'Q--Next!;0DH,0AH;$,CALLRELAY

MESS2DBQ-Next!;0DH,0AH;$'ADDAL,10H

MESS3DB'Q--End!',0DH,0AH;$'CMPAL,OOH

SINBUFDB128,88,53,24,6,0,6,24,JNZBBB

53,88,128,168,203,232MOVAH,0BH

DB250,255,250,232,203,168INT21H

PORTEQU428HXORAL,0FFH

DATAENDSJNZAl

STACKSEGMENTMOVAH,01H

STADB200DUP(?)INT21H

TOPEQULENGTHSTACMPAL,Q

STACKENDSJZQQQ

CRLFMACROCMPAL,q

MOVDL,0DHJNZAl

MOVAH,02H

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論