實驗目的與任務
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的內部結構包括傳送器 接收器 資料匯流排緩衝器 讀...