微机原理与汇编语言实验78255并行接口实验说课材料Word下载.docx

上传人:b****3 文档编号:14722427 上传时间:2022-10-24 格式:DOCX 页数:9 大小:155.80KB
下载 相关 举报
微机原理与汇编语言实验78255并行接口实验说课材料Word下载.docx_第1页
第1页 / 共9页
微机原理与汇编语言实验78255并行接口实验说课材料Word下载.docx_第2页
第2页 / 共9页
微机原理与汇编语言实验78255并行接口实验说课材料Word下载.docx_第3页
第3页 / 共9页
微机原理与汇编语言实验78255并行接口实验说课材料Word下载.docx_第4页
第4页 / 共9页
微机原理与汇编语言实验78255并行接口实验说课材料Word下载.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

微机原理与汇编语言实验78255并行接口实验说课材料Word下载.docx

《微机原理与汇编语言实验78255并行接口实验说课材料Word下载.docx》由会员分享,可在线阅读,更多相关《微机原理与汇编语言实验78255并行接口实验说课材料Word下载.docx(9页珍藏版)》请在冰豆网上搜索。

微机原理与汇编语言实验78255并行接口实验说课材料Word下载.docx

CS0↔CS8255;

PA0~PA7↔平推开关的输出K1~K8;

PB0~PB7↔发光二极管的输入LED1~LED8。

2)编程并全速或单步运行。

3)全速运行时拨动开关,观察发光二极管的变化。

当开关某位置于L时,对应的发光二极管点亮,置于H时熄灭。

3、实验结果

程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。

例如:

K2置于L位置,则对应的LED2应该点亮。

3、实验源码及框图

assumecs:

code

codesegmentpublic

org100h

start:

movdx,04a6h;

控制寄存器地址

movax,90h;

设置为A口输入,B口输出

outdx,ax

start1:

movdx,04a0h;

A口地址

inax,dx;

输入

movdx,04a2h;

B口地址

outdx,ax;

输出

jmpstart1

codeends

endstart

4、练习

键盘接口实验。

请阅读实验指导手册,根据实验台键盘电路结构,设计实验,编制程序实现键盘的按键识别,并将其代码通过Led指示灯显示。

练习键盘框图:

实验源码:

assumecs:

codesegmentpublic

org100h

Timer=10;

延时常量

;

设置行线接输出端口,列线接输入端口

movdx,04a6h;

控制端写控制字,设置为A口输入,B口输出

moval,90h

outdx,al

Wait:

moval,00h

movdx,04a2h

outdx,al;

往所有行线上输出低电平

movdx.04a0h

inal,dx;

读取列值

cmpal,0ffh;

是否有列线为低电平

jzwait;

否,则循环等待

done:

calldelay;

是,则延迟去抖动

movcx,8;

行数送CX

key2:

moval,0

movdx,04a2h;

B口作为输出

设置行线全为低

movdx,04a0h;

A口作为输入

读取列值

cmpal,0ffh

jzkey2;

无闭合键,循环等待

pushax;

有闭合键,保存列值

pushax

设置行线接输入端口,列线接输出端,A口输出,B口输入

movdx,04a6h

moval,82h

A口输出

popax

outdx,al;

输出列值

B口输入

读取行值

popbx;

组合行列值

movah,bl;

此时,al=行值,ah=列值

movsi,offsettable;

table保存键盘行列值

movdi,offsetchar;

char保存键代码值

movcx,24;

cx=键的个数

key3:

cmpax,[si];

与键值比较

jzkey4;

相同,说明查到

incsi;

不相同,继续比较

incsi

incdi

loopkey3

jmpstart;

全部比较完无相同则再进行扫描一遍

jmpwait;

全部比较完,仍无相同,说明是重键

key4:

moval,[di];

获取键代码送AL

pushax

判断按键是否释放,没有则等待

按键释放,延时消除抖动

后续处理

将代码值输给小灯

movax,0080h;

设置C口输出

outdx,ax

movdx,04a4h;

将键代码从C口输出送给小灯

delayproc

pushbx

pushcx

movbx,timer;

外循环次数由timer确定

delay1:

xorcx,cx

delay2:

loopdelay2;

内循环

decbx

jnzdelay1

popcx

popbx

ret

delayendp

键盘的行列值表

tabledw0fefeh;

键1的行列值(键值)

dw0fefdh;

键2的行列值

dw0fefbh;

键3的行列值

dw0fe07h;

键4的行列值

dw0feefh;

键5的行列值

dw0fedfh;

键6的行列值

dw0febfh;

键7的行列值

dw0fe7fh;

键8的行列值

dw0fdfeh;

键9的行列值

dw0fdfdh;

键10的行列值

dw0fdfbh;

键11的行列值

dw0fd07h;

键12的行列值

dw0fdefh;

键13的行列值

dw0fddfh;

键14的行列值

dw0fdbfh;

键15的行列值

dw0fd7fh;

键16的行列值

dw0fbfeh;

键17的行列值

dw0fbfdh;

键18的行列值

dw0fbfbh;

键19的行列值

dw0fb07h;

键20的行列值

dw0fbefh;

键21的行列值

dw0fbdfh;

键22的行列值

dw0fbbfh;

键23的行列值

dw0fb7fh;

键24的行列值

……;

S25、S26其他键的行列值

键盘的键代码表

chardb30h;

键1的代码值

db31h;

键2的代码值

db32h;

键2的代码值

db33h;

键3的代码值

db34h;

键4的代码值

db35h;

键5的代码值

db36h;

键6的代码值

db37h;

键7的代码值

db38h;

键8的代码值

db39h;

键9的代码值

db41h;

键A的代码值

db42h;

键B的代码值

db43h;

键C的代码值

db44h;

键D的代码值

db45h;

键E的代码值

db46h;

键F的代码值

db61h;

键a的代码值

db62h;

键b的代码值

db63h;

键c的代码值

db64h;

键d的代码值

db65h;

键e的代码值

db66h;

键f的代码值

db67h;

键g的代码值

db68h;

键h的代码值

S25、S26其他键的代码值

实验现象:

按相应的键,LED灯会显示相应的代码。

5、实验总结

1)通过本次实验我掌握了8255A的工作方式以及初始化编程方式,还有键盘的工作原理。

2)8255A有3种工作方式,A、B、上C口、下C口均可工作与基本的输入输出方式,A、B口可以工作于选通输入输出方式,此时C口提供握手信号,只有A口可以工作于双向选通的传送方式下。

3)在本次实验的练习中,我的键盘的用的是反转法,这种方法比扫描法的效率更高,无论哪种方法其基本的原理均是利用控制线为低,读取检测线来识别闭合键的。

反转法识别按键需要一个条件就是:

连接行线和列线的接口电路必须支持动态改变输入、输出方式,而8255A的3个端口就具有这个功能。

但是扫描法不需要这个条件。

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

当前位置:首页 > IT计算机 > 计算机硬件及网络

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

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