【2017年整理】8255A可编程并行接口实验二键盘实验 - 单片机原理及应用实验报告

上传人:爱****1 文档编号:941754 上传时间:2017-05-23 格式:DOC 页数:5 大小:127.50KB
返回 下载 相关 举报
【2017年整理】8255A可编程并行接口实验二键盘实验 - 单片机原理及应用实验报告_第1页
第1页 / 共5页
【2017年整理】8255A可编程并行接口实验二键盘实验 - 单片机原理及应用实验报告_第2页
第2页 / 共5页
【2017年整理】8255A可编程并行接口实验二键盘实验 - 单片机原理及应用实验报告_第3页
第3页 / 共5页
【2017年整理】8255A可编程并行接口实验二键盘实验 - 单片机原理及应用实验报告_第4页
第4页 / 共5页
【2017年整理】8255A可编程并行接口实验二键盘实验 - 单片机原理及应用实验报告_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《【2017年整理】8255A可编程并行接口实验二键盘实验 - 单片机原理及应用实验报告》由会员分享,可在线阅读,更多相关《【2017年整理】8255A可编程并行接口实验二键盘实验 - 单片机原理及应用实验报告(5页珍藏版)》请在金锄头文库上搜索。

1、计算机与信息工程学院设计性实验报告专业:通信工程 年级/班级:2011 级 20132014 学年第一学期课程名称 单片机原理及应用 指导教师 岳明本组成员学号姓名实验地点 计科楼 214 实验时间 周五 3-4节项目名称 8255A可编程并行接口实验二 键盘实验 实验类型 设计性一、实验目的:1、掌握 8255A编程原理。2、了解键盘电路的工作原理。3、掌握键盘接口电路的编程方法。二、实验设备:EL-8051-III型单片机实验箱三、实验原理:1、识别键的闭合,通常采用行扫描法和行反转法。行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如所读列值中某位为低电平,表明有键按

2、下,否则扫描下一行,直到扫完所有行。本实验例程采用的是行反转法。行反转法识别键闭合时,要将行线接一并行口,先让它工作于输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使 CPU通过输出端口往各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为 0。然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上的输入值,那么,在闭合键所在的行线上的值必定为 0。这样,当一个键被按下时,必定可以读得一对唯一的行线值和列线值。2、程序设计时,要学会灵活地对 8255A的各端口进行方式设

3、置。3、程序设计时,可将各键对应的键值(行线值、列线值)放在一个表中,将要显示的 0F 字符放在另一个表中,通过查表来确定按下的是哪一个键并正确显示出来。实验题目利用实验箱上的 8255A可编程并行接口芯片和矩阵键盘,编写程序,做到在键盘上每按一个数字键(0F) ,用发光二极管将该代码显示出来。四、实验步骤:将键盘 RL10RL17 接 8255A的 PB0PB7;KA10KA12 接 8255A的PA0PA2;PC0PC7 接发光二极管的 L1L8;8255A 芯片的片选信号 8255CS接 CS0。五、实验电路:六、程序框图 T8.ASM 七、参考程序:T8.ASM NAME t8 ;82

4、55键盘实验PA EQU 0CFA0HPB EQU PA+1PC0 EQU PB+1PCTL EQU PC0+1CSEG AT 4000HLJMP STARTCSEG AT 4100HSTART: MOV 42H,#0FFH ;42H中放显示的字符码,初值为 0FFHSTA1: MOV DPTR,#PCTL ;设置控制字,ABC 口工作于方式 0;AC口输出而 B口用于输入MOV A,#82HMOVX DPTR,ALINE: MOV DPTR,#PC0 ;将字符码从 C口输出显示MOV A,42HCPL AMOVX DPTR,AMOV DPTR,#PA ;从 A口输出全零到键盘的列线MOVX

5、DPTR,AMOV DPTR,#PB ;从 B口读入键盘行线值MOVX A,DPTRMOV 40H,A ;行线值存于 40H中CPL A ;取反后如为全零;表示没有键闭合,继续扫描JZ LINEMOV R7,#10H ;有键按下,延时 10MS去抖动DL0: MOV R6,#0FFHDL1: DJNZ R6,DL1DJNZ R7,DL0MOV DPTR,#PCTL ;重置控制字,让 A为输入,BC 为输出MOV A,#90HMOVX DPTR,AMOV A,40HMOV DPTR,#PB ;刚才读入的行线值取出从 B口送出MOVX DPTR,AMOV DPTR,#PA ;从 A口读入列线值MO

6、VX A,DPTRMOV 41H,A ;列线值存于 41H中CPL A ;取反后如为全零JZ STA1 ;表示没有键按下MOV DPTR,#TABLE ;TABLE表首地址送 DPTRMOV R7,#18H ;R7中置计数值 16 MOV R6,#00H ;R6中放偏移量初值TT: MOVX A,DPTR ;从表中取键码前半段字节,行线值与实CJNE A,40H,NN1 ;际输入的行线值相等吗?不等转 NN1INC DPTR ;相等,指针指向后半字节,即列线值MOVX A,DPTR ;列线值与实际输入的列线值CJNE A,41H,NN2 ;相等吗?不等转 NN2MOV DPTR,#CHAR ;

7、相等,CHAR 表基址和 R6中的偏移量MOV A,R6 ;取出相应的字符码MOVC A,A+DPTRMOV 42H,A ;字符码存于 42HBBB: MOV DPTR,#PCTL ;重置控制字,让 AC为输出,B 为输入MOV A,#82HMOVX DPTR,AAAA: MOV A,42H ;将字符码从 C口送到二极管显示MOV DPTR,#PC0CPL AMOVX DPTR,AMOV DPTR,#PA ;判断按下的键是否释放CLR AMOVX DPTR,AMOV DPTR,#PBMOVX A,DPTRCPL AJNZ AAA ;没释放转 AAAMOV R5,#2 ;已释放则延时 0.2秒,

8、减少总线负担DEL1: MOV R4,#200DEL2: MOV R3,#126DEL3: DJNZ R3,DEL3DJNZ R4,DEL2DJNZ R5,DEL1JMP START ;转 STARTNN1: INC DPTR ;指针指向后半字节即列线值NN2: INC DPTR ;指针指向下一键码前半字节即行线值INC R6 ;CHAR表偏移量加一DJNZ R7,TT ;计数值减一,不为零则转 TT继续查找JMP BBBTABLE: DW 0FE06H,0FD06H,0FB06H,0F706H;TABLE为键值表,每个键位占DW 0BF06H,07F06H,0FE05H,0FD05H; 两个

9、字节,第一个字节为行DW 0EF05H,0DF05H,0BF05H,07F05H ;线值,第二个为列线值DW 0FB03H,0F703H,0EF03H,0DF03H;CHAR: DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H ;字符码表DB 0AH,0BH,0CH,0DH,0EH,0FH,10H,11H,12H,13HDB 14H,15H,16H,17H END八、实验小结行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如所读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行,然后对照表格,输出对应的内容即可教师签名:年 月 日

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号