微機實踐全部實驗_第1頁
微機實踐全部實驗_第2頁
微機實踐全部實驗_第3頁
微機實踐全部實驗_第4頁
微機實踐全部實驗_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實驗一開關(guān)狀態(tài)顯示

【實驗目的】

熟悉實驗箱和軟件開發(fā)平臺的使用。了解基本I/O端口的操作方法和技巧,掌握編程和調(diào)試基本

技能。

【實驗內(nèi)容】

利用74LS244作為輸入口,讀取開關(guān)狀態(tài),根據(jù)給定表格中開關(guān)狀態(tài)對應的輸出關(guān)系,通過

74LS273驅(qū)動發(fā)光二極管顯示出來。

【實驗區(qū)域電路連接圖】

n

?

i-x

m

3

2

?

74LS244

Y0?Y1接K1?K2(對應JI、J2);Q0?Q7接L1?L8(對應J3至J10);CS1接8000H孔

(對應JI2);CS2接9000H孔(對應Jll);IOWR-IOWR;IORD-IORD;然后用數(shù)據(jù)排線

連接JX7-JX17(BUS2)o

【程序框圖】

【編程】

CODESEGMENT

ASSUMECS:CODE

ORG1200H

START:

MOVDX,8000H

INAL,DX

TESTAL,01H

JNZY1/測試AL是否等于01H,若不等于,則跳入循環(huán)Yl/

TESTAL,02H

JNZY2/測試AL是否等于02H,若不等于,則跳入循環(huán)Y2/

MOVDX,9000H

MOVAL,0FFH/點亮所有的燈/

OUTDX,AL

JMPSTART

Yl:TESTAL,02H

JNZY3/測試AL是否等于02H,若不等于,則跳入循環(huán)Y3/

MOVDX,9000H

MOVAL,0AAH/點亮奇數(shù)號燈/

OUTDX,AL

JMPSTART

Y2:MOVDX.9000H

MOVAL,55H/點亮偶數(shù)號燈/

OUTDX,AL

JMPSTART

Y3:MOVDXSOOOH

MOVAL,00H/所有燈全滅/

OUTDX,AL

JMPSTART

CODEENDS

ENDSTART

【問答題】

1、I/O端口的尋址方式有哪2種?在x86系統(tǒng)中,采用哪一種?

解:I/O端口的尋址方式有兩種:一種是I/O地址與存儲器地址統(tǒng)一編址,一種是I/O地址與存儲

器地址分別獨立編址。在x86系統(tǒng)中,采用I/O地址與存儲器地址分別獨立編址。

2、在輸入/輸M電路中,為什么常常要使用鎖存器和緩沖器?

解:一股來說,I/O設(shè)備速度比CPU執(zhí)行速度慢,故輸入設(shè)備的數(shù)據(jù)線鎖存在端口的鎖存器中,

CPU從端口中讀入數(shù)據(jù);輸出時CPU將數(shù)據(jù)“打入”緩沖器后就可以退出,外設(shè)從緩沖器取數(shù)

據(jù)。

【心得體會】

第?次的實踐課程做的是開關(guān)狀態(tài)顯示,通過本次試驗的操作,我了解了dice8O86實驗系統(tǒng)自帶

鍵盤、顯示電路和監(jiān)控管理程序,在無PC機的情況下,同樣可以脫機通過單步、斷點、全速等

方法調(diào)試實驗程序。熟悉了實驗箱和軟件開發(fā)平臺的使用。了解基本I/O端口的操作方法和技巧,

掌握編程和調(diào)試基本技能。掌握了編程和調(diào)試基本技能,加深了對課堂上理論知識的學習,將理

論與實踐動手相結(jié)合,更好的掌握了知識,熟練了實驗箱和軟件結(jié)合使用的方法。

實驗二模擬交通燈實驗

【實驗目的】

1.學習在PC機系統(tǒng)中擴展簡單I/O接口的方法。

2.進?步學習編制數(shù)據(jù)輸出程序的設(shè)計方法。

3.學習模擬交通燈控制的方法。

【實驗內(nèi)容】

用8255做輸出口,控制十二個發(fā)光管(4組紅綠黃燈)的亮滅,模擬十字路口交通燈管理。

【實驗區(qū)域電路連接圖】

PC0T3;PC1T7;PC2-LI1;PC3fLi5;紅燈

PC4-L2:PC5fL6;PC6-LIO:PC7-L14;綠燈

PB4-L1;PB5-*L5;PB6T9;PB7-L13。黃燈

