新闻  |   论坛  |   博客  |   在线研讨会
51单片机系列之三:开关和键盘
十年砍柴 | 2010-07-05 20:39:46    阅读:1333   发布文章

51单片机系列之三:开关和键盘

一、设计任务

1、如图1,单片机的P3.3~~P3.0接上开关SW4~~SW1(代表0000~~1111)P0口接上一排组,排阻接在数码管上。开关断开时,为高电平,闭合为低电平。

2、如图2,单片机的P0口接上数码管,P3.0~~P3.3接上键盘的行,P3.4~~P3.7接上键盘的列。按相应的键盘显示相应的数字(0~~F

二、电路原理图

       1——1:开关全断开时(即开关1111),数码管显示“F

          1——2SW4~~SW1(1001)时,显示数字“9

2——1:按下键盘上的“2”,显示数组“2

      2——2:按下键盘上的“8”,显示数组“8

     2——3:按下键盘上的“F”,显示数组“F

三、设计程序

//SW4~~SW1对应显示数字      

       ORG 0

       SJMP START

       ORG 30H

START: MOV P0,#0FFH

   ST: MOV P3,#0FFH

       MOV A,P3

         ANL A,#0FH

         ACALL SEG7

         MOV P0,A

         SJMP ST

SEG7:  INC A

       MOVC  A,@A+PC

         RET

       DB 0C0H,0F9H,0A4H,0B0H

       DB 99H,92H,82H,0F8H

       DB 80H,90H,88H,83H

       DB 0C6H,0A1H,86H,8EH

END

//按相应的键盘显示相应的数字(0~~F

    LINE EQU 30H

    ROW  EQU 31H

    VAL  EQU 32H

      ORG  00H

START:MOV DPTR,#TABLE

      MOV P2,#00H

LSCAN:MOV P3,#0F0H

   L1:JNB P3.0,L2

      LCALL DELAY

      JNB P3.0,L2

      MOV LINE,#00H

      LJMP RSCAN

   L2:JNB P3.1,L3

      LCALL DELAY

      JNB P3.1,L3

      MOV LINE,#01H

      LJMP RSCAN

   L3:JNB P3.2,L4

      LCALL DELAY

      JNB P3.2,L4

      MOV LINE,#02H

      LJMP RSCAN

   L4:JNB P3.3,L1

      LCALL DELAY

      JNB P3.3,L1

      MOV LINE,#03H

RSCAN:MOV P3,#0FH

   C1:JNB P3.4,C2

      MOV ROW,#00H

      LJMP CALCU

   C2:JNB P3.5,C3

      MOV ROW,#01H

      LJMP CALCU

   C3:JNB P3.6,C4

      MOV ROW,#02H

      LJMP CALCU

   C4:JNB P3.7,C1

      MOV ROW,#03H

CALCU:MOV A,LINE

      MOV B,#04H

      MUL AB

      ADD A,ROW

      MOV VAL,A

      MOVC A,@A+DPTR

      MOV P2,A

      LJMP LSCAN

DELAY:MOV R6,#20

   D1:MOV R7,#250

      DJNZ R7,$

      DJNZ R6,D1

      RET

TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H

      DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H

      END
注意:由于Proteus图纸不能正常显示,如有需要,联系QQ:646038584

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客