- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8255A可编程并行接口实验二键盘实验-单片机原理及应用实验报告
计算机与信息工程学院设计性实验报告
专业:通信工程 年级/班级:2011级 2013—2014学年第一学期
课程名称单片机原理及应用指导教师岳明本组成员
学号姓名实验地点计科楼214实验时间周五3-4节项目名称8255A可编程并行接口实验二
键盘实验实验类型设计性
一、实验目的:
1、掌握8255A编程原理。
2、了解键盘电路的工作原理。
3、掌握键盘接口电路的编程方法。
二、实验设备:
EL-8051-III型单片机实验箱
三、实验原理:
1、识别键的闭合,通常采用行扫描法和行反转法。
行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如所读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。
本实验例程采用的是行反转法。
行反转法识别键闭合时,要将行线接一并行口,先让它工作于输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口往各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上的输入值,那么,在闭合键所在的行线上的值必定为0。这样,当一个键被按下时,必定可以读得一对唯一的行线值和列线值。
2、程序设计时,要学会灵活地对8255A的各端口进行方式设置。
3、程序设计时,可将各键对应的键值(行线值、列线值)放在一个表中,将要显示的0~F字符放在另一个表中,通过查表来确定按下的是哪一个键并正确显示出来。
实验题目
利用实验箱上的8255A可编程并行接口芯片和矩阵键盘,编写程序,做到在键盘上每按一个数字键(0~F),用发光二极管将该代码显示出来。
四、实验步骤:
将键盘RL10~RL17接8255A的PB0~PB7;KA10~KA12接8255A的PA0~PA2;PC0~PC7接发光二极管的L1~L8;8255A芯片的片选信号8255CS接CS0。
五、实验电路:
六、程序框图T8.ASM
七、参考程序:T8.ASM
NAME t8 ;8255键盘实验
PA EQU 0CFA0H
PB EQU PA+1
PC0 EQU PB+1
PCTL EQU PC0+1
CSEG AT 4000H
LJMP START
CSEG AT 4100H
START: MOV 42H,#0FFH ;42H中放显示的字符码,初值为0FFH
STA1: MOV DPTR,#PCTL ;设置控制字,ABC口工作于方式0
;AC口输出而B口用于输入
MOV A,#82H
MOVX @DPTR,A
LINE: MOV DPTR,#PC0 ;将字符码从C口输出显示
MOV A,42H
CPL A
MOVX @DPTR,A
MOV DPTR,#PA ;从A口输出全零到键盘的列线
MOVX @DPTR,A
MOV DPTR,#PB ;从B口读入键盘行线值
MOVX A,@DPTR
MOV 40H,A ;行线值存于40H中
CPL A ;取反后如为全零
;表示没有键闭合,继续扫描
JZ LINE
MOV R7,#10H ;有键按下,延时10MS去抖动
DL0: MOV R6,#0FFH
DL1: DJNZ R6,DL1
DJNZ R7,DL0
MOV DPTR,#PCTL ;重置控制字,让A为输入,BC为输出
MOV A,#90H
MOVX @DPTR,A
MOV A,40H
MOV DPTR,#PB ;刚才读入的行线值取出从B口送出
MOVX @DPTR,A
MOV DPTR,#PA ;从A口读入列线值
MOVX A,@DPTR
MOV 41H,A ;列线值存于41H中
文档评论(0)