课程设计8255A键盘输入要点.pdf

上传人:tbuqq 文档编号:5230654 上传时间:2020-02-27 格式:PDF 页数:13 大小:291.33KB
返回 下载 相关 举报
课程设计8255A键盘输入要点.pdf_第1页
第1页 / 共13页
课程设计8255A键盘输入要点.pdf_第2页
第2页 / 共13页
课程设计8255A键盘输入要点.pdf_第3页
第3页 / 共13页
课程设计8255A键盘输入要点.pdf_第4页
第4页 / 共13页
课程设计8255A键盘输入要点.pdf_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《课程设计8255A键盘输入要点.pdf》由会员分享,可在线阅读,更多相关《课程设计8255A键盘输入要点.pdf(13页珍藏版)》请在三一文库上搜索。

1、第 1 页 共 13 页 课程设计说明书 课题名称:微机原理 设计题目:设计一个 16 键的键盘系统 专业班级: 学生姓名: 学号 : 第 2 页 共 13 页 目录 第1章设计目的 第2章设计原理与分析 第3章所选元件清单 第4章课程设计心得 第 3 页 共 13 页 第1章课程设计目的 1 了解键盘电路的工作原理。 本实验要求在实验台上,用并行接口实验卡PPI8255为 PC机扩展可编程并行接口; 利用实验卡上的 8 位拨动开关提供输入数据,用8 个 LED指示灯显示输出结果;用单脉 冲按钮 PI 提供输入选通脉冲 /STBA模拟输入设备送数,用单脉冲按钮 PO提供输出应答脉 冲/ACKA

2、和/ACKB模拟输出设备取数。 2 掌握键盘接口电路的编程方法。 设计人机界面接口,要求在微机屏幕上动态地显示当前实验的内容和实验的结果, 包括 8255A的工作方式,输入的数据和输出的结果 设计人机界面接口,要求在微机屏幕上,以菜单方式列出并行接口8255A原理实验 的内容,并根据实验内容设置好工作方式选择跳线开关,用户可以通过键盘选择实验的 内容。 方式 0 8255为方式 0、A口输入、 B口输出 ,可用无条件传送方式控制输入/ 出。 方式 1 其它要求同方式0, 改用查询方式控制输入 / 出,用中断方式也可以,通过读取C口 的状态字来获取状态。 方式 2 使 A口既能接受开关状态又能控

3、制LED指示灯显示;要求先接收A口的开关数据, 可用查询方式控制输入 / 出。 第 4 页 共 13 页 第 2 章设计原理与分析 2.1、实验原理: 1、识别键的闭合,通常采用行扫描法和行反转法。 行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如所 读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。 本实验例程采用的是行反转法。 行反转法识别键闭合时,要将行线接一并行口,先让它工作于输出方式,将列线也 接到一个并行口,先让它工作于输入方式,程序使CPU 通过输出端口往各行线上全部送 低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。

4、然后,程 序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将 刚才读得的列线值从列线所接的并行端口输出,再读取行线上的输入值,那么,在闭合 键所在的行线上的值必定为0。这样,当一个键被按下时, 必定可以读得一对唯一的行线 值和列线值。 2、程序设计时,要学会灵活地对8255A的各端口进行方式设置。可将各键对应的键 值(行线值、列线值)放在一个表中,将要显示的0F 字符放在另一个表中,通过查表 来确定按下的是哪一个键并正确显示出来。 3、利用实验箱上的 8255A可编程并行接口芯片和矩阵键盘,编写程序,做到在键盘 上每按一个数字键( 0F) ,用发光二极管将该代码显示出

5、来。 2.2、实验步骤: 将键盘 RL10RL17接 8255A的 PB0PB7;KA10KA12 接 8255A的 PA0PA2; PC0PC7接发光二极管的 L1L8;8255A芯片的片选信号 8255CS接 CS0 。 第 5 页 共 13 页 2.3、实验电路: 图 2-1 实验电路图 2.4、程序框图: 第 6 页 共 13 页 图 2-2 程序框图 2.5、程序接线图: 第 7 页 共 13 页 键盘 RL10 接 8255A PB0 键盘 RL11 接 8255A PB1 键盘 RL12 接 8255A PB2 键盘 RL13 接 8255A PB3 键盘 RL14 接 8255

6、A PB4 键盘 RL15 接 8255A PB5 键盘 RL16 接 8255A PB6 键盘 RL17 接 8255A PB7 键盘 KA10接 8255A PA0 键盘 KA12接 8255A PA1 键盘 KA12接 8255A PA28 键盘 PC0 发光二极管 L1 键盘 PC1 发光二极管 L2 键盘 PC2 发光二极管 L3 键盘 PC3 发光二极管 L4 键盘 PC4 发光二极管 L5 键盘 PC5 发光二极管 L6 键盘 PC6 发光二极管 L7 键盘 PC7 发光二极管 L8 8255A芯片的片选信号8255CS接 CS0 2.6、参考程序: T8.ASM NAME t8

7、 ;8255键盘实验 PA EQU 0CFA0H PB EQU PA+1 PC0 EQU PB+1 PCTL EQU PC0+1 第 8 页 共 13 页 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,

