分享

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

 共同成长888 2014-05-08

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

已知电路:
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条评论

    发表

    请遵守用户 评论公约

    类似文章 更多