6-6 8255並行介面(LED)
一、實驗目的
(1) 學習pc擴充套件i/o介面的方法。
(2)學習編制資料輸出程式的設計方法。
二、實驗要求
以8255 c 口為輸出口,控制8個單色LED。
三、實驗說明
工作方式0;
pa、pb、pc為獨立輸入輸出的並行口;
暫存器對應的埠地址:
pa:288h;
pb:289h;
pc:28ah;
控制口:28bh。
cs 連線288h~28fh。 適當調節LED亮滅的延遲時間。
四、彙編程式
data segment
ioport equ 0ff00h-0280hio8255a equ ioport+288hio8255b equ ioport+289hio8255c equ ioport+28ahio8255d equ ioport+28bhmess1 db '左迴圈按1',0dh,0ah,'$' db '右迴圈按2',0dh,0ah,'$' db '間隔閃爍按3',0dh,0ah,'$' db '退出按4',0dh,0ah,'$'mess2 db '按無效鍵繼續選擇',0dh,0ah,'$'mess3 db '按任意鍵退回主選單',0dh,0ah,'$'data endsstack segmentsta db 20 dup(?)top equ length stastack endscode segmentassume cs:code,ds:data,ss:stack,es:datastart: mov ax,data mov ds,ax;初始化 mov ax,stack mov ss,ax mov sp,top mov sp,ax mov dx,io8255d mov al,80h out dx,albg: lea dx,mess1 mov ah,09h int 21h mov ah,08h;等待有鍵按下 int 21h push ax lea dx,mess3 mov ah,09h int 21h pop ax mov ah,al cmp al,'1' jz zxh;進入各種迴圈 mov al,ah cmp al,'2' jz yxh mov al,ah cmp al,'3' jz jgs mov al,ah cmp al,'4' jnz wx jmp qitwx: lea dx,mess2;無效按鍵提示資訊 mov ah,09h int 21h jmp bgzxh: mov dx,io8255c;左迴圈 mov al,0fehbb: out dx,al mov cx,01hl1: loop l1 rol al,1 push ax push dx mov dl,0ffh mov ah,06h int 21h jnz bg pop dx pop ax jmp bbyxh: mov dx,io8255c mov al,80hee: out dx,al mov cx,0fffhl2: loop l2 ror al,1 push ax push dx mov dl,0ffh mov ah,06h int 21h jnz bg pop dx pop ax jmp eejgs: mov dx,io8255c mov al,55hhh: out dx,al mov cx,0ffffhl3: loop l3 not al push ax push dx mov dl,0ffh mov ah,06h int 21h jnz bg1 pop dx pop ax jmp hhbg1: jmp bgqit: mov ax,4c00h int 21hcode endsend start說明:左迴圈 改為: mov cx,01h油迴圈 改為: mov al,80h