基于单片机的读矩阵键盘 ,用数码管显示相应键值 - 深圳led背光源生产厂家,lcd显示屏,lcm液晶显示模块|模组厂-欧陆娱乐


  • 欧陆娱乐



  • 


  •  深圳市欧陆娱乐产品分类列表

    联系我们

    公司名称 :深圳市欧陆娱乐光电有限公司
    厂址 :中国.广东省.深圳市宝安西乡臣田工业区

    营销专线
    吴先生 手机 :13538278608
    胡先生 手机:13823360976
    固定电话:86-0755-28246146/
    28246906/28246536/28247229
    电话传真:86-0755-89715671
    投诉与售后咨询 黄小姐:13823217679
    胡先生:13928021976

    Email:bly@sdgfj.net

    公司网址 :https://www.sdgfj.net/

    基于单片机的读矩阵键盘,用数码管显示相应键值

    基于单片机的读矩阵键盘 ,用数码管显示相应键值

    /*****************************************************

    007.ASM

    接线:P0口接数码管

    P2接矩阵键盘

    用定时中断,若一段时间无操作 ,数码管进入自到循环显示

    *******************************************************/

    ORG 0000H

    LJMP MAIN

    ORG 000BH

    LJMP INT_T0

    ORG 0020H

    MAIN: ;主程序

    MOV SP,#50H

    MOV DPTR,#LED_DATA ;取表首地址

    MOV TMOD,#01H ;设置定时器T0工作模式

    MOV TH0,#15H ;写计时初值

    MOV TL0,#9FH

    MOV P2,#0FFH ;P2口赋初值

    MOV R4,#00H ;赋定时计数初值

    SETB 00H ;00H为键值改变标志位

    SETB TR0 ;启动定时器T0

    MOV IE,#82H ;开中断

    LCALL SHOW ;数码管初始化

    loop: ;主循环

    LCALL KEY_READ ;读键盘

    JBC 00H,LOOP0 ;判断是否有键被按下,有则转去刷新输出并清零定时计数

    CJNE R4,#0C8H,LOOP ;没有键被按下,则判断定时时间是否达到,到,则进入数码管循环输出

    LCALL SHOW1 ;没到  ,则回到主循环,重新扫描键盘

    SJMP LOOP

    LOOP0:

    LCALL SHOW

    MOV R4,#00H

    SJMP LOOP ;输出刷新完毕,回到主循环,重新扫描键盘

    /*键盘扫描程序*/

    KEY_READ:

    CLR P2.6 ;P2.6输出低

    JB P2.0,N0_0

    MOV R0,#01H

    LCALL DELAY

    JB P2.0,N0_0

    JNB P2.0,$

    MOV R5,#04H

    SETB 00H

    SETB P2.6

    LJMP NEAT

    N0_0:

    JB P2.1,N0_1

    MOV R0,#01H

    LCALL DELAY

    JB P2.1,N0_1

    MOV R5,#03H

    JNB P2.1,$

    SETB 00H

    SETB P2.6

    LJMP NEAT

    N0_1:

    JB P2.2,N0_2

    MOV R0,#01H

    LCALL DELAY

    JB P2.2,N0_2

    JNB P2.2,$

    MOV R5,#02H

    SETB 00H

    SETB P2.6

    LJMP NEAT

    N0_2:

    JB P2.3,N1_0

    MOV R0,#01H

    LCALL DELAY

    JB P2.3,N1_0

    JNB P2.3,$

    MOV R5,#01H

    SETB 00H

    SETB P2.6

    LJMP NEAT

    N1_0:

    SETB P2.6

    CLR P2.5

    JB P2.0,N1_1

    MOV R0,#01H

    LCALL DELAY

    JB P2.0,N1_1

    JNB P2.0,$

    MOV R5,#08H

    SETB 00H

    SETB P2.5

    LJMP NEAT

    N1_1:

    JB P2.1,N1_2

    MOV R0,#01H

    LCALL DELAY

    JB P2.1,N1_2

    JNB P2.1,$

    MOV R5,#07H

    SETB 00H

    SETB P2.5

    LJMP NEAT

    N1_2:

    JB P2.2,N1_3

    MOV R0,#01H

    LCALL DELAY

    JB P2.2,N1_3

    JNB P2.2,$

    MOV R5,#06H

    SETB 00H

    SETB P2.5

    LJMP NEAT

    N1_3:

    JB P2.3,N2_0

    MOV R0,#01H

    LCALL DELAY

    JB P2.3,N2_0

    JNB P2.3,$

    MOV R5,#05H

    SETB 00H

    SETB P2.5

    LJMP NEAT

    N2_0:

    SETB P2.5

    CLR P2.4

    JB P2.0,N2_1

    MOV R0,#01H

    LCALL DELAY

    JB P2.0,N2_1

    JNB P2.0,$

    MOV R5,#0CH

    SETB 00H

    SETB P2.4

    LJMP NEAT

    N2_1:

    JB P2.1,N2_2

    MOV R0,#01H

    LCALL DELAY

    JB P2.1,N2_2

    JNB P2.1,$

    MOV R5,#0BH

    SETB 00H

    SETB P2.4

    LJMP NEAT

    N2_2:

    JB P2.2,N2_3

    MOV R0,#01H

    LCALL DELAY

    JB P2.2,N2_3

    JNB P2.2,$

    MOV R5,#0AH

    SETB 00H

    SETB P2.4

    LJMP NEAT

    N2_3:

    JB P2.3,NEAT

    MOV R0,#01H

    LCALL DELAY

    JB P2.3,NEAT

    JNB P2.3,$

    MOV R5,#09H

    SETB 00H

    SETB P2.4

    LJMP NEAT

    NEAT:

    SETB P2.4

    RET

    /*显示子程序*/

    SHOW:

    MOV A,R5

    MOVC A,@A+DPTR

    MOV P0,A

    RET

    /*循环显示子程序*/

    SHOW1: ;

    MOV R3,#00H

    LOOP1:

    MOV A,R3

    MOVC A,@A+DPTR

    MOV P0,A

    MOV R0,#35H

    LCALL DELAY

    INC R3

    LCALL KEY_READ

    JB 00H,RETUN1

    CJNE R3,#10H,LOOP1

    MOV R3,#00H

    SJMP LOOP1

    RETUN1:

    RET

    /*延时子程序*/

    DELAY:

    D0: MOV R2,#0FH

    D1: MOV R1,#0BFH

    D2: DJNZ R1,D2

    DJNZ R2,D1

    DJNZ R0,D0

    RET

    /*定时中断T0处理子程序*/

    INT_T0:

    CLR EA

    PUSH ACC

    INC R4

    MOV TH0,#15H

    MOV TL0,#9FH

    POP ACC

    SETB EA

    RETI

    /*数码管显示代码,0~F*/

    LED_DATA:

    DB 03H,9FH,25H,0DH,99H,49H,41H,1FH

    DB 01H,09H,11H,0C1H,63H,85H,61H,71H

    END

    
    首 页 | 公司简介 | 企业荣誉 | 产品中心 | 新闻中心 | 联系我们 | 集团首页

    版权所有 深圳市欧陆娱乐光电有限公司     粤ICP备08129267号-1


  • XML地图