并行IO接口的扩展实验报告.docx
- 文档编号:10749595
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:12
- 大小:17.19KB
并行IO接口的扩展实验报告.docx
《并行IO接口的扩展实验报告.docx》由会员分享,可在线阅读,更多相关《并行IO接口的扩展实验报告.docx(12页珍藏版)》请在冰豆网上搜索。
并行IO接口的扩展实验报告
并行IO接口的扩展实验报告
一、实验目的
1、了解并行IO接口的扩展方法
2、掌握可编程接口芯片8255A的工作原理、编程方式和使用方法
二、实验条件
1、DOS操作系统平台
2、8255A接口芯片
三、实验原理
1、并行IO口的扩展方法:
(1)通过通用的IO扩展芯片实现
(2)通过TTL、CMOS锁存器、缓冲器芯片实现。
如74LS377、74LS273、74LS244、74LS245等。
(3)通过串行通信口扩展并行I/O口。
2、8255A扩展I/O端口:
(1)8255A具有三种基本工作方式,即方式0、方式1、方式2。
各端口的工作方式及输入输出方向都由方式控制字设定(通过写入控制寄存器)。
8255A的控制字有方式控制字和C口置位/复位控制字两种。
3、8255A的工作方式:
(1)方式0是一种基本I/O方式。
在这种工作方式下,三个端口都可由程序设定为输入或输出,这种方式不使用联络信号,其基本功能为:
a.两个8位端口(A、B)和两个4位端口(C)。
b.任一个端口可以作为输入或输出。
c.输出锁存,输入不锁存。
d.在方式0时,各端口都可以作为数据端口,CPU用简单的输入或输出指令来进行读或写。
(2)方式1是一种选通I/O方式。
在这种方式下,端口A和B可作为数据端口,但C口的某口的其它位仍可工作于方式0。
方式1的基本功能为:
a.用作一个或两个选通端口。
b.每个选通端口包含有:
8位数据瑞口,3条控制线,提供中断逻辑。
c.任一端口可输入或输出。
d.若只有一个端口工作于方式1,余下的13位可以工作于方式0。
e.若两个端口工作于方式1,C口余下2位可以工作于方式0。
(3)方式2是一种双向I/O方式,只有端口A具有这种工作方式,其基本功能为:
a.一个8位双向数据端口(A)和一个5位控制端口(C)。
b.输入和输出锁存。
c.5位控制端口用作端口A的状态和控制信息。
四、实验内容
1、8255A工作于方式0,A口输出,接七段数码管;C口输入,接开关K0-K3,用七段数码管循环显示从C口低4位输入的数据。
程序运行中如有键按下就返回DOS,实验代码如下:
DATASEGMENT
LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,67H,77H,7CH,39H,5EH,79H,71H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX;初始化DS
MOVDX,0E48BH;设置8255A工作方式
MOVAL,89H
OUTDX,AL
INOUT:
MOVDX,0E488H
INAL,DX;C口输入
ANDAL,0FH
MOVBX,OFFSETLED
XLAT;换码AL<-DS:
[BX+AL]
MOVDX,0E488H
OUTDX,AL;A口输出字形码
MOVAH,1
INT16H
JZINOUT;无按键转移
MOVAH,4CH;有按键则返回DOS
INT21H
CODEENDS
ENDSTART
2、8255A工作于方式0,A口输入,接开关K0∼K7;C口输出接LEDL0∼L7。
用LED以二进制数显示出K0∼K7中置高电平的个数,程序运行中如有键按下就返回DOS。
实验代码如下:
DATASEGMENT
LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,67H,77H,7CH,39H,5EH,79H,71H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAL,89H;方式字
MOVDX,0E48BH;控制端口地址
OUTDX,AL;给控制端口地址写入方式字为0型
INOUT:
MOVDX,0E48AH;DX=C端口
INAL,DX;C口输入
MOVCH,AL;CL=AL
MOVCL,04H;CL=4用于后面的位移
SHRAL,CL;AL右移4位表示高4位
ANDAL,0FH;置低4位有效
ANDCH,0FH;置CH低4位有效
ADDAL,CH;求和
DAA;变为BCD码
MOVDX,0E488H;DX=A端口地址
OUTDX,AL;A口输出
MOVAH,1;读键盘缓冲区的BIOS调用
INT16H
JZINOUT;无按键跳转到INOUT
MOVAH,4CH;有按键返回DOS
INT21H
CODEENDS
ENDSTART
3、8255A工作于方式0,A口输出,C口输入。
从C口的高4位和低4位分别输入一个8421BCD码表示的十进制数,求和后仍以8421BCD码十进制数形式在LED上显示。
键盘上有键按下就返回DOS,实验代码如下:
DATASEGMENT
LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,67H,77H,7CH,39H,5EH,79H,71H
DATAENDS
STACKSEGMENTPARASTACK
DW128HDUP(0)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,0E48BH;DX=控制端口地址
MOVAL,90H;AL=控制字
OUTDX,AL
INOUT:
MOVDX,0E488H;DX=A端口地址
INAL,DX;AL得到输入值
MOVBL,0H;BL计数初始为0
MOVCL,1H;CL=1
MOVCH,8H;CH=8计数循环共计8个要计数
LLOOP:
MOVBH,AL;BH=AL
SHRAL,CL;AL>>1
DECCH;CH--
ANDBH,01H;BH取最低位
CMPBH,0H;与0比较
JZNEXT;为0则跳转
INCBL;高电平计数值BL+1
NEXT:
CMPCH,0H;与0比较
JZOUTT;若全部计数完成则跳出
JMPLLOOP;否则继续
OUTT:
MOVAL,BL;下面代码同前几问类似
MOVDX,0E48AH
OUTDX,AL
MOVAH,1
INT16H
JZINOUT
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
4、8255A工作于方式0,A口输出数码管位码,C口输出段码。
在S0数码管上连续显示字符0∼F后再在S1数码管上显示字符0∼F,每个字符停留1秒,循环显示。
有按键返回到DOS。
实验代码如下:
DATASEGMENT
LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,67H,77H,7CH,39H,5EH,79H,71H
DATAENDS
STACKSEGMENTPARASTACK
DW128HDUP(0)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,0E48BH;DX=控制端口地址
MOVAL,80H;AX=方式字
OUTDX,AL;写到控制端口
MOVCL,0H;CL=0用以计数0~F
MOVAH,01H;AH=1
MOVBH,01H;BH=1
OUTT:
MOVAH,BH;AH=BH
MOVAL,AH;取AH低8位
MOVDX,0E488H;端口A地址
OUTDX,AL;从A端口输出AL
MOVAL,CL;AL=CL
MOVBX,OFFSETLED;字符表基址送BX
XLAT;换码AL<-DS:
[BX+AL]
MOVDX,0E48AH;DX=端口C地址
OUTDX,AL;输出AL内容
MOVBH,AH;为了调用暂时保存AH
PUSHCX;后面调用要用CX先压栈
MOVAH,86H;BIOS等待功能调用
MOVCX,0FH
MOVDX,4240H
INT15H;BIOS等待功能调用
POPCX;弹出之前的CX
MOVAH,BH
MOVAL,00H
MOVDX,0E488H
OUTDX,AL
CMPCL,0FH;比较CL和F判断循环是否结束
JLNEXT;不结束进入NEXT下一轮
CMPAH,01H
JZCHANGE2
MOVAH,01H
MOVBH,01H
JMPCHANGE
CHANGE2:
MOVAH,02H
MOVBH,02H
CHANGE:
MOVCL,00H
JMPDOS
NEXT:
INCCL;CL++
DOS:
MOVAH,1
INT16H
JZOUTT
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
5、利用数码管实现两位数的秒表。
两位数字的显示要利用到人眼的视觉暂留现象,首先显示十位10毫秒,然后再显示个位10毫秒,然后循环显示50次,这样就把一个两位数显示了一秒钟,刷新率为50Hz。
类似上一题的方法,实验代码如下:
DATASEGMENT
LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,67H,77H,7CH,39H,5EH,79H,71H
DATAENDS
STACKSEGMENTPARASTACK
DW128HDUP(0)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,0E48BH
MOVAL,80H
OUTDX,AL
MOVAH,01H
MOVCH,0H
MOVCL,0H
OUTT:
MOVBX,0H
OUTT1:
MOVAH,01H
MOVAL,AH
MOVDX,0E488H
OUTDX,AL
PUSHBX
MOVAL,CL
MOVBX,OFFSETLED
XLAT
MOVDX,0E48AH
OUTDX,AL
POPBX
PUSHCX
MOVAH,86H
MOVCX,0H
MOVDX,0800H
INT15H
POPCX
OUTT2:
MOVAH,02H
MOVAL,AH
MOVDX,0E488H
OUTDX,AL
PUSHBX
MOVAL,CH
MOVBX,OFFSETLED
XLAT
MOVDX,0E48AH
OUTDX,AL
POPBX
PUSHCX
MOVAH,86H
MOVCX,0H
MOVDX,0200H
INT15H
POPCX
CMPBX,198H
JZNEXT
INCBX
JMPOUTT1
NEXT:
MOVBX,0H
CMPCL,09H
JZCHANGE
INCCL
JMPDOS
CHANGE:
MOVCL,00H
CMPCH,05H
JZCHANGE2
INCCH
JMPDOS
CHANGE2:
MOVCH,00H
DOS:
MOVAH,1
INT16H
JZOUTT
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
五、实验体会
1、掌握了8255A芯片的工作方式
2、掌握了如何使用排线并使用8255A芯片进行输入输出
3、学会了如何使用汇编语言实现简单的秒表程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 并行 IO 接口 扩展 实验 报告