新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機簡單易懂矩陣式鍵盤程序

        51單片機簡單易懂矩陣式鍵盤程序

        作者: 時間:2016-11-23 來源:網絡 收藏
        ;30H存列號31H存行號32H裝鍵值,要改鍵盤的值排列可以通過改變后面TAB的值。

        ;程序構思,先給鍵盤的接入口p1賦0F0H,通過檢測p1.4-p1.7那個出現低電平,舉例如果是p1.4那列有鍵按

        本文引用地址:http://www.104case.com/article/201611/320385.htm

        ;下則p1.4出現低電平,則跳到y0得到列號為0,接下來分別給p1.4-p1.7賦0,看什么時候p1.4在那出現低電

        ;平,則可以得到行號,最終計算行號*4+列號就可以得到鍵盤的值,如果要修改矩陣鍵盤鍵值排列,則可以

        ;通過查表,計算出的前期鍵值只是作為一個地址。不知表述是否清楚了

        SCAN:MOV P1,#0F0H ;鍵盤掃描程序
        JNB P1.4,Y0 ;判斷列
        JNB P1.5,Y1
        JNB P1.6,Y2
        JNB P1.7,Y3
        SJMP SCAN

        Y0:MOV 30H,#00H ;賦列號
        MOV P1,#0FEH
        JNB P1.4,X0
        MOV P1,#0FDH
        JNB P1.4,X1
        MOV P1,#0FBH
        JNB P1.4,X2
        MOV P1,#0F7H
        JNB P1.4,X3

        Y1:MOV 30H,#01H
        MOV P1,#0FEH
        JNB P1.5,X0
        MOV P1,#0FDH
        JNB P1.5,X1
        MOV P1,#0FBH
        JNB P1.5,X2
        MOV P1,#0F7H
        JNB P1.5,X3

        Y2:MOV 30H,#02H
        MOV P1,#0FEH
        JNB P1.6,X0
        MOV P1,#0FDH
        JNB P1.6,X1
        MOV P1,#0FBH
        JNB P1.6,X2
        MOV P1,#0F7H
        JNB P1.6,X3

        Y3:MOV 30H,#03H
        MOV P1,#0FEH
        JNB P1.7,X0
        MOV P1,#0FDH
        JNB P1.7,X1
        MOV P1,#0FBH
        JNB P1.7,X2
        MOV P1,#0F7H
        JNB P1.7,X3

        X0:MOV 31H,#00H ;賦行號
        ACALL DELAY
        MOV P1,#0F0H
        LJMP JISUAN

        X1:MOV 31H,#01H
        ACALL DELAY
        MOV P1,#0F0H
        LJMP JISUAN

        X2:MOV 31H,#02H
        ACALL DELAY
        MOV P1,#0F0H
        LJMP JISUAN

        X3:MOV 31H,#03H
        ACALL DELAY
        MOV P1,#0F0H
        LJMP JISUAN

        JISUAN:MOV A,31H
        MOV B,#04H
        MUL AB
        ADD A,30H
        MOV DPTR,#TABLE
        MOVC A,@A+DPTR
        MOV 32H,A
        RET


        delay:MOV R4,#0C5H ;鍵掃延時
        DEL1:MOV R5,#43H
        DEL0:MOV R6,#10H
        DJNZ R6,$
        DJNZ R5,DEL0
        DJNZ R4,DEL1
        RET


        TABLE:DB 01H,02H,03H,04H,05H,06H,07H,08H,09H,00H,0AH,0BH,0CH,0DH,0EH,0FH ;鍵盤值



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 临沧市| 股票| 徐州市| 镇坪县| 赣州市| 龙泉市| 闸北区| 南川市| 汽车| 阿尔山市| 射洪县| 平定县| 福州市| 德钦县| 和静县| 武陟县| 泽州县| 商城县| 瓮安县| 保山市| 临泽县| 澄江县| 彭泽县| 高邮市| 镇宁| 和平县| 建瓯市| 泗洪县| 姚安县| 西峡县| 澄城县| 莆田市| 海口市| 博乐市| 康保县| 广昌县| 屏山县| 贵南县| 商都县| 浦江县| 修水县|