回覆列表
  • 1 # 使用者5080196806422

    ;P0口是段碼,共陰。

    ;P1.0是位碼

    ;按鍵16個在P3口

    ;按鍵用1S延時,沒有用等待鬆開確認

    ;按鍵只做了第一列00-12共4個按鍵,後3列02-15按鍵自己按照這個意思編寫

    ORG 0000H

    AJMP MAIN

    MAIN:

    SETB P1.0

    MOV P0,#00H

    SCAN:

    CLR P3.0

    ACALL DELAY1S

    JB P3.4,KEY04 ;是按鍵0嗎?不是就跳轉到按鍵4,如果是按鍵0被按下,顯示按鍵位號0.

    MOV A,#00H

    MOV DPTR,#TAB

    MOVC A,@A+DPTR

    MOV P0,A

    CLR P1.0

    LCALL SCAN

    KEY04:

    CLR P3.0

    ACALL DELAY1S

    JB P3.5,KEY08

    CLR P1.0

    MOV A,#04H

    MOV DPTR,#TAB

    MOVC A,@A+DPTR

    MOV P0,A

    CLR P1.0

    LCALL SCAN

    KEY08:

    CLR P3.0

    ACALL DELAY1S

    JB P3.6,KEY12

    CLR P1.0

    MOV A,#08H

    MOV DPTR,#TAB

    MOVC A,@A+DPTR

    MOV P0,A

    CLR P1.0

    LCALL SCAN

    KEY12:

    CLR P3.0

    ACALL DELAY1S

    JB P3.7,KEY02

    MOV A,#0CH

    MOV DPTR,#TAB

    MOVC A,@A+DPTR

    MOV P0,A

    CLR P1.0

    SETB P3.0

    LCALL SCAN

    KEY02:

    ;省略

    RET

    TAB:

    DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;Define定義段碼0、1、2、3、4、5、6、7、8、9

    DB 77H,7CH,39H,5EH,79H,71H,0FFH,73H,5CH,70H ;Define定義段碼A、B、C、D、E、F、滅、P、o、r

    DELAY1S: MOV R4,#08H

    MOV R5,#00H

    MOV R6,#00H

    DJNZ R4,$

    DELAY2: DJNZ R5,DELAY2

    DJNZ R6,DELAY2

    RET

    END

  • 中秋節和大豐收的關聯?
  • 日語裡對方說“お疲れ様でした”,我該怎麼回答?