资源描述:
《微机原理与汇编语言_实验7_8255并行接口实验.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、微机原理与汇编语言实验报告姓名xxx学号xxxxxx专业班级计科x班课程名称微机原理与汇编语言实验日期2014.12.16实验名称8255并行接口实验成绩一、实验目的掌握8255A的编程原理。二、实验内容1、实验原理本实验用到两部分电路:开关量输入输出电路和8255可编程并口电路。8255A是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。8255A有三个8位的输入输出端口,通常将A端口作为输入用,B端口作为输出用,C端口作为辅助控制用,本实验也是如此。实验中,8255A工作于基本输入输出方式(方式0)。2、实验步骤1)实验接线CS0«CS8255;
2、PA0~PA7«平推开关的输出K1~K8;PB0~PB7«发光二极管的输入LED1~LED8。2)编程并全速或单步运行。3)全速运行时拨动开关,观察发光二极管的变化。当开关某位置于L时,对应的发光二极管点亮,置于H时熄灭。3、实验结果程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。例如:K2置于L位置,则对应的LED2应该点亮。三、实验源码及框图7assumecs:codecodesegmentpublicorg100hstart:movdx,04a6h;控制寄存器地址movax,90h;设置为A口输入,B口输出outdx,axstart1:mo
3、vdx,04a0h;A口地址inax,dx;输入movdx,04a2h;B口地址outdx,ax;输出jmpstart1codeendsendstart三、练习键盘接口实验。请阅读实验指导手册,根据实验台键盘电路结构,设计实验,编制程序实现键盘的按键识别,并将其代码通过Led指示灯显示。7练习键盘框图:7实验源码:assumecs:codecodesegmentpublicorg100hTimer=10;延时常量;设置行线接输出端口,列线接输入端口start:movdx,04a6h;控制端写控制字,设置为A口输入,B口输出moval,90houtdx,alWa
4、it:7moval,00hmovdx,04a2houtdx,al;往所有行线上输出低电平movdx.04a0hinal,dx;读取列值cmpal,0ffh;是否有列线为低电平jzwait;否,则循环等待done:calldelay;是,则延迟去抖动movcx,8;行数送CXkey2:moval,0movdx,04a2h;B口作为输出outdx,al;设置行线全为低movdx,04a0h;A口作为输入inal,dx;读取列值cmpal,0ffhjzkey2;无闭合键,循环等待pushax;有闭合键,保存列值pushax;设置行线接输入端口,列线接输出端,A口输出
5、,B口输入movdx,04a6hmoval,82houtdx,almovdx,04a0h;A口输出popaxoutdx,al;输出列值movdx,04a2h;B口输入inal,dx;读取行值popbx;组合行列值movah,bl;此时,al=行值,ah=列值movsi,offsettable;table保存键盘行列值movdi,offsetchar;char保存键代码值movcx,24;cx=键的个数key3:cmpax,[si];与键值比较jzkey4;相同,说明查到incsi;不相同,继续比较incsiincdiloopkey3jmpstart;全部比较完
6、无相同则再进行扫描一遍jmpwait;全部比较完,仍无相同,说明是重键key4:moval,[di];获取键代码送ALpushax;判断按键是否释放,没有则等待calldelay;按键释放,延时消除抖动;后续处理7;将代码值输给小灯movdx,04a6h;控制寄存器地址movax,0080h;设置C口输出outdx,axmovdx,04a4h;将键代码从C口输出送给小灯popaxoutdx,aldelayprocpushbxpushcxmovbx,timer;外循环次数由timer确定delay1:xorcx,cxdelay2:loopdelay2;内循环de
7、cbxjnzdelay1popcxpopbxretdelayendp;键盘的行列值表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的行列值d
8、w0fd7fh;键16的行列值dw0f