云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 中山大学单片机实验六word精品文档9页

中山大学单片机实验六word精品文档9页

  • 62 次阅读
  • 3 次下载
  • 2025/6/5 10:52:57

实验六 键盘显示接口实验

一、实验目的

1、掌握8255A编程原理

2、了解键盘电路的工作原理(键盘电路见附图) 3、掌握键盘接口电路的编程方法 4、掌握LED数码管动态显示的编程方法 二、实验说明

1、识别键的闭合,通常采用行扫描法和行反转法

行扫描法是使键盘上某一行先为低电平,而其余行接高电平,然后读取列值,如所读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。

本实验采用的是行反转法

2、程序设计时,要学会灵活地对8255A的各端口进行方式设置

3、程序设计时,可将各键对应的键值(行线值,列线值)放在一个表中,将要显示的0~F字符放在另一个表中,通过查表来确定按下的哪一个键并正确显示出来 三、实验内容

内容一:利用8255A做矩阵键盘

一、利用实验箱上的8255A可编程并行接口芯片和矩阵键盘,编写程序,做到在键盘 每按一个数字键(0~F),用发光二极管将该代码显示出来。

二、连线方法:将键盘RL10~RL17接8255A的PB0~PB7;KA10~KA12接8255A的PA0~PA2;PC0~PC7接发光二极管的L1~L8;8255A芯片的片选信号8255CS接CS0。 三、代码 ;8255键盘实验 PA EQU 0CFA0H PB EQU PA+1 PC0 EQU PB+1 PCTL EQU PC0+1 ORG 4000H LJMP START ORG 4100H START: MOV STA1: MOV MOV

42H,#0FFH

DPTR,#PCTL A,#82H

;42H中放显示的字符码,初值为0FFH ;设置控制字,ABC口工作于方式0 ;AC口输出而B口用于输入

第 1 页

MOVX @DPTR,A LINE: MOV DPTR,#PC0

MOV A,42H CPL A MOVX @DPTR,A MOV DPTR,#PA MOVX @DPTR,A MOV DPTR,#PB MOVX A,@DPTR MOV 40H,A CPL A JZ LINE MOV R7,#10H

DL0: MOV R6,#0FFH DL1: DJNZ R6,DL1 DJNZ R7,DL0 MOV DPRT,#PCTL MOV A,#90H MOVX @DPTR,A MOV A,40H MOV DPTR,#PB MOVX @DPTR,A MOV DPTR,#PA MOVX

A,@DPTR

MOV 41H,A CPL A JZ STA1 MOV DPTR,#TABLE MOV R7,#18H MOV R6,#00H TT:

MOVX A,@DPTR CJNE A,40H,NN1 INC DPTR MOVX A,@DPTR CJNE A,41H,NN2 MOV DPTR,#CHAR MOV A,R6 MOVC A,@A+DPTR MOV 42H,A BBB:

;将字符码从C口输出显示

;从A口输出全零到键盘的列线 ;从B口读入键盘行线值 ;行线值存于40H中 ;取反后如为全零

;表示没有键闭合,继续扫描 ;有键按下,延时10MS去抖动

;重置控制字,让A为输入,BC为输出

;刚才读入的行线值取出从B口送出 ;从A口读入列线值 ;列线值为存入41H中 ;取反后如为全零 ;表示没有键按下 ;TABLE表首地址送DPTR ;R7中置计数值16 ;R6中放偏移量初值

;从表上取键码前半字节,行线值与实 ;际输入的行线值相等吗?不等转NN1 ;相等,指针指向后半字节,即列线值 ;列线值与列线值

;不相等吗?不等转NN2

;相等,CHAR表基址和R6中的依偏移量;取出相应的字条码

;字符码存于42H

;重置控制字,让AC为输出,B为输入

第 2 页

MOV MOV MOVX AAA: MOV MOV CPL A MOVX MOV CLR A MOVX MOV MOVX CPL A

