这个矩阵键盘的程序问什么只能够显示1,5 ,9号。其他的怎么不行了。

作者&投稿:挚段 (若有异议请与网页底部的电邮联系)
矩阵键盘程序,按键按一下显示出来一串~

key,1~16,代表按键的号码,还不够。

还应该有个键值,代表没有按键(即松开)时情况,比如,等于0。

当显示了一个键值之后,应该等待按键等于0之后,再显示。

这样,按键、显示,必须松开;再按键,才显示下一个,不会显示一连串。

ORG 00H
STRAT: MOV R4, #00H
L1: MOV R3, #0F7H
MOV R1, #00H
L2: MOV A, R3
MOV P3, A
MOV A, P3
MOV R4, A
SETB C
MOV R5, #04H
L3: RLC A
JNC KEY
INC R1
DJNZ R5, L3
MOV A, R3
SETB C
RRC A
MOV R3, A
JC L2
JMP L1
KEY: ACALL DELAY
D1: MOV A, P3
XRL A,R4
JZ D1
MOV A, R1
ACALL DISP
JMP L1
DISP: MOV DPTR, #TABLE
MOVC A, @A+ DPTR
MOV P0, A
RET
DELAY: MOV R7, #60
MOV R6, #248
DLY1: DJNZ R6, $
DJNZ R7, DLY1
RET
TABLE: DB 0C0H, 0F9H, 0A4H, 0B0H
DB 99H, 92H, 82H, 0F8H
DB 80H, 90H, 88H, 83H
DB 0C6H, 0A1H, 86H, 8EH
END89c51的,很经典,不懂的可以问我。

……
case 108:----应该是128。几个地方,都错了。
P0=table[7];
break;
default :
break;
……


矩阵键盘检测,求解,程序自己写的,按键没反应。
矩阵键盘检测,求解,程序自己写的,按键没反应。 #include<reg52.h>#include<74hc595.h>#include<boardinit.h>#include<delay.h>#defineucharunsignedchar#defineuintunsignedintsbitwela=P2^6;sbitdula=P2^5;ucharnum,temp;ucharcod... #include<reg52.h>#include<74hc595.h>#include<boardinit.h>#include<...

51单片机矩阵键盘输入0-999999的任意数的问题?
0-999999,最多有6位数,因此可声明一个 6 byte的数组keybuffer[6]和一个存储数字位数的变量bitnum unsigned char keybuffer[6];unsigned char bitnum=0 ;if(key<10){ keybuffer[bitnum] = key ;bitnum ++ ;}\/\/如果用数码管显示,直接把keybuffer的值送显就可以了 \/\/如果还需把值算出...

写一个2*4的矩阵式按键的检测程序,方便移植
单片机系统区域P3.0-P3.7端口用8芯排线连接4X4行列式键盘区域C1-C4 R1-R4端口;单片机系统区域P0.0\/AD0-P0.7\/AD7端口用8芯排线连接四路静态数码显示模块区域任a-h端口;要求:P0.0\/AD0应着aP0.1\/AD1应着b……P0.7\/AD7应着h 程序设计内容 4×4矩阵键盘识别处理 每按键行值列值...

矩阵键盘程序,按键按一下显示出来一串
key,1~16,代表按键的号码,还不够。还应该有个键值,代表没有按键(即松开)时情况,比如,等于0。当显示了一个键值之后,应该等待按键等于0之后,再显示。这样,按键、显示,必须松开;再按键,才显示下一个,不会显示一连串。

求一个在矩阵键盘按一个键,串口助手显示一个数字的程序。
矩阵键盘是485信号,你买一个485转232的,用串口就可以收到了

单片机编程问题(C语言),很入门的问题,明天比赛,急急急!多少分都可以...
下列程序已经调好,按键显示电路可见:http:\/\/hi.baidu.com\/%D7%F6%B6%F8%C2%DB%B5%C0\/blog\/item\/ef086222268d4f4eac34de59.html \/\/单片机:使用51系列兼容的即可;\/\/4×4矩阵键盘:接在P1口;\/\/两位数码显示器: P0口输出七段码,P2口输出位选码。\/=== \/\/C语言程序如下。\/ 文件名...

