键盘开关LED与直接单片机程序控制LED亮度差距大(已解决

2019-07-16 04:58发布

本帖最后由 minDragon 于 2012-8-4 09:58 编辑

是这样的,我P1上接了限流电阻和8个小的LED灯,写入程序到STC52单片机里去点亮P1上的LED灯时,亮度很亮。

但,当我P3接了独立键盘,去控制8个小LED灯亮灭时,却发现按下键盘,灯是亮了 但亮度很暗 很暗。。键盘控制的程序如下。 我是真实写入单片机里面测试的,不是仿真。。求高手。。


#include<reg51.h>
void delay(unsigned char x)      //延时
{
   unsigned char i;
   while(x--)
   for(i=0;i<125;i++){}
}

void main()
{ unsigned char i=0;
do
{
    if(P3==0xfb)          //P3.3接键盘
    {
     delay(10);
     if(P3==0xfb)   
     P1=0x0f;          //LED阳极接VCC,阴极接P1端口,这里是P1.4~P1.7的灯点亮
    }
}
while(i>0);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
lstcspring
1楼-- · 2019-07-16 10:28
改成这样试一下do
{
    if(P3==0xfb)          //P3.3接键盘
    {
     delay(10);
     if(P3==0xfb)   
     P1=0x0f;          //LED阳极接VCC,阴极接P1端口,这里是P1.4~P1.7的灯点亮
    }
}
while(1);
minDragon
2楼-- · 2019-07-16 15:26
 精彩回答 2  元偷偷看……
秩宙
3楼-- · 2019-07-16 21:03
{:1:}
SMYNEML
4楼-- · 2019-07-17 02:25
按键使用软件消抖时最好把按下和软延时和二次判定写到一起,执行部分可以在大括号内,这样结构思路好,条例清晰.

一周热门 更多>