这个程序,没有灯亮,大神请赐教

2019-07-15 09:08发布

#include<reg51.h>

#define uchar unsigned char

sbit D1=P0^7;
sbit D2=P0^6;
sbit k1=P1^0;

uchar num;

void delay(uchar);

void main()
{
        P0=0x00;
        while(1)
        {
                if(k1==0);
                {
                        delay(10);
                        D1=0;
                }
                if(k1!=0);
                {
                        delay(10);
                        D2=0;
                }
        }
}

void delay(uchar z)
{
        uchar x,y;
        for(x=z;x>0;x--)
                for(y=100;y>0;y--);
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
将军问鼎
1楼-- · 2019-07-15 14:30
看你这个程序好像是 一个按键控制两个灯吧, 先确认一下IO是不是对的,然后看一下 是高电平亮还是低电平亮
wulinwl
2楼-- · 2019-07-15 19:09
 精彩回答 2  元偷偷看……
人中狼
3楼-- · 2019-07-15 19:56
查看电路吧,看程序你的灯是阳极接正,单片机引脚置0则灯亮,那么开关只有0和1两个状态,所以总会有一个灯是亮的,P0口需要接上拉电阻,灯需要加一个限流电阻,另外程序里没有关灯的操作,也就是D1,D2置1的操作,所以假设电路正确,程序正确的话,你的灯在进行过一次按键操作后,灯就会常亮不灭了
6华仔
4楼-- · 2019-07-16 01:35
看看灯是高还是低电平点亮
6华仔
5楼-- · 2019-07-16 07:30
看看灯是高还是低电平点亮
6华仔
6楼-- · 2019-07-16 09:53
把k1设为准双向模式

一周热门 更多>