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

下載本文檔

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

文檔簡介

實驗一開關狀態顯示

【實驗目的】

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

技能。

【實驗內容】

利用74LS244作為輸入口,讀取開關狀態,根據給定表格中開關狀態對應的輸出關系,通過

74LS273驅動發光二極管顯示出來。

【實驗區域電路連接圖】

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;然后用數據排線

連接JX7-JX17(BUS2)o

【程序框圖】

【編程】

CODESEGMENT

ASSUMECS:CODE

ORG1200H

START:

MOVDX,8000H

INAL,DX

TESTAL,01H

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

TESTAL,02H

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

MOVDX,9000H

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

OUTDX,AL

JMPSTART

Yl:TESTAL,02H

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

MOVDX,9000H

MOVAL,0AAH/點亮奇數號燈/

OUTDX,AL

JMPSTART

Y2:MOVDX.9000H

MOVAL,55H/點亮偶數號燈/

OUTDX,AL

JMPSTART

Y3:MOVDXSOOOH

MOVAL,00H/所有燈全滅/

OUTDX,AL

JMPSTART

CODEENDS

ENDSTART

【問答題】

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

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

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

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

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

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

據。

【心得體會】

第?次的實踐課程做的是開關狀態顯示,通過本次試驗的操作,我了解了dice8O86實驗系統自帶

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

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

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

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

實驗二模擬交通燈實驗

【實驗目的】

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

2.進?步學習編制數據輸出程序的設計方法。

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

【實驗內容】

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

【實驗區域電路連接圖】

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

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

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

8255數據、控制線內部已線連好。

【程序框圖】

【編程】

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:;主循環標號

movdx,portc

moval,Oa5h

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

以輸出0A5H

calldelay3;紅綠燈轉換之間的長延時

movdx,portc

moval,0f5h

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

movex,8;黃燈閃爍次數計數賦初值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;閃爍次數計數減1

jnzLl;閃爍次數計數不為0則跳回LI繼續閃爍

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的哪個端口能實現位操作控制(按位置位/復位)?執行控制字寫入操作的端口是哪個?

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

端口。

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

解:FFFOH、FFF2H、FFF4H、FFF6H。

【心得體會】

這次的課程設計讓我把書本上的理論知識應用在實踐中,實現了理論和實踐相結合,從中更懂得

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

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

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

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

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

實驗三8253定時器/計數器實驗

一、實驗目的

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

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

二、實驗內容

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

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

到該LED在不停地閃爍。

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

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

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

的閃亮頻率仍為1Hz。

二、實驗區域電路連接圖

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是一種可編程定時/計數器,有三個十六位計數器,其計數頻率范圍為0-2MHZ,用+5V單電

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

⑴方式0:計數結束中斷⑷方式3:方波頻率發生器

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

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

R253方式控制字

D7DeDSDID3D2DIDO

SC1SCORLiRLoM2MlMoBCD

00:選擇計數器000:鎖定計數器000:選擇方式0計數碼

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

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

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

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

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

8253初始化編程

1、8253初始化編程

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

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

遵守兩條原則:

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

②在設置計數器初始值時,要符合控制字的規定,即只寫低位字節,還是只寫高位字節,還是高、

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

2、8253的編程命令

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

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

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

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

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

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

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

五、程序框圖

開始

實驗步驟

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

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

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

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

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

七、實驗程序清單及注釋

codesegment

assumecs:code

org1200h

START:

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

moval.00110100b

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

movdx,40h;8253計數器0地址

moval,0EEH

outdx,al

moval,2H

outdx,al;給計數器0裝入初值2EEH,先低字節后高字節

movdx,43h

moval,01110110b

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

movdx,41h;8253計數器1地址

moval0E8h

outdx,al

moval,3h

outdx,al:給計數器1裝入初值3E8H,先低字節后高字節

jmp$;跳到本地址,使程序在這里無限循環

codeends

endSTART

計算步驟及結果

由公式:f=—!—xNoxN1

f(XK0

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

0.5MHz

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

0.5MHz

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

九、程序修改與調試

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

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

MOVAL,0EEHMOVAL,0F4H

修改計數器0初值,

OUTDX,ALOUTDX,AL

750到500

MOVAL,2H~MOVAL,IH

OUTDX,ALOUTDX,AL

(2)若計數方式為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)若控制字中要求高低位都寫,先寫入低字節再寫入高字節

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

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

答:(1)寫控制字

(2)寫入初值

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

答:0000H

一一、心得體會

8253內部有三個計數器,分別稱為計數器0、計數器1和計數器2,他們的機構完全相同。

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

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

個為輸出端OUT。每個計數器內部有一個8位的控制寄存器,還有一個16位的計數初值寄存器

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

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

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

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

實驗四D/A轉換器實驗

一、實驗目的

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

二、實驗內容

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

在一起,循環輸出三種波形。

三、實驗區域電路連接圖

8

s

l

b

~

連線如下所示:

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

四、編程指南

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

程序如下:

MOVDX,DAPORT;0832口地址

