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

发布者:创新火花最新更新时间:2011-02-16 手机看文章 扫描二维码
随时随地手机看文章

一、实验目的
   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键)。

引用地址:基于单片机的键盘显示设计

上一篇:基于单片机的系统扩展
下一篇:基于单片机的工业顺序控制

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved