51单片机4*4矩阵键盘求平方问题

要求按下S1时数码管显示001,按下S2时数码管显示004,以此类推,按下S16时数码管显示256
但是我的程序下载到单片机里 按下S1时仅仅第三个数码管显示1(前两个的00数码管只是亮一下就灭了),后面的2的平方一直到16的平方全是这种效果

是你转换成显示码错了吧,数码管的显示可不是你直接送数就行的,得把256分成三个数,第一个显示2第二个显示5第三个显示6,每个数码管最大显示到9。
你的程序第三个为16,这样大于9了,你得分成1和6这样才行。追问

http://pan.baidu.com/s/1BsGRo
我的程序

追答

我没空看你的程序,你自己查下十进制转换,显示译码部分的程序吧,问题就出现在这里。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-01
程序不看我们也不知道哪里不对啊...追问

程序太长,传不上来,我分享到百度网盘了
http://pan.baidu.com/s/1BsGRo

追答

因为你的dispaly()函数没有循环
动态显示是要不断的循环的
你这样肯定只显示最后一位了

本回答被提问者采纳

51单片机4*4矩阵键盘求平方问题
是你转换成显示码错了吧,数码管的显示可不是你直接送数就行的,得把256分成三个数,第一个显示2第二个显示5第三个显示6,每个数码管最大显示到9。你的程序第三个为16,这样大于9了,你得分成1和6这样才行。

单片机中的4×4矩阵键盘的键值怎么求?
可以用下述代码进行:\/\/*** \/\/函数功能: \/\/单片机驱动4*4键盘,读入键盘值并使用数码管静态 \/\/显示按键键值,若没有数码管用8421码显示LED灯也可以的 \/\/读入原理:先令单片机端口输出11110000读一次,然后 \/\/再令单片机输出00001111读一次把两次的值相加,最后 \/\/获取一个高位和低位分别有...

单片机4×4矩阵键盘扫描编程问题(里面详细,欢迎高手)
扫描第一行,就是将第一行电平置为低电平,其他的都为高,扫描哪一行就让哪一行的电平置零,其他行为高电平。这就是第一个问题。在没有键按下的时候,列线全部是高电平,有第一行的键按下的时候,相应的列线就为低电平了,n=P1;n&=0xf0;if(n!=0xf0)这几句就是判断有没有键按下。在第...

单片机中的4×4矩阵键盘的键值怎么求?
既然是4x4,即4行4列了,共需要8个I\/O口,有8bit数据(如高四位为行4bit,低四位为列4bit)位:xxxx xxxx。还要结合你的程序来编码键值,如果有键按下了,查询所有按键的所连接的I\/O口电平状态,每个按键需要两个I\/O口,一端连接行(行4bit之一),一端连接列(列4bit之一);若此时按键的...

关于51单片机矩阵键盘的问题。
(2)4X4 矩阵键盘的8根线直接连在IO上,而独立按键有一根线固定是接地的,这就意味着必须采取扫面或者线反转的方法。比如其中一根行线赋0,相当于这一行的四个按键变成了四个独立按键,在读取列线的值就知道了究竟哪个按键被按下了。 此时P3口就出现了特定的电平组合,相当于特征码了,然后再...

用89C51单片机设计4*4矩阵式键盘计算器程序 要汇编的
DELY4ms: MOV R6,#8 ;延时4毫秒D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RETDELY10ms:MOV R6,#20 ;延时10毫秒D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 RETTABLE: DB 07H, 04H, 01H ; \/ 本表格是以键盘为参考 7 8 9 \/ DB 08H, 05H, 02H ; * 4 5 6 * DB 09H, 06H, 03H ;...

C51单片机用IO口做为几个按键的控制,现在想用4X4键盘控制,请问下面显示...
这样我们可以先识别K01、K02、K03、K04、K05,若没有按键按下然后再和思路四的设计一样去识别其他按键。但这样存在一个问题,如果IO1配置为0,IO5读到0,那么怎么知道是K51按下还是K05按下呢,这里只需要在程序里做下判断,先判断下是不是K05按下,若不是就是K51,因为按键K01、K02、K03、K04、...

谁能给我讲明白单片机的4x4矩阵键盘工作原理
4x4矩阵键盘的工作原理是在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,通过读入输入线的状态就可得知是否有键被按下。

能不能用mcs-51单片机做一个4x4矩阵键盘及四位显示电路 实现四位数加 ...
四位数加减,要用5位数码管才能正确显示结果,加法的结果可能出现5位。减法的结果,可能出现负数和4位值,这都需要5位数码管才能显示出来。至于实现代码,百度一下,有很多的,下来后稍加修改就可以了。不要期望得到完全符合你要求的代码,那样一方面出现几率较低,另一方面也不利于你的学习。

帮忙看看这个51单片机的计数器程序哪里出问题了吧,用矩阵键盘控制的
1、数码管显示部分的问题,没有消 0 ,C 语言中变量初值都是 0 ,所以一开始就会显示 0 如果你不想让显示 0 ,那就要写消 0 的程序,就加两句话,很简单的 2、键盘处理部分的问题,如果确认你的键盘检测是对的,那么就是键值处理部分的问题了 3、51都是加法计数器,如果你要想进行减法计数的...

相似回答
大家正在搜