新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 課程設計:矩陣鍵盤掃描(匯編)

        課程設計:矩陣鍵盤掃描(匯編)

        作者: 時間:2016-11-18 來源:網(wǎng)絡 收藏

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

        //比較簡單的匯編矩陣鍵盤掃描程序
        //P2口高四位接列線,第四位接行線

        //源程序和proteus仿真我一打包,地址:http://proteus.5d6d.com/thread-9013-1-1.html
        ORG0000H
        AJMPMAIN

        ORG0030H
        MAIN:MOVP2,#0F0H;給列送高電平
        LCALLDELAY;延時,使電路穩(wěn)定下來
        MOVR4,00H
        MOVA,P2;取P2口的值
        ANLA,#0F0H;屏蔽行線的影響
        CJNEA,#0F0H,L;如果有鍵按下,就跳轉到L
        DESPLAY:
        MOVA,R7
        MOVDPTR,#TABLE
        MOVCA,@A+DPTR
        MOVP1,A
        AJMPMAIN

        L: LCALLDELAY;延時去除抖動
        MOVA,P2;重新取值
        JBACC.4,L1;P2.4這一列有鍵按下?沒有則跳轉到L1
        MOVR3,#00H;R3用作記列號
        AJMPQ1

        L1: JBACC.5,L2
        MOVR3,#01H
        AJMPQ1

        L2: JBACC.6,L3
        MOVR3,#02H
        AJMPQ1

        L3:JBACC.7,MAIN
        MOVR3,#03H
        AJMPQ1

        Q1: MOVP2,#0FH;給行送高電平
        LCALLDELAY;延時,穩(wěn)定電路
        MOVA,P2;取值
        ANLA,#0FH;屏蔽高四位
        JBACC.0,Q2;判斷是不是第0行,不是則轉移
        MOVR4,#00H;如果是,那把0送給R4(R4存行(轉換為鍵號))
        AJMPJIA

        Q2: JBACC.1,Q3
        MOVR4,#04H
        AJMPJIA

        Q3: JBACC.2,Q4
        MOVR4,#08H
        AJMPJIA

        Q4: JBACC.3,MAIN
        MOVR4,#0CH
        AJMPJIA

        JIA: MOVA,R3 ;行號加上列號就是改鍵的值
        ADDA,R4
        MOVR7,A;調整后放在R7寄存器中
        AJMPMAIN

        DELAY:MOVR6,#20H;仿真時測試延時為13ms

        Q6: MOVR5,#0BBH
        DJNZR5,$
        DJNZR6,Q6
        RET

        //下面為0-f的字形表
        TABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H
        DB7CH,39H,5EH,79H,71H;

        END



        評論


        技術專區(qū)

        關閉
        主站蜘蛛池模板: 内乡县| 泸溪县| 鹤壁市| 定边县| 凤冈县| 辽源市| 和顺县| 沅陵县| 盐池县| 台南市| 孟连| 拜泉县| 黑龙江省| 沙洋县| 色达县| 息烽县| 股票| 梅州市| 清远市| 金寨县| 陈巴尔虎旗| 余庆县| 泾阳县| 莱阳市| 河曲县| 田东县| 闵行区| 平塘县| 永济市| 清水县| 嘉兴市| 三亚市| 平山县| 长葛市| 五寨县| 东乌珠穆沁旗| 宜章县| 海南省| 德江县| 盐池县| 叶城县|