中关村元坤智造工厂,注册立享优惠!

国内专业的IC销售商
北京耐芯威科技有限公司
Beijing NaiXinWei Technology Co., Ltd.

产品与服务

利用8279实现显示扫描自动化

    1、实验内容

    在外接的键盘功能板上,按数字键,数码管上应相应能显示按下的数字,按下功能键,能相应执行其它功能程序。

    2、实验原理图

    3、实验说明

    利用8279可以实现对键盘/显示器的自动扫描,以减轻CPU负担,具有显示稳定,程序简单,不会出现误动作等特点。本实验利用8279实现显示扫描自动化。

    4、实验步骤

    ①将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键)。

    5、程序

    程序清单:

    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