设计程序,用数码管显示按键编号

来源:互联网 发布:华为怎样隐藏软件 编辑:程序博客网 时间:2024/06/10 03:41

已知电路:
P1.0~P1.7,分别接了8个按键K1~K8,按键按下时,将输入低电平;
P2接了一个共阴数码管;
P3.0接了一个按键,接地;
P3.7接了一个LED到电源。

设计要求:
按下K1,数码管显示1;
按下K2,数码管显示2;
……
按下K8,数码管显示8;
没有键按下,显示0。
同时按下几个K,只是显示号码最大的,如K2和K6同时按下,只是显示6。
另外,如果P3.0输入低电平,则在P3.7输出高电平。
悬赏分:100 - 解决时间:2010-7-2 17:08
================================================================
最佳答案:
程序如下:
;----------------------------------------------------------
        ORG 0000H
M_LOOP:
        CLR A
        MOV B, P1
        JNB B.7, ADD_8
        JNB B.6, ADD_7
        JNB B.5, ADD_6
        JNB B.4, ADD_5
        JNB B.3, ADD_4
        JNB B.2, ADD_3
        JNB B.1, ADD_2
        JNB B.0, ADD_1
        MOV P2, #3FH          ;没有按键,显示0
        MOV C, P3.0
        CPL C
        MOV P3.7, C
        SJMP M_LOOP
;----------------------------------------------------------
ADD_8: INC A
ADD_7: INC A
ADD_6: INC A
ADD_5: INC A
ADD_4: INC A
ADD_3: INC A
ADD_2: INC A
ADD_1: INC A
;----------------------------------------------------------
        MOV DPTR, #TAB
        MOVC A, @A+DPTR          ;查出段码.
        CPL A
        MOV P2, A               ;有按键就显示键盘号码
        SJMP M_LOOP
TAB:
        DB   0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H, 90H
;----------------------------------------------------------
END
;----------------------------------------------------------
用PROTEUS运行结果如下:

设计程序,用数码管显示按键编号 - 非著名博主 - 电子信息角落

图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/d6f5355db7e7bd7df9f2c064.html
================================================================
回答者:   做而论道 - 十三级   2010-7-2 16:03
提问者对于答案的评价:3Q !
原题网址:http://zhidao.baidu.com/question/164035127.html

0 0
原创粉丝点击