基于单片机的键盘显示设计

控制/MCU

1878人已加入

描述

一、实验目的
   1、掌握8031系统中,扩展8279键盘显示接口的方法。
2、掌握8279工作原理和编程方法。
二、实验内容
1.实验原理图:单片机


 
2、实验内容
     在外接的键盘功能板上,按数字键,数码管上应相应能显示按下的数字,按下功能键,能相应执行其它功能程序。
3、实验说明
利用8279可以实现对键盘/显示器的自动扫描,以减轻CPU负担,具有显示稳定,程序简单,不会出现误动作等特点。本实验利用8279实现显示扫描自动化。
三、程序
程序清单:
              ORG     08F0H
HA7S:    MOV    SP,#53H
              MOV     DPTR,#0B001H
              MOV    A,#00H
              MOVX        @DPTR,A
              MOV    A,#32H
              MOVX        @DPTR,A
              MOV    A,#0DFH
              MOVX        @DPTR,A
HA7S1:  MOVX        A,@DPTR
              JB         ACC.7,HA7S1
              MOV    DPTR,#0B000H
              MOV    A,#0C8H
              MOVX        @DPTR,A
              INC      DPTR
              MOV    A,#80H
              MOVX        @DPTR,A
HA7S2:  MOV    30H,#80H
              MOV    31H,#40H
HA7S3:  MOV    DPTR,#0B001H
              MOVX        A,@DPTR
              ANL     A,#07H
              CJNE     A,#00H,HA7S4
              AJMP    HA7S3
HA7S4:  MOV    DPTR,#0B000H
              MOVX        A,@DPTR
              MOV    B,A
              MOV    R1,#00H
              MOV    DPTR,#KEYTAB
HA7S5:  MOV    A,#00H
              MOVC  A,@A+DPTR
              CJNE    A,B,HA7S6
              AJMP   HA7SA
HA7S6:  INC      DPTR
              INC      R1
              MOV    A,R1
              JB         ACC.4,HA7S7
              AJMP   HA7S5
HA7S7:  MOV    R1,#00H
       MOV    DPTR,#KEYTAB1
HA7S8:  MOV    A,#00H
              MOVC        A,@A+DPTR
              CJNE    A,B,HA7S9
              AJMP   HA7SC
HA7S9:  INC      DPTR
              INC      R1
              MOV    A,R1
              JNB      ACC.2,HA7S8
              AJMP   HA7SD
HA7SD: LJMP    HA7S
HA7SA: MOV    A,30H
              MOV    DPTR,#0B001H
              MOVX        @DPTR,A
              MOV    A,R1
              MOV    R0,31H
              MOV    @R0,A
              INC      31H
              MOV    DPTR,#CDATA
              MOVC        A,@A+DPTR
              MOV    DPTR,#0B000H
              MOVX        @DPTR,A
              INC      30H
              MOV    A,30H
              CJNE    A,#88H,HA7SB
              LJMP    HA7S2
HA7SB: AJMP   HA7S3
HA7SC: MOV    DPTR,#KJPADDR
              MOV    A,R1
              RLA
              ADD     A,R1
              JMP      @A+DPTR
KJPADDR:LJMP       LOOP0
              LJMP    LOOP1
              LJMP    LOOP2
KEYTAB: DB 0C1H,0C8H,0C9H,0D0H,0D8H,0E0H,0C2H,0CAH,0D1H,0D9H
              DB 0DAH,0C3H,0CBH,0D2H,0D3H,0DBH
KEYTAB1:DB 0E3H,0E2H,0E1H
CDATA: DB 0CH,9FH,4AH,0BH,99H,29H,28H,8FH,08H,09H,88H,38H
              DB 6CH,1AH,68H,0E8H
LOOP0: MOV    R5,#0CH
              LJMP     DISPC
LOOP1: MOV    R5,#9FH
              LJMP    DISPC
LOOP2: MOV    R5,#4AH
DISPC:  MOV    R6,#80H
DISPC1: MOV   A,R6
              MOV    DPTR,#0B001H
              MOVX        @DPTR,A
              MOV    A,R5
              MOV    DPTR,#0B000H
              MOVX        @DPTR,A
              MOV    R2,#20H
              LCALL        DELAY
              MOV    A,#0FFH
              MOVX        @DPTR,A
              INC      R6
              CJNE    R6,#88H,DISPC1
              AJMP   DISPC
DELAY: PUSH   02H
DELAY1: PUSH        02H
DELAY2: PUSH        02H
DELAY3: DJNZ        R2,DELAY3
              POP      02H
              DJNZ    R2,DELAY2
              POP      02H
              DJNZ    R2,DELAY1
              POP      02H
              DJNZ    R2,DELAY
              RET
              END
四、实验步骤
    ①将DVCC实验系统上J8插座与键盘显示板用扁平电缆相连。
    ②将KEY区D0—D7用8芯排线连到BUS2区XD0—XD7上。
    ③将KEY区WR、RD、ALE分别连到BUS3区XWR、XRD、ALE上。
    ④KEY区A0连到BUS1区XA0上。
    ⑤KEY区RST连到MP区SP上。
    ⑥KEY区KCS连到SELET区的Y3上。
    ⑦在DVCC实验系统上按F2键进入仿真1态,即显示“P.....”,从起始地址08F0H开始连续执行程序。
⑧功能板上数码管显示P,按下功能板上的数字键,数码管上显示相应的数字,按下功能键,数码管上显示相应的0字循环(LAST键)、1字循环(NEXT键)、2字循环(EXEC键)。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分