微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 不到十行的程序,就是没法实现功能

不到十行的程序,就是没法实现功能

时间:10-02 整理:3721RD 点击:
#include<reg51.h>//库文件
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int //宏定义无符号整型
sbit LED=P1^0;// (即P1.0)为指示端
sbit DOUT=P2^0;// (即P2.0)为传感器的输入端
void delay_50ms(int t)
{
        int j;
        for(;t>0;t--)
            for(j=6245;j>0;j--);
}
/********************************************************************
主函数
*********************************************************************/
void main()
{
   while(1) //无限循环
{
   LED=1;//熄灭P1.0口灯
   if(DOUT==0)//当浓度高于设定值时 ,执行条件函数
     {
        delay_50ms(20);//延时抗干扰
          if(DOUT==0)//确定 浓度高于设定值时 ,执行条件函数
            {
                LED=0;//点亮P1.0口灯
                        }
                  else
                  {
                         LED=1;
                    }
            }
}
}

我是程序爱好者,只会一点简单的东东,感觉大括号有问题,我只是猜测,一种貌似的感觉。希望有高手指点。

现象是否一直都是灯灭?因为你把LED灯的初始化语句LED=1;//熄灭P1.0口灯,放在了while循环里面了。每次点亮LED很快就被熄灭了,看不到。

你的应该是煤气传感器的程序吧
#include<reg52.h>
sbit DOUT=P2^7;       
sbit AOUT=P2^6;
sbit Beep =  P1^4 ;
void delay(unsigned int i)
{
    char j;
    for(i; i > 0; i--)
        for(j = 200; j > 0; j--);
}
void main()
{
        while(1)
        {
            if(DOUT==0)
                        {
                                 Beep= 1;
                                 delay(5);
                                 Beep= 0;
                                 delay(5);
                     }
        }
}
你试试吧  不是LED是蜂鸣器的

把LED=1;放在while(1)的前面。

  LED=1;//熄灭P1.0口灯
可以直接不写,51单片机IO口在默认情况下是处于高电平的,

3楼正解
LED灯的初始化语句LED=1;//熄灭P1.0口灯,放在了while循环里面了。每次点亮LED很快就被熄灭了,看不到。

你的程序没有包含头文件名

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top