×
单片机 > 单片机程序设计 > 详情

矩阵键盘按键LED显示相应键值-汇编

发布时间:2020-06-05 发布时间:
|
;/***********************************************************************************
;*  描述: 花费了一天时间写这个小程序,发表于此,以此为激励自己继续向着单片机前进      *    
;*            按矩阵键盘上的键对应的LED显示相应键值 *    
;*            矩阵键盘定义:                        *
;*            P1.1-P1.3为行线,P1.4-P 1.7为列线         *
;             P0口接led显示                                                                                                                       *     
;********************************************************************************/


ORG 0000H
    JMP MAIN

MAIN:
     MOV P0,#0FFH   ;初始化端口口
     MOV P1,#0FFH

 

KEYDOWN:        ;;;;判断是否有键按下部分
     MOV P1,#0F0H
     LCALL DELAY
     MOV A,P1

     CJNE A,#0F0H,KEYSCAN
     JMP KEYDOWN

 

KEYSCAN:   ;;扫描键值部分222
     MOV A,#00H
     MOV P1,#0F0H

     MOV A,P1
     CJNE A,#70H,N1
     MOV R4,#03H
        JMP NEXT
N1:     CJNE A,#0B0H,N2
       MOV R4,#02H
                 JMP NEXT
N2:     CJNE A,#0D0H,N3
       MOV R4,#01H
                 JMP NEXT
N3:     CJNE A,#0E0H,NEXT
        MOV R4,#00H
       JMP NEXT
   
NEXT:
     MOV P1,#00FH

     MOV A,P1

     CJNE A,#07H,N4
     MOV R3,#08H
       JMP NEXT1
N4:     CJNE A,#0BH,N5
       MOV R3,#04H
                 JMP NEXT1
N5:     CJNE A,#0DH,DISPLAY

       MOV R3,#00H
       JMP DISPLAY 

DISPLAY:                      ;显示部分
     MOV A,R4
     ADD A,R3 
     MOV DPTR,#LEDTAB
     MOVC A,@A+DPTR
       MOV P0,A
                 LCALL DELAY
                 LCALL DELAY
     MOV P0,#0FFH
     LJMP KEYDOWN
   
    
DELAY:                     ;消抖延时部分   
           MOV  R6,#25
 D2:      MOV  R7,#100
                 DJNZ  R7,$
                 DJNZ  R6,D2
                 RET

 

LEDTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H

     END



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
8051单片机的函数发生器的设计