8255數(shù)據(jù)、控制線內(nèi)部已線連好。

【程序框圖】

【編程】

CODESEGMENT

ASSUMECS:CODE

ORG1000H

PORTAEQU0FF28H

PORTBEQU0FF29H

PORTCEQU0FF2AH

PORTCNEQU0FF2BH;將8255的A、B、C和控制口地址定義,方便使用

main:

movdx,portcn

moval.8Oh

outdx,al;8255初始化,向控制口寫入80H,表示A、B、C三個口都工作在方式0

movdx,portb

movaLOfDh

outdx,al;B口高位為黃燈,輸出0F0H/0FFH使黃燈初始全滅。否則默認輸出全0,黃燈會全

movdx,portc

moval.OTOh

outdx,al;Cll高位綠燈,低位紅燈。輸出0F0H使綠燈全滅紅燈全亮

calldelay1;延時

BEGIN:;主循環(huán)標號

movdx,portc

moval,Oa5h

outdx,al;1、3路口綠燈亮,即PC4和PC6為0。對應路口紅燈滅,即PC0和PC2為I,所

以輸出0A5H

calldelay3;紅綠燈轉(zhuǎn)換之間的長延時

movdx,portc

moval,0f5h

outdx,al;1、3路口綠燈滅,紅燈不變,輸出OF5H

movex,8;黃燈閃爍次數(shù)計數(shù)賦初值8

1.1:

movdx,portb

moval.OaOh

outdx,al;1、3路口黃燈對應PB4和PB6,該兩位為0,故輸出0A0H或0AFH

calldelay2;黃燈閃爍之間的短延時

movdx,portb

movaLOfDh

outdx,al;1、3路口黃燈滅,輸出0F0H或OFFH

calldelay2

decex;閃爍次數(shù)計數(shù)減1

jnzLl;閃爍次數(shù)計數(shù)不為0則跳回LI繼續(xù)閃爍

movdx,portc

movaLOfDh;綠燈全滅,紅燈全亮

outdx,al

movdx.portc

moval,5ah

outdx.al;2、4路口綠燈亮,紅燈滅

calldclay3

movdx,portc

movaLOfah

ouldx,al;2、4路口綠燈滅,紅燈不變

movex,8

L2:

movdx,porch

moval,50h

outdx,al

calldelay2

movdx.portb

moval,()fl)h

outdx.al

calldelay2

decex

jnzL2;2、4路口黃燈閃爍8次

movdx,portc

moval,OfUh

outdx,al;四個紅燈全亮

jmpBEGIN

delay1:

movax,5h

movbx,Oh

x:

dechx

jnzx

decax

jnzx

ret

delay2:

movax,lh

movbx,Oh

y:

decbx

jnzy

decax

jnzy

ret

delay3:

movax,2Oh

movbx,Oh

z:

decbx

jnzz

decax

jnzz

ret

codeends

endmain

【問答題】

1、8255A的哪個端口能實現(xiàn)位操作控制(按位置位/復位)?執(zhí)行控制字寫入操作的端口是哪個?

解:8255A的C端口能實現(xiàn)位操作控制(按位置位/復位),執(zhí)行控制字寫入操作的端口是命令字

端口。

2、寫出下圖中Intel8255A占用的4個端口地址。

解:FFFOH、FFF2H、FFF4H、FFF6H。

【心得體會】

這次的課程設(shè)計讓我把書本上的理論知識應用在實踐中,實現(xiàn)了理論和實踐相結(jié)合,從中更懂得

理論是實踐的基礎(chǔ),實踐有助于檢驗理論的正確性的道理。模擬交通燈工作的實驗,通過8255A

控制發(fā)光二極管,PB4-PB7對應黃燈,PCO-PC3對應紅燈,PC4-PC7對應綠燈,以模擬交通路燈

的管理。在實驗中不但要滿足題目所提出的要求,更要結(jié)合實際,考慮到現(xiàn)實問題,比如說綠燈

時間要比紅燈時間長。通過本次實驗,不僅再次熟悉了8255A,更是對自己編程技術(shù)一個很好的

鍛煉,對我以后參加工作或者繼續(xù)學習深造將產(chǎn)生巨大的幫助和影響。

實驗三8253定時器/計數(shù)器實驗

一、實驗目的

學會8253芯片與微機接口的原理和方法。

掌握8253定時器/計數(shù)器的工作原理和編程方法。

二、實驗內(nèi)容