8、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 ;刚

9、才读入的行线值取出从B口送出 MOVX DPTR,A MOV DPTR,#PA ;从 A口读入列线值 MOVX A,DPTR MOV 41H,A ;列线值存于 41H中 CPL A ;取反后如为全零 JZ STA1 ;表示没有键按下 MOV DPTR,#TABLE ;TABLE表首地址送 DPTR 第 9 页 共 13 页 MOV R7,#18H ;R7中置计数值 16 MOV R6,#00H ;R6中放偏移量初值 TT: MOVX A,DPTR ;从表中取键码前半段字节,行线值与实 CJNE A,40H,NN1 ;际输入的行线值相等吗?不等转NN1 INC DPTR ;相等,指针指向后半字节

10、,即列线值 MOVX A,DPTR ;列线值与实际输入的列线值 CJNE A,41H,NN2 ;相等吗?不等转 NN2 MOV DPTR,#CHAR ;相等, CHAR 表基址和 R6中的偏移量 MOV A,R6 ;取出相应的字符码 MOVC A,A+DPTR MOV 42H,A ;字符码存于 42H BBB: MOV DPTR,#PCTL ; 重置控制字,让 AC为输出, B为输入 MOV A,#82H MOVX DPTR,A AAA: MOV A,42H ;将字符码从 C口送到二极管显示 MOV DPTR,#PC0 CPL A MOVX DPTR,A MOV DPTR,#PA ;判断按下的

11、键是否释放 CLR A MOVX DPTR,A MOV DPTR,#PB MOVX A,DPTR CPL A JNZ AAA ;没释放转 AAA MOV R5,#2 ;已释放则延时 0.2 秒, 减少总线负担 DEL1: MOV R4,#200 DEL2: MOV R3,#126 DEL3: DJNZ R3,DEL3 DJNZ R4,DEL2 DJNZ R5,DEL1 JMP START ;转 START NN1: INC DPTR ;指针指向后半字节即列线值 NN2: INC DPTR ;指针指向下一键码前半字节即行线值 INC R6 ;CHAR表偏移量加一 DJNZ R7,TT ;计数值减

12、一 , 不为零则转 TT继续查找 第 10 页 共 13 页 JMP BBB TABLE: DW 0FE06H,0FD06H,0FB06H,0F706H;TABLE为键值表,每个键位占 DW 0BF06H,07F06H,0FE05H,0FD05H; 两个字节,第一个字节为行 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,1

13、1H,12H,13H DB 14H,15H,16H,17H END 第 11 页 共 13 页 第 3 章所选元件清单 3.1元件清单: 表 3-1 元件清单 原件数量 电源座1 7805 1 IN4007 4 100UF/16V 1 按键9 32.768KHZ 1 12MHZ 1 1UF电容5 红色发光二极管5 绿色发光二级管4 数码管8 DIP40 1 DIP16 1 DIP 8 2 DIP20 1 9013 9 IN4148 4 STC89C51 或 STC89C52 1 74HC244或 74LS244 1 MAX232 1 24CO2 1 10K排阻4 100 电阻8 1K电阻9 2

14、K 电阻1 10K 电阻2 单排针2 0.1UF 电容2 15PF电容2 第 12 页 共 13 页 3.2 程序实际接线 数码管的不同笔段的组合构成了不同字符的字形。为了获得不同的字形,各笔段所 加的电平也不同,因此各个字形所形成的编码是不一样的。例如,对于共阳极数码管, 如果要显示字符 2,则笔段 a、b、g、e、d 发光,对应的引脚为低电平;其余各笔段不发 光,对应的引脚为该电平。所以字符2 的字形编码为如 dp gfedcba=10100100B=A4H。 阴极数码管的字形编码与用阳极数码管的字形编码是逻辑“非”的关系。根据上述编码 方法可以得出数码管显示的字符与对应的字形编码的关系,

15、如表3-2 所示 表 3-2 数码表的字形编码表 第 13 页 共 13 页 第 4 章课程设计心得 通过这次单片机课设,我更加清晰的认识了到了单片机内的引脚。 单片机的 40 个引脚按引脚功能大致可分为4 个种类:电源、时钟、控制和I/O 引脚。 电源: VCC - 芯片电源,接 +5V; VSS - 接地端; (用万用表测试单片机引脚电压一般为0v 或者 5v,这是标准 的 TTL电平。 但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0v-5v 之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机引脚电压仍保持 在 0v 或者 5v。 ) 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 控制线: 控制线共有 4 根, I/O 线 : 80C51共有 4 个 8 位并行 I/O 端口: P0、P1、P2、P3口,共 32 个引脚。 P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线) 5. P3口第二功能 P30 RXD 串行输入口、P31 TXD 串行输出口、 P32 INT0 外部中断 0(低电平有效)、 P33 INT1 外部中断 1(低电平有效)、P34 T0 定时计数器 0 、P35 T1 定时计数器 1 、 P36 WR 外部数据存储器写选通(低电平有效)、P37 RD 外部数据存储器读选通(低电 平

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1