微机原理与汇编语言_实验7_8255并行接口实验_第1页
微机原理与汇编语言_实验7_8255并行接口实验_第2页
微机原理与汇编语言_实验7_8255并行接口实验_第3页
微机原理与汇编语言_实验7_8255并行接口实验_第4页
微机原理与汇编语言_实验7_8255并行接口实验_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机原理与汇编语言实验报告姓 名xxx学 号xxxxxx专业班级计科x班课程名称微机原理与汇编语言实验日期2014.12.16实验名称8255并行接口实验成 绩1、 实验目的掌握8255A的编程原理。二、实验内容 1、实验原理 本实验用到两部分电路:开关量输入输出电路和8255可编程并口电路。8255A是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。8255A有三个8位的输入输出端口,通常将A端口作为输入用,B端口作为输出用,C端口作为辅助控制用,本实验也是如此。实验中,8255A工作于基本输入输出方式(方式0)。 2、实验步骤1)实验接线CS0«CS8255; PA0P

2、A7« 平推开关的输出K1K8; PB0PB7«发光二极管的输入LED1LED8。2)编程并全速或单步运行。3)全速运行时拨动开关,观察发光二极管的变化。当开关某位置于L时,对应的发光二极管点亮,置于H时熄灭。 3、实验结果 程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。例如:K2置于L位置,则对应的LED2应该点亮。3、 实验源码及框图 assume cs:codecode segment publicorg 100hstart: mov dx,04a6h;控制寄存器地址 mov ax,90h;设置为A口输入,B口输出 out dx,axstart1: m

3、ov dx,04a0h;A口地址 in ax,dx;输入 mov dx,04a2h;B口地址 out dx,ax;输出 jmp start1code endsend start4、 练习键盘接口实验。请阅读实验指导手册,根据实验台键盘电路结构,设计实验,编制程序实现键盘的按键识别,并将其代码通过Led指示灯显示。练习键盘框图:实验源码:assume cs:code code segment public org 100h Timer = 10;延时常量;设置行线接输出端口,列线接输入端口start: mov dx,04a6h;控制端写控制字,设置为A口输入,B口输出 mov al,90h ou

4、t dx,alWait: mov al,00h mov dx,04a2h out dx,al ; 往所有行线上输出低电平 mov dx.04a0h in al,dx ; 读取列值 cmp al,0ffh ;是否有列线为低电平 jz wait ;否,则循环等待done: call delay ;是,则延迟去抖动mov cx,8;行数送CX key2:mov al,0 mov dx,04a2h ;B口作为输出 out dx,al;设置行线全为低 mov dx,04a0h ;A口作为输入 in al,dx;读取列值 cmp al,0ffh jz key2;无闭合键,循环等待 push ax;有闭合键

5、,保存列值 push ax;设置行线接输入端口,列线接输出端,A口输出,B口输入 mov dx,04a6h mov al,82h out dx,al mov dx,04a0h ;A口输出 pop ax out dx,al;输出列值 mov dx,04a2h ;B口输入 in al,dx;读取行值 pop bx;组合行列值 mov ah,bl;此时,al行值,ah列值 mov si,offset table ;table保存键盘行列值 mov di,offset char ;char保存键代码值 mov cx,24;cx键的个数key3:cmp ax,si;与键值比较 jz key4;相同,说明

6、查到 inc si ;不相同,继续比较 inc si inc di loop key3 jmp start ;全部比较完无相同则再进行扫描一遍 jmp wait ;全部比较完,仍无相同,说明是重键key4:mov al,di;获取键代码送AL push ax ;判断按键是否释放,没有则等待 call delay ;按键释放,延时消除抖动;后续处理;将代码值输给小灯 mov dx,04a6h;控制寄存器地址 mov ax,0080h ;设置C口输出 out dx,ax mov dx,04a4h ;将键代码从C口输出送给小灯 pop ax out dx,aldelay proc push bx p

7、ush cx mov bx,timer;外循环次数由timer确定delay1:xor cx,cxdelay2:loop delay2;内循环 dec bx jnz delay1 pop cx pop bx retdelayendp;键盘的行列值表table dw 0fefeh ;键1的行列值(键值) dw 0fefdh ;键2的行列值 dw 0fefbh ;键3的行列值 dw 0fe07h ;键4的行列值 dw 0feefh ;键5的行列值 dw 0fedfh ;键6的行列值 dw 0febfh ;键7的行列值 dw 0fe7fh ;键8的行列值 dw 0fdfeh ;键9的行列值 dw 0

8、fdfdh ;键10的行列值 dw 0fdfbh ;键11的行列值 dw 0fd07h ;键12的行列值 dw 0fdefh ;键13的行列值 dw 0fddfh ;键14的行列值 dw 0fdbfh ;键15的行列值 dw 0fd7fh ;键16的行列值 dw 0fbfeh ;键17的行列值 dw 0fbfdh ;键18的行列值 dw 0fbfbh ;键19的行列值 dw 0fb07h ;键20的行列值 dw 0fbefh ;键21的行列值 dw 0fbdfh ;键22的行列值 dw 0fbbfh ;键23的行列值 dw 0fb7fh ;键24的行列值 ;S25、S26其他键的行列值;键盘的

9、键代码表char db 30h ;键1的代码值 db 31h ;键2的代码值 db 32h ;键2的代码值 db 33h ;键3的代码值 db 34h ;键4的代码值 db 35h ;键5的代码值 db 36h ;键6的代码值 db 37h ;键7的代码值 db 38h ;键8的代码值 db 39h ;键9的代码值 db 41h ;键A的代码值 db 42h ;键B的代码值 db 43h ;键C的代码值 db 44h ;键D的代码值 db 45h ;键E的代码值 db 46h ;键F的代码值 db 61h ;键a的代码值 db 62h ;键b的代码值 db 63h ;键c的代码值 db 64h ;键d的代码值 db 65h ;键e的代码值 db 66h ;键f的代码值 db 67h ;键g的代码值 db 68h ;键h的代码值 ;S25、S26其他键的代码值code endsend start实验现象:按相应的键,LED灯会显示相应的代码。5、 实验总结 1)通过本次实验我掌握了8255A的工作方式以及初始化编程方式,还有键盘的工作原理。 2)8255A有3种工作方式,A、B、上C口、下C口均可工作与基本的输入输出方式,A、B口可以工作于选通输入输出方式,此时C口提供握手信号,只有A口可以工作于双向选通的传送

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论