編寫程序,將8253的計數(shù)器。設(shè)置為方式2(頻率發(fā)生器),計數(shù)器1設(shè)置為方式3(方波頻率發(fā)

生器),計數(shù)器。的輸出作為計數(shù)器1的輸入,計數(shù)器1的輸出接在一個LED上,運行后可觀察

到該LED在不停地閃爍。

1、編程時用程序框圖中的二個計數(shù)初值,計算0UT1的輸出頻率,用表觀察LED,進行核對。

2、修改程序中的二個計數(shù)初值,使OUT1的輸出頻率為1Hz,用手表觀察LED,進行核對。

3、上面計數(shù)方式選用的是16進制,現(xiàn)若改用BCD碼,試修改程序中的二個計數(shù)初值,使LED

的閃亮頻率仍為1Hz。

二、實驗區(qū)域電路連接圖

U21

?5V

T2

0040H

參考上圖連線:

CS3-0040H;JX8-JXO;IOWR-IOWR;IORD-IORD;AO-AO;AI-AI;GATE0-+5V;

GATEI-+5V;OUTO-CLK1;0UT1-L1;CLKO-0.5MHz:(單脈沖與時鐘單元)

四、編程指南

8253是一種可編程定時/計數(shù)器,有三個十六位計數(shù)器,其計數(shù)頻率范圍為0-2MHZ,用+5V單電

源供電。8253的六種工作方式:

⑴方式0:計數(shù)結(jié)束中斷⑷方式3:方波頻率發(fā)生器

⑵方式1:可編程頻率發(fā)生⑸方式4:軟件觸發(fā)的選通信號

⑶方式2:頻率發(fā)生器⑹方式5:硬件觸發(fā)的選通信號

R253方式控制字

D7DeDSDID3D2DIDO

SC1SCORLiRLoM2MlMoBCD

00:選擇計數(shù)器000:鎖定計數(shù)器000:選擇方式0計數(shù)碼

01:選擇計數(shù)器101:選擇低8位001:選擇方式1制選擇:

10:選擇計數(shù)器210:選擇高8位xlO:選擇方式20:二進

11:未使用11:選擇16位xl1:選擇方式3制計數(shù)

(先讀寫低8位100:選擇方式41:BCD

后讀寫高8位)101:選擇方式5碼計數(shù)

8253初始化編程

1、8253初始化編程

8253的控制寄存器和3個計數(shù)器分別具有獨立的編程地址,由控制字的內(nèi)容確定使用的是哪個計

數(shù)器以及執(zhí)行什么操作。因此8253在初始化編程時,并沒有嚴格的順序規(guī)定,但在編程時,必須

遵守兩條原則:

①在對某個計數(shù)器設(shè)置初值之前,必須先寫入控制字;

②在設(shè)置計數(shù)器初始值時,要符合控制字的規(guī)定,即只寫低位字節(jié),還是只寫高位字節(jié),還是高、

低位字節(jié)都寫(分兩次寫,先低字節(jié)后高字節(jié))。

2、8253的編程命令

8253的編程命令有兩類:一類是寫入命令,包括設(shè)置控制字、設(shè)置計數(shù)器的初始值命令和鎖存命

令:另一類是讀出命令,用來讀取計數(shù)器的當前值。

鎖存命令是配合讀出命令使用的。在讀出計數(shù)器值前,必須先用鎖存命令鎖定當前計數(shù)寄存器的

值。否則,在讀數(shù)時,減1計數(shù)器的值處在動態(tài)變化過程中,當前計數(shù)輸出寄存器隨之變化,就

會得到?個不確定的結(jié)果。當CPU將此鎖定值讀走后,鎖有功能自動失效,當前計數(shù)輸寄存器

的內(nèi)容又跟隨減1計數(shù)器變化。在鎖存和讀出計數(shù)值的過程中,減I計數(shù)器仍在作正常減I計數(shù)。

這種機制確保了即能在計數(shù)過程中讀取計數(shù)值,又不影響計數(shù)過程的進行。

五、程序框圖

開始

實驗步驟

1、按連線圖連接好,檢查無誤后打開實驗箱電源。

在PC端軟件開發(fā)平臺上輸入設(shè)計好的程序,編譯通過后下載到實驗箱。

3、運行程序后,觀察LED閃爍周期(可以看10次或更多次閃爍時間,以提高觀察準確度)。再

按要求調(diào)整初始值,使得閃爍周期為1S時間。

如果運行不正常就要檢杳連線,程序。排查錯誤,修改程序,直到運行程序正常。

七、實驗程序清單及注釋

codesegment

assumecs:code

org1200h

START:

movdx,43h;8253控制寄存器地址存入DX

moval.00110100b

