微机原理实验8255.doc
- 文档编号:250639
- 上传时间:2022-10-07
- 格式:DOC
- 页数:10
- 大小:1,011KB
微机原理实验8255.doc
《微机原理实验8255.doc》由会员分享,可在线阅读,更多相关《微机原理实验8255.doc(10页珍藏版)》请在冰豆网上搜索。
8255并行接口应用实验报告
课程名称微机原理实验题目8255并行接口实验
实验日期2011-12-4任课教师/指导教师:
张俊霞
【实验目的:
】1.掌握8255的工作方式和应用编程。
2.掌握8255的典型应用电路接法。
【实验设备及器件:
】PC机一台,TD—PIT实验仪器一套。
【实验内容及步骤:
】
1.基本输入输出实验。
编写程序,使8255的A口为输出,B口为输入,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就改变。
2.流水线指示灯的显示实验。
编写程序,使8255的A口和B口均为输出,实现16位数据灯的相对循环显示。
3.键盘及显示实验。
按照实验线路编写实验程序,使按下不同的按键后数码管显示相应的数字。
【实验原理图及程序流程图】
1、基本输入/输出实验:
本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。
用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入/输出功能。
8255基本输入/输出实验参考接线图如图所示。
流程图:
8255B口方式0输出,A口方式0输入
AL←8255A口
8255B口←AL
有按键?
结束
Y
N
程序代码及注释:
CS0EQU3000H;片选CS0对应的端口始地址
MY8255_AEQUCS0+00H;8255的A口地址
MY8255_BEQUCS0+01H;8255的B口地址
MY8255_CEQUCS0+02H;8255的C口地址
MY8255_MODEEQUCS0+03H;8255的控制寄存器地址
STACK1SEGMENTSTACK
DW256DUP(?
)
STACK1ENDS
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,MY8255_MODE;初始化8255工作方式
MOVAL,82H;工作方式0,A口输出,B口输入
OUTDX,AL
LOOP1:
MOVDX,MY8255_B;读B口
INAL,DX
MOVDX,MY8255_A;写A口
OUTDX,AL
MOVAH,1;判断是否有按键按下
INT16H
JZLOOP1;无按键则跳回继续循环,有则退出
QUIT:
MOVAX,4C00H;结束程序退出
INT21H
CODEENDS
ENDSTART
实验步骤
(1).设计实验线路图,将PCI总线扩展卡上总线与仿真ISA总线进行连接。
(2).编写程序。
(3).打开实验箱电源,运行程序,拨动开关组,观察数据灯的显示。
实验现象:
拨动开关,每个开关对应的数据灯随着开关的开与关而亮灭。
2、流水线指示灯显示实验:
首先分别将A口和B口写入7FH和FEH,然后分别将该数右移和左移一位,在送到端口上,这样循环下去,从而实现流水灯的显示。
8255流水灯显示实验参考接线图如图所示。
流程图:
8255B口方式0输出
AL←7FH
循环左移AL
8255B口←AL
延时
有按键?
结束
Y
N
程序代码及注释:
CS0EQU3000H;片选CS0对应的端口始地址
MY8255_AEQUCS0+00H;8255的A口地址
MY8255_BEQUCS0+01H;8255的B口地址
MY8255_CEQUCS0+02H;8255的C口地址
MY8255_MODEEQUCS0+03H;8255的控制寄存器地址
STACK1SEGMENTSTACK
DW256DUP(?
)
STACK1ENDS
DATASEGMENT
LADB?
;定义数据变量
LBDB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,MY8255_MODE;定义8255工作方式
MOVAL,80H;工作方式0,A口和B口为输出
OUTDX,AL
MOVDX,MY8255_A;写A口发出的起始数据
MOVAL,80H
OUTDX,AL
MOVLA,AL
MOVDX,MY8255_B;写B口发出的起始数据
MOVAL,01H
OUTDX,AL
MOVLB,AL
LOOP1:
CALLDALLY
MOVAL,LA;将A口起始数据右移再写入A口
RORAL,1
MOVLA,AL
MOVDX,MY8255_A
OUTDX,AL
MOVAL,LB;将B口起始数据左移再写入B口
ROLAL,1
MOVLB,AL
MOVDX,MY8255_B
OUTDX,AL
MOVAH,1;判断是否有按键按下
INT16H
JZLOOP1;无按键则跳回继续循环,有则退出
QUIT:
MOVAX,4C00H;结束程序退出
INT21H
DALLYPROCNEAR;软件延时子程序
PUSHCX
PUSHAX
MOVCX,0FFFH
D1:
MOVAX,0FFFFH
D2:
DECAX
JNZD2
LOOPD1
POPAX
POPCX
RET
DALLYENDP
CODEENDS
ENDSTART
实验步骤
(1).设计实验线路图,将PCI总线扩展卡上总线与仿真ISA总线进行连接。
(2).编写程序。
(3).打开实验箱电源,运行程序,观察数据灯的显示。
实验现象:
数据灯从右向左依次亮成流线型,并始终保持在同一时间只有一个灯亮着。
3.键盘及显示实验
实验要求将8255单元与LED-KEYBOARD单元连接,编写程序,扫描键盘输入,并将扫描结果送数码块显示。
8255键盘及显示实验参考接线图如图3-6所示。
图3-68255键盘及显示实验参考接线图
程序代码及注释:
CS0EQU3000H;片选CS0对应的端口始地址
MY8255_AEQUCS0+00H;8255的A口地址
MY8255_BEQUCS0+01H;8255的B口地址
MY8255_CEQUCS0+02H;8255的C口地址
MY8255_MODEEQUCS0+03H;8255的控制寄存器地址
STACK1SEGMENTSTACK
DW256DUP(?
)
STACK1ENDS
DATASEGMENT
DTABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
DATAENDS;键值表,0~F对应的7段数码管的段位值
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVSI,3000H;建立缓冲区,存放要显示的键值
MOVAL,00H;先初始化键值为0
MOV[SI],AL
MOV[SI+1],AL
MOV[SI+2],AL
MOV[SI+3],AL
MOV[SI+4],AL
MOV[SI+5],AL
MOVDI,3005H
MOVDX,MY8255_MODE;初始化8255工作方式
MOVAL,81H;方式0,A口、B口输出,C口低4位输入
OUTDX,AL
BEGIN:
CALLDIS;显示刷新
CALLCLEAR;清屏
CALLCCSCAN;扫描按键
JNZGETKEY1;有键按下则跳置GETKEY1
MOVAH,1;判断PC键盘是否有按键按下
INT16H
JZBEGIN;无按键则跳回继续循环,有则退出
QUIT:
MOVAX,4C00H;返回到DOS
INT21H
GETKEY1:
CALLDIS;显示刷新
CALLDALLY
CALLDALLY
CALLCLEAR;清屏
CALLCCSCAN;再次扫描按键
JNZGETKEY2;有键按下则跳置GETKEY2
JMPBEGIN;否则跳回开始继续循环
GETKEY2:
MOVCH,0FEH
MOVCL,00H;设置当前检测的是第几列
COLUM:
MOVAL,CH;选取一列,将X1~X4中一个置0
MOVDX,MY8255_A
OUTDX,AL
MOVDX,MY8255_C;读Y1~Y4,用于判断是哪一行按键闭合
INAL,DX
L1:
TESTAL,01H;是否为第1行
JNZL2;不是则继续判断
MOVAL,00H;设置第1行第1列的对应的键值
JMPKCODE
L2:
TESTAL,02H;是否为第2行
JNZL3;不是则继续判断
MOVAL,04H;设置第2行第1列的对应的键值
JMPKCODE
L3:
TESTAL,04H;是否为第3行
JNZL4;不是则继续判断
MOVAL,08H;设置第3行第1列的对应的键值
JMPKCODE
L4:
TESTAL,08H;是否为第4行
JNZNEXT;不是则继续判断
MOVAL,0CH;设置第4行第1列的对应的键值
KCODE:
ADDAL,CL;将第1列的值加上当前列数,确定按键值
CALLPUTBUF;保存按键值
PUSHAX
KON:
CALLDIS;显示刷新
CALLCLEAR;清屏
CALLCCSCAN;扫描按键,判断按键是否弹起
JNZKON;未弹起则继续循环等待弹起
POPAX
NEXT:
INCCL;当前检测的列数递增
MOVAL,CH
TESTAL,08H;检测是否扫描到第4列
JZKERR;是则跳回到开始处
ROLAL,1;没检测到第4列则准备检测下一列
MOVCH,AL
JMPCOLUM
KERR:
JMPBEGIN
CCSCANPROCNEAR;扫描是否有按键闭合子程序
MOVAL,00H
MOVDX,MY8255_A;将4列全选通,X1~X4置0
OUTDX,AL
MOVDX,MY8255_C
INAL,DX;读Y1~Y4
NOTAL
ANDAL,0FH;取出Y1~Y4的反值
RET
CCSCANENDP
CLEARPROCNEAR;清除数码管显示子程序
MOVDX,MY8255_B;段位置0即可清除数码管显示
MOVAL,00H
OUTDX,AL
RET
CLEARENDP
DISPROCNEAR;显示键值子程序
PUSHAX;以缓冲区存放的键值为键值表偏移找到键值并显示
MOVSI,3000H
MOVDL,0DFH
MOVAL,DL
AGAIN:
PUSHDX
MOVDX,MY8255_A
OUTDX,AL;设置X1~X4,选通一个数码管
MOVAL,[SI];取出缓冲区中存放键值
MOVBX,OFFSETDTABLE
ANDAX,00FFH
ADDBX,AX
MOVAL,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验 8255
![提示](https://static.bdocx.com/images/bang_tan.gif)