您当前的位置:五五电子网电子知识单片机-工控设备源码-程序采用AT89S51的并行口P1接4×4矩阵键盘程序 正文
采用AT89S51的并行口P1接4×4矩阵键盘程序

采用AT89S51的并行口P1接4×4矩阵键盘程序

点击数:7947 次   录入时间:03-04 12:04:03   整理:http://www.55dianzi.com   源码-程序

    1.实验任务

    如图4.14.2所示,用AT89S51的并行口P1接4×4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线;在数码管上显示每个按键的“0-F”序号。对应的按键的序号排列如图4.14.1所示 点击浏览下一页  

     

    图4.14.1

    2.硬件电路设计原理图

    5676  

     

     

    图4.14.2

    3.系统板上硬件连线设计

    (1.      把“单片机系统“区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4 R1-R4端口上;

    (2.      把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。

    4.  程序设计内容

    (1.      4×4矩阵键盘识别处理

    (2.      每个按键有它的行值和列值 ,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。

    5.程序框图

    56756 

    图4.14.3



www.55dianzi.com

    6.汇编源程序代码

    KEYBUF    EQU 30H

                ORG 00H

    START:      MOV KEYBUF,#2

    WAIT: 

                MOV P3,#0FFH

                CLR P3.4

                MOV A,P3

                ANL A,#0FH 

                XRL A,#0FH

                JZ NOKEY1

                LCALL DELY10MS

                MOV A,P3

                ANL A,#0FH

                XRL A,#0FH

                JZ NOKEY1

                MOV A,P3

                ANL A,#0FH

                CJNE A,#0EH,NK1

                MOV KEYBUF,#0

                LJMP DK1

    NK1:        CJNE A,#0DH,NK2

                MOV KEYBUF,#1

                LJMP DK1

    NK2:        CJNE A,#0BH,NK3

                MOV KEYBUF,#2

                LJMP DK1

    NK3:        CJNE A,#07H,NK4

                MOV KEYBUF,#3

                LJMP DK1

    NK4:        NOP

    DK1:   

                MOV A,KEYBUF

                MOV DPTR,#TABLE

                MOVC A,@A+DPTR

                MOV P0,A

     

    DK1A:      MOV A,P3

                ANL A,#0FH

                XRL A,#0FH

                JNZ DK1A

    NOKEY1:

                MOV P3,#0FFH

                CLR P3.5

                MOV A,P3

                ANL A,#0FH

                XRL A,#0FH

                JZ NOKEY2

                LCALL DELY10MS

                MOV A,P3

                ANL A,#0FH

                XRL A,#0FH

                JZ NOKEY2

                MOV A,P3

                ANL A,#0FH

                CJNE A,#0EH,NK5

                MOV KEYBUF,#4

                LJMP DK2

    NK5:        CJNE A,#0DH,NK6

                MOV KEYBUF,#5

                LJMP DK2

    NK6:        CJNE A,#0BH,NK7

               MOV KEYBUF,#6

                LJMP DK2

    NK7:        CJNE A,#07H,NK8

                MOV KEYBUF,#7

                LJMP DK2

    NK8:        NOP

    DK2:   

                MOV A,KEYBUF

                MOV DPTR,#TABLE

                MOVC A,@A+DPTR

                MOV P0,A

     

    DK2A:      MOV A,P3

                ANL A,#0FH

                XRL A,#0FH

                JNZ DK2A

    NOKEY2:

                MOV P3,#0FFH

                CLR P3.6

[1] [2] [3] [4]  下一页


本文关键字:暂无联系方式源码-程序单片机-工控设备 - 源码-程序