河工大接口原理实验报告.docx

上传人:b****2 文档编号:18035165 上传时间:2023-04-24 格式:DOCX 页数:16 大小:775.12KB
下载 相关 举报
河工大接口原理实验报告.docx_第1页
第1页 / 共16页
河工大接口原理实验报告.docx_第2页
第2页 / 共16页
河工大接口原理实验报告.docx_第3页
第3页 / 共16页
河工大接口原理实验报告.docx_第4页
第4页 / 共16页
河工大接口原理实验报告.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

河工大接口原理实验报告.docx

《河工大接口原理实验报告.docx》由会员分享,可在线阅读,更多相关《河工大接口原理实验报告.docx(16页珍藏版)》请在冰豆网上搜索。

河工大接口原理实验报告.docx

河工大接口原理实验报告

计算机原理及接口技术

实验报告

 

班级:

网络C111

姓名:

封荣(同组:

李家兴)

学号:

115072

 

实验一8253计数器/定时器实验

一、实验目的:

1.学会通过62芯总线、驱动器、译码器等,在PC/XT机外扩展新的芯片。

2.掌握8253定时器编程原理,用示波器观察不同模式下的波形。

二、实验内容:

用8253构成一个方波发生器或分频器。

1.

按下图连接硬件线路:

2.编程将定时器0设为模式3(方波),定时器1设为模式2(分频),定时器0的输出脉冲作为定时器1的时钟输入。

在示波器中,观察定时器0和1的输出波形及其关系。

三、程序框图:

8253控制端口地址为203H定时器0地址为200H定时器1地址为201H

注:

CLK0连接由8MHZ时钟分频得到的250KHZ,则定时器l输出OUT1约为50HZ。

四、实验报告要求:

1.编写实验程序。

2.画出OUT0、OUT1的输出波形。

3.改变定时器0计数值为奇数(01F5)时,画出其输出波形。

4.总结模式2、模式3的工作特点。

结果:

1.CODESEGMENT

ASSUMECS:

CODE

START:

MOVDX,0EC03H

MOVAL,36H

OUTDX,AL

MOVDX,0EC00H

MOVAL,0F4H

OUTDX,AL

MOVAL,01H

OUTDX,AL

MOVDX,03C03H

MOVAL,74H

OUTDX,AL

MOVDX,0EC01H

MOVAL,0AH

OUTDX,AL

MOVAL,0

OUTDX,AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

 

2.

 

3.

4.

模式2:

CPU输出控制字后,输出OUT信号变为高电平,在写入计数值后,Count将立即自动对输入CLK计数,在计数过程中,输出始终保持为高电平,直至计数为0,输出才变低电平。

特点:

能够连续工作;不用重新设置计数初值;计数过程可由GATE控制脉冲;在计数过程中可以改变计数器,这对正在进行的计数过程没有影响。

模式3:

若计数值为偶数,在装入计数面器后,每一个脉冲都使计数器减2,当减为0时,一方面使输出改变状态另一方面重新装入计数值开始新的计数,若为奇数,则减为1.

GATE信号可以计数程序重新开始;若在计数期间写入一个新的计数值,并不影响现行的计数过程。

 

实验二8255A并行口实验<一>

一、实验目的:

1.掌握8255A编程原理。

2.了解键盘结构,学会读取按键的方法。

二、实验内容:

用8255来控制一个小键盘的识别。

1.

线路图如下:

注:

在实验台上8255A的CS端接218—21F插孔,PA0一PA7,PB0一PB2与其旁边的插孔短接。

8255A的端口A地址为218H

端口B地址为219H

端口C地址为21AH

控制口地址为21BH

2.编写程序,使得在小键盘按键后,微机屏幕上有相应字符显示出来.

三、编程指南:

1.通过采用行扫描法或行反转法,识别键盘上的闭合键。

行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如果列值中有某位为低电平,则表明行列交点处的键被按下;否则扫描下一行,直到扫完全部的行线为止.

行反转法识别闭合键时,要将行线接一个并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作在输入方式。

程序使CPU通过输出端口往各行线上全部送低电平,然后读入列线值,如果此时有某一键被按下,则必定会使某一列线值为0。

然后,程序再对两个并行端口进行方式设置,使行线上工作在输入方式,列线工作在输出方式,并且将刚才读得的列线值从列线所接的并行端口输出,再读行线上的输入值,那么,在闭合键所在的行线上的值必定为0。

这样,当一个键被按下时,必定可以读得一对唯一的行值和列值,在我们提供的程序中就采用行反转法来识别键盘按键。

2.在程序设计时,将各个键对应的代码(列值,行值)放在一个表中。

程序通过查表来确定具体按下的为哪一个键。

四、程序清单

PA55EQU0EC18H;8255A的A口地址

PB55EQU0EC19H;8255A的B口地址

P55CTLEQU0EC1BH;8255A的控制口地址

DATASEGMENT

TABIEDW0101H,0102H,0104H,0108H,0110H,0120H,0140H,0180H

DW0201H,0202H,0204H,0208H,0210H,0220H,0240H,0280H

DW0401H,0402H,0404H,0408H,0410H,0420H,0440H,0480H

CHARDB‘CDEFBA9845673210WXYSRPMG’;字符码表

MESDB‘PLAYANYKEYINTHESMALLKEYBOARD!

’,

0AH,0DH

DB‘ITWILLBEONTHESCREEN!

ENDWITHR’,

0AH,0DH,’$’

DATAENDS