一个51单片机矩阵键盘控制发光二极管的问题。
如果用的是Keil编译器,你的位取反表达式是错误的,请参考以下程序段改动:while(1){ LED = 0;\/\/将这句安排在这里,原case后面的那些LED = 0;就可以全部不要了。LED=keyscan();switch(LED){ case 1:D1=~D1;break;case 2:D2=~D2;break;case 3:D3=~D3;break;case 4:D4=~D4;br...

请问各位大侠,高手。在这个按键程序中是如何分析的?
你这个应该是4*4的矩阵键盘扫描程序 你可以用假设的方法来理解这个程序 假设有个按键按下(否则就是全ff)有按键按下那么 当低4位输入1的时候应该有一个输出和其他的不一样(键盘的另一端应该是接地) 同理输入高的时候也有唯一对应的一个值 这样就得到了唯一的按键值 查表既得键值 ...

用51单片机和C语言编程.利用矩阵键盘依次显示1,2,3,4,5.……12的平方...
你的while循环写的有问题,既然要先判断行选再判断列选,应该用两级的switch语句,而不是两级wihile语句,你现在的写法只循环了第二级的第一个while循环,所以只有处于第二级while的switch的三按(其实看代码应该是四个)键个管用。。。

有关4X4矩阵键盘FPGA的程序的分析,有谁帮我分析一下这个状态机的程序啊...
是应该还有col的输出,这才是整个扫描程序的重点。如果扫描的原理懂了的话,程序好像也没这么难理解啊,简单讲一下,在NO_KEY_PRESSED,col输出0000,如果有按键按下,当前行的row连接到col,则按下的那一行电平为0,转到SCAN_COL0。行值由row可知,开始逐列扫描以确定列值;在SCAN_COL0状态,col...

漳州市19513016556: 我编了一个4*4矩阵键盘程序 但只可以显示一位数,如何动态显示两位或两位以上的数? #include<reg51.h> ma -
石秦海立: 需要建立一个显示缓冲区,把按键输入的数字,保存起来,依次显示.参考一下,不懂可以留言:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/f2005aed12e7a52a63d09f80.html

漳州市19513016556: 4*4矩阵键盘控制四位数码管显示单片机C语言程序:如果输入少于4位 则全部显示,如果多余4位 则显示最后4位 -
石秦海立: 这个问题的最大关键不在显示,而是在输入,你输入必须要设置输入缓存区,和输入保存的区域,还有显示的缓存区,当你的输入小于4位的时候,将输入保存里的数据转入显示缓存,当输入大于4位的时候,你讲保存的数据后四位转入显示缓存,这样就可以了.你不能再显示里面解决这个问题,因为你一个单片机,4个数码管,明显只能用动态显示,再来判断的我话,任务就很乱了,所以你只有在输入的时候将要现实的数据准备好,这样显示函数就只负责显示就可以了,速度又快,又不会出错,关键是你在将输入保存区的数据转入显示缓存的时候不要出错.祝你进步.

漳州市19513016556: 51单片机4*4矩阵键盘控制数码管显示,下面的程序不能实现? -
石秦海立: uchar aa,bb,cc,dd,num,i,key,shu; …… num=num*10+i; if(num>1000) num=0; …… num, 0~255,能大于 1000 ?键盘程序,太滥了,去掉一大半,就够用了.

漳州市19513016556: 郭天祥的51单片机,我写明明是检测矩阵键盘的,最后出来就变成了独立建盘的了, -
石秦海立: 第一:你最好把现象结果说清楚,你这个键盘显示出来肯定只会是0 1 2 3.第二:你这个矩阵键盘函数还是跟着郭天祥写的步子走,你使用两个while而没有第二个if不知是怎么回事.希望我的回答能帮助到你.

漳州市19513016556: 为什么我的单片机这个矩阵键盘程序没用,求帮助 -
石秦海立: 你这个地方就是在等待松手啊:while(temp!=0xf0)/*松手检测*/ { temp=P1; temp=temp&0xf0; } 所以你的按键程序就是松手后返回num.不过你的按键检测程序过于复杂 unsigned char getkey( void ) { unsigned char keycode = 0xff; KEY_PORT = ...

漳州市19513016556: 跪求6X6矩阵键盘的程序,用的是共阴极两位一体数码管,只要在上面显示就好了...... -
石秦海立: 用了单片机是吗?先来个“行”扫描,再来个“列”扫描.(记得扫描后去抖动哦!)然后,通过“扫描码”查表,将所得值移到“显示缓冲区”就可以了.所谓显示缓冲区就是利用定时中断将位码及“八字”码送到数码管的输出口.

漳州市19513016556: 关于单片机矩阵键盘程序问题
石秦海立: 我也看到这里遇到这个问题,想了很久 ,想明白了,特地告诉你. P3赋给temp, 确实没有跳出循环,但是这个switch里包含了4个按键,程序可以在CASE之间切换,也就是可以按出1/2/3/4来,但是只能按1/2/3/4,不能跳出来;这里如果不把P3赋给temp,则只能按出一个键的数字来.后来又加了个松手检测,在里面和0xf0又与了一次,赋给temp,这个时候就能跳出循环了.前面这里确实有点问题,没有跳出循环,只能读1/2/3/4.

漳州市19513016556: 用c51单片机按下4*4矩阵按键,数码管显示0 - F,能正常显示,只是0号和7号有时会出错,请高手帮忙, -
石秦海立: /************************************************************类型:矩阵键盘.现象:按下键盘后,数码管显示相应的数字0-F【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! ************************************************************/ #...

漳州市19513016556: 【求解释】单片机最简单的矩阵键盘代码(只有三句) -
石秦海立: 用手机提问最大的“优点”是不能给你源代码,因为长度会超标.我之前开发的有AVR/51开发板,里面有这个矩阵键盘带显示的程序,可是粘贴不上啊,字数限制.你可以给个邮箱发给你,或者登上百度Hi,直接给你.

漳州市19513016556: 求一个用汇编语言编写的4*4矩阵键盘的程序,且显示输入的数字在四位数码管上, -
石秦海立: 4*4矩阵键盘的程序,且显示输入的数字在四位数码管上 --太普通了.--任何单片机的教材上,一般,都有这样的程序和电路.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网