outdx,al;對8253初始化,計數(shù)器0選擇16位方式2二進制計數(shù)

movdx,40h;8253計數(shù)器0地址

moval,0EEH

outdx,al

moval,2H

outdx,al;給計數(shù)器0裝入初值2EEH,先低字節(jié)后高字節(jié)

movdx,43h

moval,01110110b

outdx,al;8253初始化,計數(shù)器1選擇16位方式3二進制計數(shù)

movdx,41h;8253計數(shù)器1地址

moval0E8h

outdx,al

moval,3h

outdx,al:給計數(shù)器1裝入初值3E8H,先低字節(jié)后高字節(jié)

jmp$;跳到本地址,使程序在這里無限循環(huán)

codeends

endSTART

計算步驟及結(jié)果

由公式:f=—!—xNoxN1

f(XK0

計數(shù)器1的輸出頻率(L5S時):L=一!一x750x1000=1.5Hz

0.5MHz

計數(shù)器1的輸出頻率(1.0S時):f2=——x500x1000=1Hz

0.5MHz

觀察時,計時30s,觀察這段時間內(nèi)LED閃爍多少次,即可估算輸出頻率。

九、程序修改與調(diào)試

⑴初始程序輸出頻率是1.5Hz,即LED燈每1.5秒閃爍一次,若要使LED燈每Is閃爍一次,即

輸出為1Hz。則程序應該作以卜修改(十六進制時):

MOVAL,0EEHMOVAL,0F4H

修改計數(shù)器0初值,

OUTDX,ALOUTDX,AL

750到500

MOVAL,2H~MOVAL,IH

OUTDX,ALOUTDX,AL

(2)若計數(shù)方式為BCD碼,則程序應該作以下修改

MOVAL,00110100BMOVAL,(X)110101B

OUTDX,ALOUTDX,AL

MOVDX,40HMOVDX,40H

MOVAL,0EEHMOVAL,OOH

OUTDX,ALOUTDX,AL

MOVAL,2HMOVAL,5H

MOVAL,011101JOBMOVAL,0111011IB

OUTDX,ALOUTDX,AL

MOVDX,41HMOVDX,41H

MOVAL,0E8HMOVAL,OOH

OUTDX,ALOUTDX,AL

MOVAL,3HMOVAL,1OH

OUTDX,ALOUTDX,AL

十、問答題

1、8253初始化編程時需要遵循的原則是什么?

答:(1)在賦初值前先寫控制字

(2)賦初值時,初值的格式要與控制字中的信息相同

(3)若控制字中要求高低位都寫,先寫入低字節(jié)再寫入高字節(jié)

(4)按計數(shù)器012的順序進行初始化編程

2、簡述8253初始化編程的步驟

答:(1)寫控制字

(2)寫入初值

3、思考二進制計數(shù)或BCD碼計數(shù)時,裝入的初值最大值為多少?

答:0000H

一一、心得體會

8253內(nèi)部有三個計數(shù)器,分別稱為計數(shù)器0、計數(shù)器1和計數(shù)器2,他們的機構(gòu)完全相同。

每個計數(shù)器的輸入和輸出都決定于設(shè)置在控制寄存器中的控制字,互相之間工作完全獨立。每個

計數(shù)器通過三個引腳和外部聯(lián)系,一個為時鐘輸入端CLK,一個為門控信號輸入端GATE,另一

個為輸出端OUT。每個計數(shù)器內(nèi)部有一個8位的控制寄存器,還有一個16位的計數(shù)初值寄存器

CR、一個計數(shù)執(zhí)行部件CE和一個輸出鎖存器0L本次實驗,我重新學習了微機原理中關(guān)于8253

定時器/計數(shù)器的工作原理以及微機接口的原理與方法,加深了對理論知識的理解與認識,同時,

對計數(shù)器頻率的修改,讓我再次熟悉了8253輸出頻率的計算方法,進一步掌握了8253的編程方

法,也鞏固了工作方式2和3的工作原理與基本作用。

實驗四D/A轉(zhuǎn)換器實驗

一、實驗目的

了解D/A轉(zhuǎn)換的基本原理,掌握DAC0832芯片的性能、使用方法及對應的硬件電路。

二、實驗內(nèi)容

編寫程序,要求輸出鋸齒波、三角波及方波,分別用示波器觀察波形;如有能力,把三段程序編

在一起,循環(huán)輸出三種波形。

三、實驗區(qū)域電路連接圖

8

s

l

b

~

連線如下所示:

CS5-8OOOH;IOWR-IOWR:JX2-JXI7;AOUT-示波器。

四、編程指南

首先須由CS片選信號確定量DAC寄存器的端口地址,然后鎖存一個數(shù)據(jù)通過0832輸由,典型

程序如下:

MOVDX,DAPORT;0832口地址

MOVAL,DATA;輸出數(shù)據(jù)到0832

OUTDX,AL

產(chǎn)生波形信號的周期由延時常數(shù)確定。

五、程序框圖

方波鋸齒波

三角波

六、實驗步驟

按連線圖連接好,檢查無誤后打開實驗箱電源。

在PC端軟件開發(fā)平臺上輸入設(shè)計好的程序,編譯通過后下載到實驗箱。

運行程序后,用示波器測量0832左側(cè)AOUT插孔,應有方波或鋸齒波輸出。

如果運行不正常就要檢查連線,程序。排查錯誤,修改程序,直到運行程序正常。

七、實驗程序清單及注釋

(1)方波:

CODESEGMENT

ASSUMECS:CODE

ORGI200H

START:

MOVDX,8000H

MOVAL,00H

LI:

OlITDX,AL

CALLDELAY;延時

XORALQFFH;取反

JMPLI

DELAY:

MOVBX,0FFH

L5:

DECBX

JNZL5

RET

CODEENDS

ENDSTART

(2)鋸齒波:

CODESEGMENT

ASSUMECS:CODE

ORG1000H

START:

MOVDX,8000H

MOVAL,OOH

L2:

OUTDX,AL

NOP;空操作,相當于延時一個時鐘周期

INCAL

JMPL2

CODEENDS

ENDSTART

(3)三角波:

CODESEGMENT

ASSUMECS:CODE

ORGI000H

START:

MOVDX,8()0()H

MOVAL,00H

L3:

OUTDX,AL

INCAL

CMPAL,OFFH;比較AL和OFFH

JZL4

JMPL4;相等則跳L4

JMPL3

L4:

OUTDX,AL

DECAL

NOP

.17.13;AL為。則跳【3

CODEENDS

ENDSTART

八、實驗波形

(1)方波:

方波幅值:5.36V

方波周期:2.64ms

(2)鋸齒波

鋸齒波幅值:5.36V

鋸齒波周期:2.36ms

(3)三角波:

三角波幅值:5.36V

三角波周期:5.80ms

九、問答題

1、DAC產(chǎn)生波形的頻率如何調(diào)節(jié)?頻率上限的限制取決于哪些因素?

答:只要調(diào)節(jié)延時程序就可以實現(xiàn)改變頻率,如NOP指令。三角波和鋸齒波的頻率除了取決于程

序執(zhí)行的長度,及延時時間,還取決于CPU頻率和轉(zhuǎn)換頻率。頻率的上限取決于CPU頻率和轉(zhuǎn)

換頻率。

2、如果要求產(chǎn)生正弦波一般用什么方法實現(xiàn)?具體如何實施的(給個方案)。

答:先確定采樣頻率,把一個周期平分為N份,算出每一份對應的止弦值;每隔1/N周期,送算

出的N個數(shù)值;N越大正弦波形越明顯,但不能超過系統(tǒng)頻率。

十、心得體會

D/A轉(zhuǎn)換器基本上由4個部分組成,即權(quán)電阻網(wǎng)絡、運算放大器、基準電源和模擬開關(guān)。本次實

驗讓我了解到/D/A轉(zhuǎn)換的基本原理,初步掌握了DAC0832芯片的性能和使用方法以及對應的

硬件功能,通過對鋸齒波、三角波以及方波程序的編寫,對編程的整體把握有了進一步的提高,

實驗中對示波器的使用我又了解到了測量波形電壓值和周期的方法。三個不同程序的編寫讓我對

它了解又進了一步。

實驗五A/D轉(zhuǎn)換器實驗

一、實驗目的

了解模/數(shù)轉(zhuǎn)換基本原理,掌握ADC0809的使用方法。掌握A/D轉(zhuǎn)換與計算機的接口方法,了

解ADC0809芯片的轉(zhuǎn)換性能及編程,了解計算機如何進行數(shù)據(jù)采集。

二、實驗內(nèi)容

編寫程序,用查詢方式采樣輸入模擬電壓(模擬量電壓從實驗裝置的電位器接入),并將其轉(zhuǎn)換為

二進制數(shù)字量,用發(fā)光二極管顯示。

三、實驗區(qū)域電路連接圖

UI6

ADC0809

INTO261

IN-0Z-2

2-3

竿]imZIN-128-4

