收藏 分享(赏)

实验二 8255及综合new.doc

上传人:dzzj200808 文档编号:2306155 上传时间:2018-09-10 格式:DOC 页数:7 大小:197.50KB
下载 相关 举报
实验二 8255及综合new.doc_第1页
第1页 / 共7页
实验二 8255及综合new.doc_第2页
第2页 / 共7页
实验二 8255及综合new.doc_第3页
第3页 / 共7页
实验二 8255及综合new.doc_第4页
第4页 / 共7页
实验二 8255及综合new.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、实验二 8255 及综合一、实验目的掌握 8255 方式 0 的工作原理及使用方法。1、实验原理实验电路如图,8255C 口接逻辑电平开关 K0K7,A 口接 LED 显示电路 L0L7。D034 D133D232 D331D430 D529D628 D727PA0 4PA1 3PA2 2PA3 1PA4 40PA5 39PA6 38PA7 37PB0 18PB1 19PB2 20PB3 21PB4 22PB5 23PB6 24PB7 25PC0 14PC1 15PC2 16PC3 17PC4 13PC5 12PC6 11PC7 10RD5 WR36A09 A18RESET35 CS6U1 8

2、255D0D1D2D3D4D5D6D7/RD/WRA0A1RSTPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7R14.7KVCCD0D1D2D3D4D5D6D7JD1 IORIOWA0A1RST(288H)Y1L0L1L2L3L4L5L6L7K0K1K2K3K4K5K6K78255CS2、实验内容11) 编程从 8255C 口输入数据,再从 A 口输出;2) 编程从 8255A 口输入数据,再从 B 口输出;3) 编程从 8255B 口输入数据,再从 A 口输出。2. 将 8255 与 8259

3、结合起来。 当程序响应 IR1 中断时候,发光二极管的高四位灭(或亮),同时屏幕显示“IR1 ok and exit”,当程序响应 IR3 中断时候,发光二极管的低四位灭(或亮) ,同时屏幕显示“IR13ok and exit”四、实验流程图五、实验程序1、1)C 口入,A 口出ioport equ 0ff00h-0280hio8255a equ ioport+288h ;Aio8255b equ ioport+289h ;Bio8255c equ ioport+28ah ;Cio8255d equ ioport+28bh ;控制code segmentassume cs:codestart:

4、 mov dx,io8255d ;设 8255 为 c 口输入,a 输出mov al,8bhout dx,alinout: mov dx,io8255c ;从 C 输入一数据in al,dxmov dx,io8255a ;从 A 输出刚才自 Cout dx,al ;所输入的数据mov dl,0ffh ;判断是否有按键mov ah,06hint 21hjz inout ;若无,则继续自 b 输入,C 输出mov ah,4ch ;否则返回int 21hcode endsend start2)A 口入,B 口出ioport equ 0ff00h-0280hio8255a equ ioport+288

5、h ;Aio8255b equ ioport+289h ;Bio8255c equ ioport+28ah ;Cio8255d equ ioport+28bh ;控制code segmentassume cs:codestart: mov dx,io8255d ;设 8255 为 a 口输入,b 输出mov al,90hout dx,alinout: mov dx,io8255a ;从 a 输入一数据in al,dxmov dx,io8255b ;从 b 输出刚才自 aout dx,al ;所输入的数据mov dl,0ffh ;判断是否有按键mov ah,06hint 21hjz inout

6、;若无,则继续自 b 输入,C 输出mov ah,4ch ;否则返回int 21hcode endsend start3)B 入,C 出ioport equ 0ff00h-0280hio8255a equ ioport+288h ;Aio8255b equ ioport+289h ;Bio8255c equ ioport+28ah ;Cio8255d equ ioport+28bh ;控制code segmentassume cs:codestart: mov dx,io8255d ;设 8255 为 a 口输入,b 输出mov al,89hout dx,alinout: mov dx,io8

7、255b ;从 b 输入一数据in al,dxmov dx,io8255bc ;从 c 输出刚才自 bout dx,al ;所输入的数据mov dl,0ffh ;判断是否有按键mov ah,06hint 21hjz inout ;若无,则继续自 b 输入,C 输出mov ah,4ch ;否则返回int 21hcode endsend start2、8255 与 8259 的结合程序data segmentmsg1 db 0dh,0ah,DVCC pci card Interrupt,0dh,0ah,$msg2 db 0dh,0ah,Press any key to exit!,0dh,0ah,

