1 可程式設計並行介面實驗

2021-10-24 19:32:02 字數 4542 閱讀 9723

實驗目的與任務

1、理解可程式設計並行介面8255的基本工作原理;

2、熟悉8255的初始化程式設計方法;

3、掌握8255方式0的工作原理及使用。

基本原理

8255a埠a通過20芯偏平線連線j5、j6已與8個led燈連線。8255a埠a工作在方式0,輸出。通過埠a控制led發光。

實驗內容

編寫程式,要求利用8255的a口控制8個發光二極體的發光,並產生一定的藝術效果,驗證實驗的正確性。

a口 300h

b口 301h

c口 302h

控制暫存器埠 303h

控制字為:10000000b

線路連線:模組電源跳jp8。20線扁平線j5,j6連線。

程式詳單:

code segment

assume cs:code

start:

mov dx,

303h;初始化

mov al,

80h;方式0

out dx,al

p0:

mov cx,

1p1:

mov dx,

300h;a口

mov al,

00000001b

out dx,al

inc cx

cmp cx,

20000

;其實就是延時,不然一閃而過

jnz p1

mov cx,

1p2:

mov dx,

300h

mov al,

00000010b

out dx,al

inc cx

cmp cx,

20000

jnz p2

mov cx,

1p3:

mov dx,

300h

mov al,

00000100b

out dx,al

inc cx

cmp cx,

20000

jnz p3

mov cx,

1p4:

mov dx,

300h

mov al,

00001000b

out dx,al

inc cx

cmp cx,

20000

jnz p4

mov cx,

1p5:

mov dx,

300h

mov al,

00010000b

out dx,al

inc cx

cmp cx,

20000

jnz p5

mov cx,

1p6:

mov dx,

300h

mov al,

00100000b

out dx,al

inc cx

cmp cx,

20000

jnz p6

mov cx,

1p7:

mov dx,

300h

mov al,

01000000b

out dx,al

inc cx

cmp cx,

20000

jnz p7

mov cx,

1p8:

mov dx,

300h

mov al,

10000000b

out dx,al

inc cx

cmp cx,

20000

jnz p8

jmp p0

mov ah,

4chint 21h

code ends

end start

咋執行呢?

masm.exe和link.exe必不可少!

來吧!一大波資源

windows下快捷鍵win+r輸入cmd進入你寫的檔名.asm目錄下:

(忘了win10要dosbox)

然後masm 檔名.asm

然後enter

然後link 檔名.obj

生成檔名.exe則完成了

運**況:

差點忘了基礎不好的同學請再記一遍:

資料從低位到高位是從右往左。

10000000

高----

-低

但位址是左低右高

例如:

1000  低

1001

1002

1003 高

對應資料:12345678

78	低

5634

12 高

如果這樣存進去就是小端模式啦。

1000  低	78  低

1001

561002

341003 高 12 高

小端模式:低低高高低位址對應低位元組

高位址對應高位元組

則相應的大端模式:低高高低

低位址對應高位元組

高位址對應低位元組

再來虛擬**機上來個不同的:(其實啥也沒變,就由8位變成了24位,0就滅,1就亮

pa口位址

s db "twenty four leds flicker crosswise. press any key to exit ..."

,0dh,

0ah,

"$";程式功能提示

data ends

code segment

assume cs:code,ds:data

go: mov ax,data

mov ds,ax

mov dx,offset s ;顯示提示

mov ah,

9 int 21h

mov dx,porta+

3;控制字埠初始化

mov al,

80h out dx,al ; 三埠均初始化為方式0輸出

mov bx,

5555h ;

5h轉換為0101b

mov cl,

55h

l0: mov ah,

0bh int 21h ; 有無按鍵,按了就退出

cmp al,

0ffh

jz exit

mov dx,porta

mov al,bl

out dx,al ; 輸出01010101b到a口

inc dx

mov al,bh

out dx,al ; 輸出01010101b到b口

inc dx

mov al,cl

out dx,al ; 輸出01010101b到c口

call delay05 ; 延時

xor bx,

0ffffh ; 異或 各位取反

xor cl,

0ffh

jmp l0

exit: mov ah,

4ch int 21h

delay05 proc near ; 迴圈延時子程式

push cx

push bx

mov cx,

300h

d1: mov bx,

1200

d2: dec bx

jnz d2

loop d1

pop bx

pop cx

retdelay05 endp

code ends

end go

一詞:redeem補救,彌補

可程式設計並行介面8255

8255是通用的並行介面晶元,通過程式設計實現多種工作方式,滿足不同應用需求。8255a是intel公司生產的可程式設計並行i o介面晶元,有3個8位並行i o口。具有3個通道3種工作方式的可程式設計並行介面晶元 40引腳 其各口功能可由軟體選擇,使用靈活,通用性強。8255a可作為微控制器與多種外...

8 2 可程式設計並行介面晶元8255A

1 理解8255引腳及內部結構。2 掌握8255的埠位址。3 掌握8255的工作方式與控制字。4 能進行8255的程式設計。1 8255a採用40腳雙列直插封裝 2 單一 5v電源 3 8位並行輸入輸出介面晶元 4 全部輸入輸出與ttl電平相容 5 用8255a連線外部裝置時,通常不需要再附加其他電...

可程式設計串列埠介面晶元8251A

在usb裝置還沒有出現之前,如果微型計算機與外部裝置之間採用序列方式通訊,則需要通過序列介面連線微型計算機與外部裝置。完成資料串 並轉換。8251a就是一種常用的序列介面晶元。intel8251是一種可程式設計的通用同步 非同步接收傳送器。8251a的內部結構包括傳送器 接收器 資料匯流排緩衝器 讀...