首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

单片机中怎么控制led显示

2012-06-06 
单片机中如何控制led显示通过键盘扫描,LED第一位显示第一次按下的值,第二位显示第二次按下的值,同时第一位

单片机中如何控制led显示
通过键盘扫描,LED第一位显示第一次按下的值,第二位显示第二次按下的值,同时第一位的值不变,P1用于选择led,P0用于设置显示的数字,P2用于扫描键盘,我设定了一个buff[3],和一个Index每次输入index++,用于存放每次输入的数字,然后在通过一个循环
for(k=0;k<3;k++)
{
P1=led[k];
P0=buff[k];
SoftDisplay(1);//延迟
}
把值显示出来,现在总是不成功,。我现在的问题是按下一个键,每一位都显示当前按下的数字了·之前输入的值显示不了·请问我这个思路对不对?

[解决办法]
1楼的“这代码风格就非常不好”?不明白。我觉得风格很好。
LZ应该是从VC转到单片机的C(如KEIL C)的。

1、LZ思路是对的。
2、从LZ描述来看,LZ应该是这个做法:第1次按键存入buff[0],第2次按键存入buff[1],第3次按键存入buff[2]……
3、从LZ仅有的代码来看,每次for循环后,尽管有延时,但总是最后一次数据(buff[2])保留着显示。
4、LED还有一个位PIN,用以选择在不同的位上显示。LZ的代码好像没有选择位PIN,所以每个位都显示相同的了。

热点排行