5

IM-22-

1£G

INT3?-LIN-32-7

2LStZ-8

[NT4—_IN-4

INT5*-^-IN-5

4RDI>A

INTB?—IN-6ADI>B

ADD-e

[NT74_IN-7

UH

16

ref(-)ENEELff

412gTAKI

JTref(+)CDXK

\KCU3J

6Q0

Q1

--ETIZZLQ2

Q3

74LS90

連線如下所不:

INOfAOUT1(可調(diào)電壓,VIN-+5V);IOWR-IOWR;IORD-IORD;

CLK-500K(單脈沖與H寸鐘單元);ADDA、ADDB、ADDC-GND;

CS4-8000H;JX6-JX17(數(shù)據(jù)總線)

四、編程指南

ADC0809的START端為A/D轉(zhuǎn)換啟動信號,ALE端為通道選擇地址的鎖存信號,實驗電路

中將其相連,以便同時鎖存通道地址并開始A/D采樣轉(zhuǎn)換,其輸入控制信號為CS和WR,故啟

動A/D轉(zhuǎn)換只須如下兩條指令:

MOVDX,ADPORT;ADC0809端口地址

OUTDX,AL;發(fā)CS和WR信號并送通道地址

A/D轉(zhuǎn)換芯片為逐次逼近型,精度為8位,每轉(zhuǎn)換一次約100微秒,所以程序若為查詢式,則在

啟動后要加適當延時。用延時方式等待A/D轉(zhuǎn)換結(jié)果,使用下述指令讀取A/D轉(zhuǎn)換結(jié)果。

MOVDX,ADPORT:ADC0809端口地址

INAL,DX

循環(huán)不斷采樣A/D轉(zhuǎn)換的結(jié)果,邊采樣邊顯示A/D轉(zhuǎn)換后的數(shù)字量。

五、程序框圖

開始

六、實驗步驟

按連線圖連接好,參考實驗一連接8255和LED讓ADC轉(zhuǎn)換結(jié)果在LED上顯示。電位器只需連

接中心抽頭,電源內(nèi)部已經(jīng)連接好了(電位器無需連接電源,以防短路)。檢查無誤后打開實驗箱

電源。

在PC端軟件開發(fā)平臺上輸入設(shè)計好的程序,編譯通過后下載到實驗箱。

運行程序后,觀察LED顯示,記錄代碼,計算獲得的代碼是否與輸入電壓符合。如果顯示的代碼

末位跳動厲害,影響觀察,可以插入延時(大概1秒左右)。

如果運行不正常就要檢查連線,程序。排查錯誤,修改程序,直到運行程序正常。

修改程序把延時獲取A/D數(shù)據(jù)的方式改成查詢EOC獲取A/D數(shù)據(jù)的方式,指定8255的PB3接

EOCo

七、實驗程序清單及注釋

<1)查詢方式

CODESEGMENT

ASSUMECS:CODE

ORG1000H

START:MOVDX,0FF2BH;8255控制口地址

MOVAL,10000000B

OUTDX,AL;8255初始化

LOP1:MOVDX,8000H;0809地址

MOVAL,0

OUTDX,AL;發(fā)?5和WR信號并送通道地址,開始轉(zhuǎn)換

MOVBL,255

DELAY:DECBL

JNZDELAY;延時

MOVDX,80(X)H

INAL,DX;讀取轉(zhuǎn)換后數(shù)據(jù)

NOTAL;取反,因為LED是共陽極,。才是亮,代表

1;同理,1代表0,故需取反。

MOVDX.0FF28H;8255的A口地址

OUTDX,AL;輸出到A口點亮LED

JMPLOP1

CODEENDS

ENDSTART

(2)EOC方式

CODESEGMENT

ASSUMECS:CODE

ORGI000H

START:MOVDX,0FF2RH

MOVAL,1000001OB;8255初始化

OUTDX,AL

LOP1:MOVDX,8000H

MOVAL,0

OUTDX,AL;啟動轉(zhuǎn)換

LOP2:MOVDX,0FF29H

INAUDX;讀取8255B口數(shù)據(jù)

TESTAL,0(X)010(X)B;監(jiān)測PB3是否為1

JZLOP2;不為1繼續(xù)監(jiān)測

MOVDX,8000H

INAL.DX;為1,說明轉(zhuǎn)換完成,讀取結(jié)果

NOTAL

MOVDX,0FF28H

OUTDX,AL

JMPLOP1

CODEENDS

ENDSTART

八、實驗數(shù)據(jù)

A:查詢方式:

(1)當萬用表讀數(shù)為0V時,二極管全滅,代碼為00000000

(2)當萬用表讀數(shù)為4.94V時,二極管全亮,代碼為11111111

(3)當萬用表讀數(shù)為2.47V時,L8亮(PA7),其余全滅,代碼為10000000

B:EOC查詢方式:

(1)當萬用表讀數(shù)為0V時,二極管全滅,代碼為00000000

(2)當萬用表讀數(shù)為4.94V時,二極管全亮,代碼為11111111

(3)當力用表讀數(shù)為2.47V時,L1-L7全亮,L8火(PA7),代碼為01111111

從實驗數(shù)據(jù)中可知,獲得的代碼與輸入的電壓相符,實驗結(jié)果和理論誤差相差很小。

九、問答題

1、0809獲取A/D轉(zhuǎn)換數(shù)據(jù)的方法有哪幾種?比較這些方法的優(yōu)劣。

答:(I)延時方式-不使用轉(zhuǎn)換結(jié)束信號

對一種A/D轉(zhuǎn)換器來說,轉(zhuǎn)換時間作為一項技術(shù)指標是已知的和固定

的。

(2)查詢方式-把EOC作為狀態(tài)信號

A/D轉(zhuǎn)換芯片有表明轉(zhuǎn)換完成的狀態(tài)信號,例如ADC0809的EOC端。因此,可以用查

詢方式,軟件測試EOC作為狀態(tài)信號,即可確知轉(zhuǎn)換是否完成,然后進行數(shù)據(jù)傳送。

(3)中斷方式-把EOC作為中斷請求信號

把表明轉(zhuǎn)換完成的信號狀態(tài)(EOC)作為中斷請求信號,以中斷方式進行數(shù)據(jù)傳送。

2、為獲取比較平穩(wěn)的數(shù)據(jù)顯示,采取數(shù)據(jù)濾波措施,你能想到采用什么濾波

措施比較合理?(列出算法,程序?qū)崿F(xiàn)的流程圖)

