资源描述:
《课程设计8255A键盘输入》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实用课程设计说明书课题名称:微机原理设计题目:设计一个16键的键盘系统专业班级:学生姓名:学号:文档实用目 录第1章设计目的第2章设计原理与分析第3章所选元件清单第4章课程设计心得文档实用课程设计目的1.了解键盘电路的工作原理。本实验要求在实验台上,用并行接口实验卡PPI8255为PC机扩展可编程并行接口;利用实验卡上的8位拨动开关提供输入数据,用8个LED指示灯显示输出结果;用单脉冲按钮PI提供输入选通脉冲/STBA模拟输入设备送数,用单脉冲按钮PO提供输出应答脉冲/ACKA和/ACKB模拟输出设备取数。2.掌握
2、键盘接口电路的编程方法。设计人机界面接口,要求在微机屏幕上动态地显示当前实验的内容和实验的结果,包括8255A的工作方式,输入的数据和输出的结果设计人机界面接口,要求在微机屏幕上,以菜单方式列出并行接口8255A原理实验的内容,并根据实验内容设置好工作方式选择跳线开关,用户可以通过键盘选择实验的内容。方式08255为方式0、A口输入、B口输出,可用无条件传送方式控制输入/出。方式1其它要求同方式0,改用查询方式控制输入/出,用中断方式也可以,通过读取C口的状态字来获取状态。方式2使A口既能接受开关状态又能控制LED
3、指示灯显示;要求先接收A口的开关数据,可用查询方式控制输入/出。文档实用第2章设计原理与分析2.1、实验原理:1、识别键的闭合,通常采用行扫描法和行反转法。行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如所读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。本实验例程采用的是行反转法。行反转法识别键闭合时,要将行线接一并行口,先让它工作于输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口往各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则
4、必定会使某一列线值为0。然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上的输入值,那么,在闭合键所在的行线上的值必定为0。这样,当一个键被按下时,必定可以读得一对唯一的行线值和列线值。2、程序设计时,要学会灵活地对8255A的各端口进行方式设置。可将各键对应的键值(行线值、列线值)放在一个表中,将要显示的0~F字符放在另一个表中,通过查表来确定按下的是哪一个键并正确显示出来。3、利用实验箱上的8255A可编程并行接口芯片和矩阵
5、键盘,编写程序,做到在键盘上每按一个数字键(0~F),用发光二极管将该代码显示出来。2.2、实验步骤:将键盘RL10~RL17接8255A的PB0~PB7;KA10~KA12接8255A的PA0~PA2;PC0~PC7接发光二极管的L1~L8;8255A芯片的片选信号8255CS接CS0。2.3、实验电路:文档实用图2-1实验电路图2.4、程序框图:文档实用图2-2程序框图2.5、程序接线图:文档实用键盘RL10接8255APB0键盘RL11接8255APB1键盘RL12接8255APB2键盘RL13接8255AP
6、B3键盘RL14接8255APB4键盘RL15接8255APB5键盘RL16接8255APB6键盘RL17接8255APB7键盘KA10接8255APA0键盘KA12接8255APA1键盘KA12接8255APA28键盘PC0发光二极管L1键盘PC1发光二极管L2键盘PC2发光二极管L3键盘PC3发光二极管L4键盘PC4发光二极管L5键盘PC5发光二极管L6键盘PC6发光二极管L7键盘PC7发光二极管L88255A芯片的片选信号8255CS接CS02.6、参考程序:T8.ASMNAMEt8;8255键盘实验PAEQ
7、U0CFA0HPBEQUPA+1PC0EQUPB+1PCTLEQUPC0+1文档实用CSEGAT4000HLJMPSTARTCSEGAT4100HSTART:MOV42H,#0FFH;42H中放显示的字符码,初值为0FFHSTA1:MOVDPTR,#PCTL;设置控制字,ABC口工作于方式0;AC口输出而B口用于输入MOVA,#82HMOVX@DPTR,ALINE:MOVDPTR,#PC0;将字符码从C口输出显示MOVA,42HCPLAMOVX@DPTR,AMOVDPTR,#PA;从A口输出全零到键盘的列线MOVX
8、@DPTR,AMOVDPTR,#PB;从B口读入键盘行线值MOVXA,@DPTRMOV40H,A;行线值存于40H中CPLA;取反后如为全零;表示没有键闭合,继续扫描JZLINEMOVR7,#10H;有键按下,延时10MS去抖动DL0:MOVR6,#0FFHDL1:DJNZR6,DL1DJNZR7,DL0MOVDPTR,#PCTL;重置控制字,让A为输入,B