DPTR,#PCTL A,#82H @DPTR,A A,42H DPTR,#PC0 @DPTR,A DPTR,#PA @DPTR,A DPTR,#PB A,@DPTR

;没有释放转AAA

;已释则延时0.2秒,减少总线负担

;判断按下的键是否释放

;将字符码从C口送到二极管显示

JNZ AAA MOV R5,#02 DEL1:

mov R4,#200 DEL2: MOV R3,#126 DEL3: DJNZ R3,DEL3 DJNZ R4,DEL2 DJNZ R5,DEL1 JMP START NN1: INC DPTR NN2: INC DPTR INC R6 DJNZ R7,TT JMP BBB

;转START

;指针指向后半字节即列线值

;指针指向下一键码前半字节即行线值 ;CHAR表偏移量加一

;计数值减一,不为零则转TT继续查找

TABLE: ;TABLE为键值表,每个键位占 DW 0FE06H,0FD06H,0FB06H,0F706H ;两个字节,第一个字节为行 DW 0BF06H,07F06H,0FE05H,0FD05H ;线值,第二个为列线值 DW 0EF05H,0DF05H,0BF05H,07F05H DW 0FB03H,0F703H,0EF03H,0DF03H CHAR: ;字符码表 DB 00H,01H,02H,03H,04H,05H,06H,07,08H,09H DB 0AH,0BH,0CH,0DH,0EH,0FH,10H,11H,12H,13H DB 14H,15H,16H,17H END

内容二:自编程序

一、设计一个3X3的矩阵键盘,行和列都与用单片机P1口直接相连,用扫描法编写程序读

第 3 页

取键盘信息,并在最左边数码管上直接显示出来。 二、边线方法

显示连线:数码管的段LEDA-LEDDp与LS273的00-07相连,LED1-LED6与P3.0-P3。5相连,CS273接CS0。

键盘连接:列线为KA10-KA12,对应的P1.4-P1.6;行线为:RL10-RL12,对应的P1.0-P1.2。 三、代码分析 PORT EQU 0CFA0H ORG 4000H MOV B,#31H MOV R0,#30H MAIN:

;****************************************************************************显示函数开始 PUSH ACC PUSH PSW ANL PSW,#0C7H ORL PSW,#10H DISPLAY: MOV CLR SUBB JZ NOP DS1: MOV MOV MOV MOV DS2: MOV ACALL MOV MOVX MOV CPL MOV MOV DEL: NOP DJNZ CLR MOV CLR MOV

A,B C

A,#30H NONUM

;调用显示函数

R0,B R4,#60H R2,#01H R5,#06H A,@R0 TABLE DPTR,#PORT @DPTR,A A,R2 A P3,A R3,#0FFH

;R0赋予要显示段码的地址 ;扫描需要显示60次 ;位码的初值

;即使只显示一位,也要扫描六位,防止数码管烧坏 ;A里面暂存RAM里的数据 ;取段码

;送段码的入口地址 ;送段码 ;读位码 ;取反 ;送位码 ;适当延时

A R3,DEL C A,R2

R2,A

;判断地是否结束 ;清C

;剩余五位均不显示

第 4 页

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

实验六 键盘显示接口实验 一、实验目的 1、掌握8255A编程原理 2、了解键盘电路的工作原理(键盘电路见附图) 3、掌握键盘接口电路的编程方法 4、掌握LED数码管动态显示的编程方法 二、实验说明 1、识别键的闭合,通常采用行扫描法和行反转法 行扫描法是使键盘上某一行先为低电平,而其余行接高电平,然后读取列值,如所读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。 本实验采用的是行反转法 2、程序设计时,要学会灵活地对8255A的各端口进行方式设置 3、程序设计时,可将各键对应的键值(行线值,列线值)放在一个表中,将要显示的0~F字符放在另一个表中,通过查表来确定按下的哪一个键并正确显示出来 三、实验内容 内容一:利用8255A做矩阵键盘

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com