十、心得體會

本次實驗讓我加深了對模/數(shù)轉(zhuǎn)換的基本原理的理解,進一步掌握了ADC0809的使用方法與

A/D轉(zhuǎn)換與計算機的接口方法,深入地了解了ADC0809芯片的轉(zhuǎn)換性能及編程與計算機如何進

行數(shù)據(jù)采集。模數(shù)轉(zhuǎn)換器即A/D轉(zhuǎn)換器,或簡稱ADC,通常是指一個將模擬信號轉(zhuǎn)變?yōu)閿?shù)字信

號的電子元件。通常的模數(shù)轉(zhuǎn)換器是將一個輸入電壓信號轉(zhuǎn)換為一個輸出的數(shù)字信號。由于數(shù)字

信號本身不具有實際意義,僅僅表示一個相對大小。故任何一個模數(shù)轉(zhuǎn)換器都需要一個參考模擬

量作為轉(zhuǎn)換的標準,比較常見的參考標準為最大的可轉(zhuǎn)換信號大小。而輸出的數(shù)字量則表示輸入

信號相對于參考信號的大小。本次實驗計算所得的數(shù)據(jù)與萬用表讀出的數(shù)據(jù)相差甚微,證明儀器

以及讀書的誤差較小,精度較高。還有實驗中由于精度較高,需在程序中插入延時(大概1秒左

右)c