8、$msg3 db 0dh,0ah,IR1 ok and exit!,0dh,0ah,$msg4 db 0dh,0ah,IR3 ok and exit!,0dh,0ah,$msg5 db 0dh,0ah,ok!,0dh,0ah,$data endsstacks segmentdb 100 dup (?)stacks endsioport equ 0a400h-0280hMY8259_ICW1 EQU ioport +280H ;实验系统中 8259 的 ICW1 端口地址MY8259_ICW2 EQU ioport +281H ;实验系统中 8259 的 ICW2 端口地址MY8259_ICW3

9、 EQU ioport +281H ;实验系统中 8259 的 ICW3 端口地址MY8259_ICW4 EQU ioport +281H ;实验系统中 8259 的 ICW4 端口地址MY8259_OCW1 EQU ioport +281H ;实验系统中 8259 的 OCW1 端口地址MY8259_OCW2 EQU ioport +280H ;实验系统中 8259 的 OCW2 端口地址MY8259_OCW3 EQU ioport +280H ;实验系统中 8259 的 OCW3 端口地址io8255a EQU ioport+288h ;8255 端口 A 地址io8255b EQU io

10、port+289h ;8255 端口 B 地址io8255c EQU ioport+28ah ;8255 端口 C 地址io8255 EQU ioport+28bh ;8255 控制端口地址code segmentassume cs:code,ds:data,ss:stacks,es:datastart:mov ax,datamov ds,axmov es,axmov ax,stacksmov ss,axmov ax,datamov ds,axmov dx,offset msg1mov ah,09hint 21hstart1: MOV DX,MY8259_ICW1 ;初始化实验系统中 8259

11、 的 ICW1MOV AL,13H ;边沿触发、单片 8259、需要 ICW4OUT DX,ALMOV DX,MY8259_ICW2 ;初始化实验系统中 8259 的 ICW2MOV AL,08HOUT DX,ALMOV DX,MY8259_ICW4 ;初始化实验系统中 8259 的 ICW4 ;ICW4 为什么设置为 00001001B,缓冲方式,从片?MOV AL,09H ;非自动结束 EOIOUT DX,ALMOV DX,MY8259_OCW1 ;初始化实验系统中 8259 的 OCW1MOV AL,0F5H ;打开 IR1 和 IR3 的屏蔽位OUT DX,ALstart2: mov

12、dx,io8255mov al,80h ;初始化 8255 A 端口方式 0 输出 out dx,almov dx,io8255a mov al,0ffh ;首先初始化使 8 个 LED 灯全亮 out dx,alQUERY: MOV DX,MY8259_OCW3 ;向 8259 的 OCW3 发送查询命令MOV AL,0CHOUT DX,ALNOPNOP ;NOP?NOPNOPNOPMOV DX,MY8259_OCW3IN AL,DX ;读出查询字TEST AL,80H ;判断中断是否已响应JZ QUERY ;没有响应则继续查询and al,07h CMP AL,01HJE IR1ISR ;

13、若为 IR1 请求,跳到 IR1 处理程序CMP AL,03HJE IR3ISR ;若为 IR3 请求,跳到 IR3 处理程序JMP EOIQUERY1: mov dl,0ffh ;判断是否有按键 ;QUERY1无法执行,去掉 EOI 的最后一句 jmp start1 放在 EOI 之后是否可以?mov ah,06h ;AH=06 的中断用于判断是否有按键,如何使用?程序中只需放置一处即可?int 21hjz start1 ;若无,则继续mov ah,4ch ;否则返回int 21hIR1ISR: mov dx,io8255 ;IR1 处理,使 LED 灯的低四位灭mov al,90hout

14、dx,almov dx,io8255ain al,dxmov bl,aland bl,0f0hmov dx,io8255mov al,80hout dx,almov dx,io8522amov al,blout dx,alJMP EOIIR3ISR: mov dx,io8255 ;IR1 处理,使 LED 灯的高四位灭mov al,90hout dx,almov dx,io8255ain al,dxmov bl,aland bl,0fhmov dx,io8255mov al,80hout dx,almov dx,io8522amov al,blout dx,alJMP EOIEOI: MOV DX,MY8259_OCW2 ;向实验系统中 8259 发送中断结束命令MOV AL,20HOUT DX,AL nopnopnopnopnopjmp start1code endsend start6、实验结果1、开始灯全亮,当按下 L0 时,L0 灯灭;按下 K1 时,L1 灯灭2、当按动 SP1 时,二极管前四个灯亮,屏幕显示“IR1 ok and exit”,当按动SP2 时,二极管后四个灯亮,屏幕显示 “IR3 ok and exit”。七、实验中遇到的问题及解决方法由于第一次实验的基础对实验有了更多的认识!使得第二次的实验比较顺利

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报