CODESEGMENT

MAINPROCFAR

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX;DS指向数据段

MOVDX,OFFSETMES

MOVAH,09;显示提示信息

INT21H

KY:

CALLKEY;调键盘扫描子程序,健入

字符的ASCII码在DL中

CMPDL,‘R’;键入的字符不是结束字符

JNZKY‘R’,则转KY继续

MOVAX,4C00H;返回DOS

INT21H

RET

MAINENDP

KEYPROCNEAR;键盘扫描子程序,键人字

符的ASCII码送DL中

KST:

MOVAL,82H

MOVDX,P55CTL;设置8255A的控制字,均

OUTDX,AL工作于方式0,端口A为输出,B为输入

WAIT1:

MOVAL,00

MOVDX,PA55;端口A输出全0

OUTDX,AL

MOVDX,PB55;从端口B读入列值

INAL,DX

CMPAL,0FFH;若为0FFH,则说明无键

JZWAIT1按下,转WAIT1

PUSHAX;入栈保存列值

PUSHAX

MOVCX,1000H

DLY:

LOOPDLY;延时去抖动

MOVDX,P55CTL

MOVAL,90H;设置8255A的控制字,均

OUTDX,AL工作于方式0,端口A为

输入,B为输出

MOVDX,PB55

POPAX;从端口B输出列值

OUTDX,AL

MOVDX,PA55;从端口A读进行值

INAL,DX

POPBX;列值送AH中

MOVAH,BL

NOTAX;行、列值取反

MOVSI,OFFSETTABLE;扫描码表首址

MOVDI,OFFSETCHAR;字符码表首址

MOVCX,24;小键盘共3×8=24健

TT:

CMPAX,[SI];扫描码相符则转NN

JZNN

DECCX;计数值减1

JZKST;已全部比较完,仍不相符

则转KST

ADDSI,2;修改指针

INCDI

JMPTT;继续比较

NN:

MOVDL,[DI]

MOVAH,02;显示该扫描码对应字符

INT21H

PUSHDX;字符ASCII码入栈保存

MOVAL,82H

MOVDX,P55CTL;设置8255A控制字,均工

OUTDX,AL作于方式0,端口A为输

出,B为输人

WAIT2:

MOVAL,00

MOVDX,PA55;端口A输出全0

OUTDX,AL

MOVDX,PB55;从端口B读进列值

INAL,DX

CMPAL,0FFH;有键按下则转WAIT2等

待释放

JNZWAIT2

POPDX;退栈

RET

KEYENDP

CODEENDS

ENDSTART

五、实验报告要求:

 

1.参考实验程序画出流程图。

 

2.用行扫描法编写实验程序,并进行调试。

3.写出实验心得体会。

通过本次实验对于8255有了更深一步的了解,对键盘的识别及如何识别也有了深一步的了解。

本次实验CPU要先检查是否有键按下,然后再对键入的内容进行比较,因此为了提高CPU的利用率,一般可以采用的中断处理程序里面再对键盘进行键号扫描,为了防止抖动问题,可以设置延迟再开始扫描按键号。

 

实验三8255A并行口实验<二>

一、实验目的:

掌握通过8255并行口传输数据的方法,读取开关的数据,控制LED发光二极管的亮灭。

二、实验内容:

编写一个开关量控制程序。

1.输入开关状态全为0时,PA口上发光二极管循环轮流点亮。

2.当开关处于非全0时,则直接把开关状态在发光二极管上显示出来。

三、实验步骤:

1.将8255的PA0~PA7与LED1~LED8,PC4~PC7与LED9~LED12相连。

将8255的PB0~PB7与KEY1~KEY8,PC0~PC3与KEY9~KEY12相连。

2.编写程序,为8255初始化,使三个端口均工作在方式0,设A组为输出状态,B组为输入状态,根据实验内容调试程序,完成实验要求。

四、编程提示:

各LED为共阳极发光二极管,使其点亮应使8255相应端口的相应位清0。

五、实验报告要求:

1.画出实验线路图。

2.编写程序并绘制流程图。

CODESEGMENT

ASSUMECS:

CODE

START:

MOVDX,21BH

MOVAL,82H

OUTDX,AL

MOVDX,219H

INAL,DX

TESTAL,80H

JNZROLL

MOVAL,0

MOVDX,218H

OUTDX,AL

CALLDELAY

JMPEXIT

ROLL:

MOVAL,0FEH

MOVCX,8

MOVDX,218H

LOOP1:

OUTDX,AL

ROLAL,1

CALLDELAY

LOOPLOOP1

EXIT:

MOVAH,4CH

INT21H

DELAYPROC

PUSHCX

MOVBX,03333H

LOOP2:

MOVCX,03333H

LOOP3:

LOOPLOOP3

DECBX

JNZLOOP2

POPCX

RET

DELAYENDP

CODEENDS

ENDSTART

3.通过实验总结8255的三种工作方式。

1.方式0一般使用在同步传送和查询式传送中。

2.方式1的输出端口一般用于中断方式与CPU相联系。

方式1有如下特点:

①端口A和端口B可分别作为两个数据口工作于方式1,并且任何一个端口可作为输入或输出口。

②若只有一个端口工作于方式1,则端口C有三位被规定配合其工作,其余共13位可工作于方式0。

③若两个端口都工作于方式1,则端口C有6位被规定配合其工作,端口C所剩2位仍可作为输入或输出。

3.方式2应用于分时工作的双向外设(输入输出设备)的连接.

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1