實驗六8259中斷控制(1)

一、實驗目的

1.學習8086/8088和CPU中斷系統(tǒng)的知識。

2.學習8259中斷控制器的使用。

二、實驗內(nèi)容

編寫程序,使8255的A口控制LED燈。CPU執(zhí)行主程序時四個綠燈亮。用“”作為8259的

IR3的輸入信號,向CPU請求中斷。CPU在中斷服務程序中熄滅綠燈,并使4個紅燈亮。中斷服

務程序結(jié)束,又返回主程序,再使綠燈亮。

三、實驗區(qū)域電路連接圖

82594.7K

D0DM0IROIRmO

D1IR鳧1

M憑

D2

D3D3關(guān)

D4D4櫻

D5D5器

D6D6第

D7D7

C

mVC

INTFRSP

INTr1A而'E

Ex<幾

1o<CS

1ORD<RDHC

WRWRNC

AOAONC

連線如下所示:

(1)8259的INT連8088的INTR(X15);

(2)8259的INTA連8088的INTA(X12);

(3)”"插孔和8259的3號中斷IR3插孔相連;(單脈沖與時鐘單元);

(4)8259的CS端接EXI(60H);

(5)連JX4-JX17。

(6)IOWR-IOWR;

(7)IORD-IORD;

(8)A0-A0;

(9)PA0…PA3-L2,L6,LIO,L14;PA4…PA7-L3,L7,L11,L15。

四、編程指南

8255初始化:A口方式0輸出。

8259初始化:邊沿觸發(fā)。

設(shè)置中斷矢量,將中斷服務程序入口地址送入中斷矢量表的相應單元,在本系統(tǒng)中,用戶可用中

斷矢量表區(qū)域為00010H-000FFHo

主程序控制8255PA0?PA3輸出點亮綠燈。

編制中斷服務程序,使PA4-PA7輸出點亮紅燈,關(guān)閉綠燈。

五、程序框圖

六、實驗步驟

按連線圖連接好,檢查無誤后打開實驗箱電源。

在PC端軟件開發(fā)平臺上輸入自己編制的程序,編譯通過后下載到實驗箱。

運行程序后,綠色LED燈點亮表面程序運行在主程序。按下AN開關(guān)按鈕,應當紅色LED燈亮,

綠色LED燈滅,表明在執(zhí)行中斷服務程序;過一會兒紅燈熄滅了,綠燈又亮了起來,表明中斷服

務程序已返回了主程序。

如果運行不正常就要檢查連線,程序。排查錯誤,修改程序,直到運行程序正常。

七、實驗程序清單及注釋

CODESEGMENT

ASSUMECS:CODE

INTPORT1EQU(XJ60H

INTPORT2EQU0061H

INTQ3EQUINTREEUP3

INTCNTDB?

ORG1200H

START:CLD

MOVDX,0FF2BH

MOVAL,80H;設(shè)置8255方式字:A口出1000(X)00

OUTDX,AL

CALLWRINTVER;WRITEINTRRUPT

MOVAL,13H;ICW1=0001001IB,邊沿觸發(fā)、單8259、需ICW4

MOVDX,INTPORT1

OUTDX,AL

MOVAL,08H;ICW2=OOOO1OOOB.IR3(ICW2低兩位自動跳變?yōu)?1,即0000I011B)進

入則中斷號=()BH

MOVDXJNTPORT2

OUTDX,AL

MOVAL,09H;ICW4=00001001B,非特殊全嵌套方式、緩沖/從、正常EOI

OUTDX,AL

MOVAL,0F7H;OCW1=1111011IB

OUTDX,AL

MOVINTCNT.01H;延時

STI

WATING:MOVDXQFF28H;主程序綠燈亮(低四位為0則綠燈亮,高四位為I故紅燈滅)

MOVAL.0F0H

OUTDX,AL

JMPWATING

WRINTVER:MOVAX,OH

MOVES,AX

MOVDL002CH;中斷向量地址2cH=0BH*4

LEAAXJNTQ3

STOSW;送偏移地址

MOVAX,0000h

STOSW;送段地址

RET

INTREEIIP3rCLI

PUSHAX中斷服務子程序開始

PUSHDX

Mp[DX,0FF28H;中斷服務子程序執(zhí)行紅燈亮

MOVAL,OFH;低四位為1則綠燈滅,高四位為。故紅燈亮

OUTDX,AL

MOVBL,0FFH

DELAY:MOVAX.OFFFH

DELAY1:DECAX

JNZDELAY1

DECBL

JNZDELAY

INTRE2:MOVAL,20H;OCW2=00100000B非特殊EOI命令,結(jié)束命令,用于完全嵌套方式

的中斷結(jié)束

MOVDXJNTPORTI

OUTDX,AL

POPDX

POPAX

STI;開系統(tǒng)中斷

IRET

CODEENDS

ENDSTART

實驗七8259中斷控制(2)

一、實驗目的

1.學習8086/8088CPU中斷系統(tǒng)的知識。

2.學習8259中斷控制器的使用。

二、實驗內(nèi)容

編寫程序,使8255的A口控制LED燈。CPU執(zhí)行主程序時四個綠燈亮。用“”作為8259的

IR3的輸入信號,向CPU請求中斷。CPU在中斷服務程序中每中斷一次,使4個紅色LED燈中

每次只亮一個燈,并隨每一次中斷逐次移動一個燈的位置,中斷服務程序結(jié)束,又返回主程序,

再使綠燈亮。

三:、實驗區(qū)域電路連接圖

IRmO

連線如下所示:

(1)8259的INT連8088的INTR(X15);

(2)8259的INTA連8

溫馨提示

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

最新文檔

評論

0/150

提交評論