MOVAL,DATA;輸出數據到0832

OUTDX,AL

產生波形信號的周期由延時常數確定。

五、程序框圖

方波鋸齒波

三角波

六、實驗步驟

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

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

運行程序后,用示波器測量0832左側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產生波形的頻率如何調節?頻率上限的限制取決于哪些因素?

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

序執行的長度,及延時時間,還取決于CPU頻率和轉換頻率。頻率的上限取決于CPU頻率和轉

換頻率。

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

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

出的N個數值;N越大正弦波形越明顯,但不能超過系統頻率。

十、心得體會

D/A轉換器基本上由4個部分組成,即權電阻網絡、運算放大器、基準電源和模擬開關。本次實

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

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

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

它了解又進了一步。

實驗五A/D轉換器實驗

一、實驗目的

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

解ADC0809芯片的轉換性能及編程,了解計算機如何進行數據采集。

二、實驗內容

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

二進制數字量,用發光二極管顯示。

三、實驗區域電路連接圖

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(可調電壓,VIN-+5V);IOWR-IOWR;IORD-IORD;

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

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

四、編程指南

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

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

動A/D轉換只須如下兩條指令:

MOVDX,ADPORT;ADC0809端口地址

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

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

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

MOVDX,ADPORT:ADC0809端口地址

INAL,DX

循環不斷采樣A/D轉換的結果,邊采樣邊顯示A/D轉換后的數字量。

五、程序框圖

開始

六、實驗步驟

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

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

電源。

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

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

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

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

修改程序把延時獲取A/D數據的方式改成查詢EOC獲取A/D數據的方式,指定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;發?5和WR信號并送通道地址,開始轉換

MOVBL,255

DELAY:DECBL

JNZDELAY;延時

MOVDX,80(X)H

INAL,DX;讀取轉換后數據

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;啟動轉換

LOP2:MOVDX,0FF29H

INAUDX;讀取8255B口數據

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

JZLOP2;不為1繼續監測

MOVDX,8000H

INAL.DX;為1,說明轉換完成,讀取結果

NOTAL

MOVDX,0FF28H

OUTDX,AL

JMPLOP1

CODEENDS

ENDSTART

八、實驗數據

A:查詢方式:

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

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

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

B:EOC查詢方式:

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

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

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

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

九、問答題

1、0809獲取A/D轉換數據的方法有哪幾種?比較這些方法的優劣。

答:(I)延時方式-不使用轉換結束信號

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

的。

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

A/D轉換芯片有表明轉換完成的狀態信號,例如ADC0809的EOC端。因此,可以用查

詢方式,軟件測試EOC作為狀態信號,即可確知轉換是否完成,然后進行數據傳送。

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

把表明轉換完成的信號狀態(EOC)作為中斷請求信號,以中斷方式進行數據傳送。

2、為獲取比較平穩的數據顯示,采取數據濾波措施,你能想到采用什么濾波

措施比較合理?(列出算法,程序實現的流程圖)

十、心得體會

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

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

行數據采集。模數轉換器即A/D轉換器,或簡稱ADC,通常是指一個將模擬信號轉變為數字信

號的電子元件。通常的模數轉換器是將一個輸入電壓信號轉換為一個輸出的數字信號。由于數字

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

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

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

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

右)c

實驗六8259中斷控制(1)

一、實驗目的

1.學習8086/8088和CPU中斷系統的知識。

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

二、實驗內容

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

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

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

三、實驗區域電路連接圖

82594.7K

D0DM0IROIRmO

D1IR鳧1

M憑

D2

D3D3關

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初始化:邊沿觸發。

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

斷矢量表區域為00010H-000FFHo

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

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

五、程序框圖

六、實驗步驟

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

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

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

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

務程序已返回了主程序。

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

七、實驗程序清單及注釋

CODESEGMENT

ASSUMECS:CODE

INTPORT1EQU(XJ60H

INTPORT2EQU0061H

INTQ3EQUINTREEUP3

INTCNTDB?

ORG1200H

START:CLD

MOVDX,0FF2BH

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

OUTDX,AL

CALLWRINTVER;WRITEINTRRUPT

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

MOVDX,INTPORT1

OUTDX,AL

MOVAL,08H;ICW2=OOOO1OOOB.IR3(ICW2低兩位自動跳變為11,即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;中斷服務子程序執行紅燈亮

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

OUTDX,AL

MOVBL,0FFH

DELAY:MOVAX.OFFFH

DELAY1:DECAX

JNZDELAY1

DECBL

JNZDELAY

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

的中斷結束

MOVDXJNTPORTI

OUTDX,AL

POPDX

POPAX

STI;開系統中斷

IRET

CODEENDS

ENDSTART

實驗七8259中斷控制(2)

一、實驗目的

1.學習8086/8088CPU中斷系統的知識。

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

二、實驗內容

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

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

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

再使綠燈亮。

三:、實驗區域電路連接圖

IRmO

連線如下所示:

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

(2)8259的INTA連8

溫馨提示

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

評論

0/150

提交評論