打印

学习51:求一个4x4键盘LED显示键值的汇编程序

[复制链接]
5977|37
手机看帖
扫描二维码
随时随地手机跟帖
沙发
chenczy| | 2008-9-3 10:34 | 只看该作者

这个要看电路才好怎么编程

    不同的电路,程序也不同的

使用特权

评论回复
板凳
kuernikewa|  楼主 | 2008-9-4 09:39 | 只看该作者

RE

使用特权

评论回复
地板
kuernikewa|  楼主 | 2008-9-4 09:50 | 只看该作者

re

我把图贴上来了,希望各位指点一下!
下面是我写的程序,不知道哪里出了问题,请指点迷津:
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:
ACALL KEY1
ACALL DISPLAY
AJMP MAIN
KEY:
MOV P1,#0FH      //置行为0,列为1 
MOV A,P1      //读P1口 
CJNE A,#0FH,KEY1
AJMP KEY
KEY1:
ACALL DELAY      //延时消抖 
MOV P1,#0FH      //再读 
MOV A,P1
CJNE A,#0FH,KEY2
AJMP KEY
KEY2:
MOV B,A          //存列值 
MOV P1,#0EFH  //判断行值 
MOV A,P1
CJNE A,#0EFH,KEY3
MOV P1,#0DFH
MOV A,P1
CJNE A,#0DFH,KEY3
MOV P1,#0BFH
MOV A,P1
CJNE A,#0BFH,KEY3
MOV P1,#7FH
MOV A,P1
CJNE A,#7FH,KEY3
AJMP KEY
KEY3:
ANL A,#0FH     //存行值 
ORL A,B         //计算键值 
MOV B,A         //暂存键值 
MOV R1,#16     //比较的次数 
MOV R2,#0     //等效键值初值 
MOV DPTR,#KEYTAB
KEY4:
MOVC A,@A+DPTR
CJNE A,B,KEY6  //键值与键码表值比较 
MOV P1,#0FH        //相等则等待按键释放 
KEY5:
MOV A,P1
CJNE A,#0FH,KEY5
ACALL DELAY
MOV A,R2      //存等效键值 ,即最终显示的值 
RET
KEY6:
INC R2          //不相等则继续查表比较 
DJNZ R1,KEY4
AJMP KEY
KEYTAB:
DB 0EEH,0DEH,0BEH,7EH
DB 0EDH,0DDH,0BDH,7DH
DB 0EBH,0DBH,0BBH,7BH
DB 0E7H,0D7H,0B7H,77H
DISPLAY:          //取等效键值查表显示 
MOV DPTR,#SEGTAB
MOVC A,@A+DPTR
MOV P0,A
RET
SEGTAB:
DB 0C0H,0F9H,0A4H,0B0H//共阴LED,0,1,2,3 
DB 99H,92H,82H,0F8H               //4,5,6,7 
DB 80H,90H,88H,03H               //8,9,A,B 
DB 0A7H,0A1H,04H,8EH            //C,D,E,F 
DELAY:
MOV R6,#0
LOOP1:
MOV R7,#0
LOOP2:
DJNZ R7,LOOP2
DJNZ R6,LOOP1
RET
END

使用特权

评论回复
5
kuernikewa|  楼主 | 2008-9-4 10:13 | 只看该作者

使用特权

评论回复
6
krstc| | 2008-9-4 18:15 | 只看该作者

推荐用c写吧

为何非要汇编?c写多好,简洁明了。

使用特权

评论回复
7
mohanwei| | 2008-9-4 18:37 | 只看该作者

可能是习题……

使用特权

评论回复
8
救火车| | 2008-9-4 19:23 | 只看该作者

非要汇编的吗?

使用特权

评论回复
9
qq87109369| | 2008-9-4 23:47 | 只看该作者

请教:他这是用得什么软件画的图,谢谢

使用特权

评论回复
10
老虎今晚打| | 2008-9-5 00:46 | 只看该作者

isis

使用特权

评论回复
11
qq87109369| | 2008-9-5 07:44 | 只看该作者

楼主

楼主能不能把你那个软件发一个给我啊,告诉我下载地址也行,谢谢
89-51@163.com

使用特权

评论回复
12
shanfei| | 2008-9-5 09:23 | 只看该作者

下载

到中关村在线去下载一个抓图软件
 

使用特权

评论回复
13
chenczy| | 2008-9-5 09:45 | 只看该作者

P0口加上拉

    不知道你的LED是怎么样的,不过P0口要加上拉

使用特权

评论回复
14
kuernikewa|  楼主 | 2008-9-5 09:49 | 只看该作者

re

proteus仿真软件,网上都可以随便下载。

使用特权

评论回复
15
kuernikewa|  楼主 | 2008-9-5 09:49 | 只看该作者

re

初学,最好还是先把汇编理解才行啊

使用特权

评论回复
16
kuernikewa|  楼主 | 2008-9-5 09:50 | 只看该作者

re

这个仿真软件可以不用上拉电阻,直接接上就行

使用特权

评论回复
17
kuernikewa|  楼主 | 2008-9-5 09:51 | 只看该作者

re

有没有哪位大哥帮我指点一下程序啊?可能是显示部分有问题,但是一直都不知道怎么弄

使用特权

评论回复
18
dengm| | 2008-9-5 13:58 | 只看该作者

键盘一般一次只处理一个键 (SCAN CODE).


        MOV A, P1
        ANL A, KEY_MASK
        JZ THE_KEY_IS_DOWN
;THE_KEY_IS_UP:



THE_KEY_IS_DOWN:

使用特权

评论回复
19
kuernikewa|  楼主 | 2008-9-5 15:12 | 只看该作者

re

好心人能发个程序上来参考一下吗?可以用其他算法

使用特权

评论回复
20
emailli| | 2008-9-5 15:29 | 只看该作者

你先把自己的按键扫描思路写出来!

代码一般没有人帮你看的

看了也没有用

授之以渔才是王道

不过在授之前,希望知道你自己是怎么想的!

如果你可以自己做出一个 扫描流程图。

我想,这个问题你就已经可以自己解决了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

102

帖子

0

粉丝