华强电子网

电子元器件
采购信息平台

扫码下载
手机洽洽

  • 华强电子网公众号

    电子元器件原材料

    采购信息平台

  • 华强电子网移动端

    生意随身带

    随时随地找货

  • 华强微电子公众号

    专注电子产业链

    坚持深度原创

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业小灵通

十六进制键盘接口8051

来源:华强 作者:—— 浏览:6008

标签:

摘要: 即R1,R2,R3,R4,C1,C2,C3和C4。R1至R4代表四行和C1至C4表示的四列。当一个特定的键被按下时,相应的行和列的键连接的端子短路。例如,如果按下键1行R1和列C1短路等。该计划被称为列扫描方法确定哪个键被按下。在该方法中一个特定的行被保持在较低水平(其它行被保持高)和列检查低。如果一个特定的列低,这意味着该列的相应行保持在较低水平(行)之间连接的关键是被按下。例如行R1最初保持在较低水平和C1列在扫描过程中发现

这篇文章是关于接口的十六进制的8051微控制器的键盘。8051接口六角扳手垫一个明确的认识是非常必要的,而设计嵌入式系统需要的字符或数字输入或两个项目。例如项目,如数字密码锁,数字计算器等详细的接口之前,让我们来看看在十六进制键盘。

十六进制键盘。

六角键垫基本上是在一个4×4矩阵的形式排列的16个键的集合。内六角扳手垫通常有键代表数字0到9和字母A到F的一个典型的六角扳手垫在下面的图所示的简化框图。

4x4键盘

十六进制键盘

的十六进制的小键盘上有8个通信线路,即R1,R2,R3,R4,C1,C2,C3和C4。R1至R4代表四行和C1至C4表示的四列。当一个特定的键被按下时,相应的行和列的键连接的端子短路。例如,如果按下键1行R1和列C1短路等。该计划被称为列扫描方法确定哪个键被按下。在该方法中一个特定的行被保持在较低水平(其它行被保持高)和列检查低。如果一个特定的列低,这意味着该列的相应行保持在较低水平(行)之间连接的关键是被按下。例如行R1最初保持在较低水平和C1列在扫描过程中发现低,这意味着按下键1。

十六进制数字键盘8051的接口。

AT89S51的电路图显示接口的十六进制数字键盘8051显示below.Like以前的8051个项目,这里使用的是微控制器。该电路将显示压上的7段LED显示的字符/数字。该电路是非常简单,它使用的单片机,??只有两个端口,一个是十六进制键盘和其他的7段LED显示。

十六进制键盘接口8051

 十六进制键盘是连接到端口1和7段LED显示器是连接到微控制器的端口0。电阻器R1至R8的电流限制,通过对应的段的LED显示屏。电容器C1,C2和晶体X1完成为微控制器的时钟电路。电阻R9和电容C3,按钮开关S1形成一个防复位机制。

计划。

ORG 00H
MOV DPTR,#LUT / /移动到DPTR的起始地址LUT
MOV A,#11111111B / /加载一个为全1
MOV P0,#00000000B / /初始化P0为输出口

返回:MOV P1,#11111111B / /加载所有的P1
     CLR P1.0 / /第1行
     JB P1.4,下一个1 / /检查是否列1为低,并跳转到下一个1,如果不低
     MOV A,#0D / /加载0D如果列是低的(这意味着被按下键1)
     ACALL DISPLAY / /调用显示子程序
下一页1:JB P1.5,在NEXT2 / /检查是否第2栏低,所以...
      MOV A,#1D
      ACALL DISPLAY
NEXT2:JB P1.6,NEXT3的
      MOV A,#2D
      ACALL DISPLAY
NEXT3:JB P1.7,上一页下一页4
      MOV A,#3D
      ACALL DISPLAY
上一页下一页4:SETB P1.0
      CLR P1.1
      JB P1.4,NEXT5的
      MOV A,#4D
      ACALL DISPLAY
NEXT5:JB P1.5,NEXT6的
      MOV A,#5D
      ACALL DISPLAY
NEXT6:JB P1.6,NEXT7的
      MOV A,#6D
      ACALL DISPLAY
NEXT7:JB P1.7,下一页8
      MOV A,#7D
      ACALL DISPLAY
下一页8:SETB P1.1
      CLR P1.2
      JB P1.4,NEXT9的
      MOV A,#8D
      ACALL DISPLAY
NEXT9:JB P1.5,后10页
      MOV A,#9D
      ACALL DISPLAY
后10页:JB P1.6,NEXT11
       MOV A,#10D
       ACALL DISPLAY
NEXT11:JB P1.7,NEXT12
       MOV A,#11D
       ACALL DISPLAY
NEXT12:SETB P1.2
       CLR P1.3
       JB P1.4,NEXT13
       MOV A,#12D
       ACALL DISPLAY
NEXT13:JB P1.5,NEXT14
       MOV A,#13D
       ACALL DISPLAY
NEXT14:JB P1.6,NEXT15
       MOV A,#14D
       ACALL DISPLAY
NEXT15:JB P1.7,BACK
       MOV A,#15D
       ACALL DISPLAY
       LJMP BACK

显示:MOVC A,@ A + DPTR / /获取当前的关键数字驱动模式LUT
        MOV P0,A / /把相应的数字驱动模式P0
        RET

LUT:DB 01100000B / /查找表从这里开始
     DB 11011010B
     DB 11110010B
     DB 11101110B
     DB 01100110B
     DB 10110110B
     DB 10111110B
     DB 00111110B
     DB 11100000B
     DB 11111110B
     DB 11110110B
     DB 10011100B
     DB 10011110B
     DB 11111100B
     DB 10001110B
     DB 01111010B
     END

关于程序。

程序首先初始化端口0写全0和端口1为输入端口,通过写1到它作为一个输出端口。然后,该程序使行1低的结算P1.0和扫描列逐一进行低使用JB instruction.If列C1低,这意味着按下1和累加器加载的零和调用显示子程序。显示子程序的起始地址存储在DPTR和负载的LUT中的内容添加一个到的数据得到的地址点(使用指令MOVC A,@ A + DPTR)。本中的数据将是数字驱动模式的按键,这种模式是把用于显示端口0。通过这种方式,程序扫描,并把每个键在显示屏上,一旦发现被压。

注释。

  • 5V DC电源必须有充分的调节和过滤。
  • 列扫描识别的按键是不是唯一的方法。您可以使用也行扫描。行扫描特定的列保持在低水平(其它列保持高的)和行测试使用一个合适的分支指令。如果一个特定的行观察到低,那么这意味着,该行和相应的列(列保持低)之间连接的键被按下。例如,如果柱C1最初保持在较低水平,行R1在扫描过程中观察到低,这意味着被按下键1。
  • 在测试过程中使用的膜类型为十六进制键盘。按钮开关的类型和圆顶开关类型也可以工作。我没有检查其他类型。
  • 使用的显示器是一种常见的阴极7段LED显示型数ELK5613A的。这仅仅是信息和任何通用的共阴极7段LED显示器将在这里工作。
型号 厂商 价格
EPCOS 爱普科斯 /
STM32F103RCT6 ST ¥461.23
STM32F103C8T6 ST ¥84
STM32F103VET6 ST ¥426.57
STM32F103RET6 ST ¥780.82
STM8S003F3P6 ST ¥10.62
STM32F103VCT6 ST ¥275.84
STM32F103CBT6 ST ¥130.66
STM32F030C8T6 ST ¥18.11
N76E003AT20 NUVOTON ¥9.67