大神帮我看一个程序可以吗

2019-07-15 18:57发布

我的目的是通过P1^0引脚读取外部给的低电平次数 然后根据低电平次数去执行一些指令 比如另LED等闪烁   但是写到片子里接上高电平LED灯也不停闪烁  谢谢。。。

#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char     //头文件包含特殊功能寄存器的定义

sbit LED=P1^0;// 用sbit 关键字 定义 LED到P1.0端口,
sbit REC=P0^1; //REC是自己任意定义且容易记忆的符号, 接收置零。

void delay25ms(void);   //误差 0us
void delay100ms(void);
void delay500ms(void);
void cont(int); //相应控制指令
unsigned int  N;
int scan_REC();         //接收置零次数。
unsigned int  key;
void delay50ms(void);   //误差 -0.000000000011us


void main()
{
  while(1)

        { int m=1,n=0;
          REC = 1;
          while (!REC)         
       {       
           for( ;m<2;m++)
            {
                 delay25ms( );
            }
                        n++;
            delay100ms();
           switch( n )
                    {case 1: LED=0;delay500ms();LED=1;break;
            case 2: LED=0;delay500ms();LED=1;delay500ms();LED=0;delay500ms();LED=1;break;

                        default:;
                }  
                }
                }
                }

void delay500ms(void)   //误差 -0.000000000114us
{
    unsigned char a,b,c;
    for(c=98;c>0;c--)
        for(b=127;b>0;b--)
            for(a=17;a>0;a--);
    _nop_();  //if Keil,require use intrins.h
}


void delay100ms(void)   //误差 -0.000000000023us
{
    unsigned char a,b;
    for(b=221;b>0;b--)
        for(a=207;a>0;a--);
}

void delay25ms(void)   //误差 -0.000000000006us
{
    unsigned char a,b,c;
    for(c=3;c>0;c--)
        for(b=76;b>0;b--)
            for(a=49;a>0;a--);
}

  void delay50ms(void)   //误差 -0.000000000011us
{
    unsigned char a,b,c;
    for(c=3;c>0;c--)
        for(b=44;b>0;b--)
            for(a=173;a>0;a--);
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
BBOYBL
1楼-- · 2019-07-16 07:06
变味的面包 发表于 2014-8-1 18:32
我的意图如图 不知你能不能看明白?

看不懂你想表达的意思!
风中落泪的花
2楼-- · 2019-07-16 07:48
for( ;m<2;m++)
             {
                  delay25ms( );
             }
你这个是用来干嘛的,看不懂,如果有用的话,二楼正解

还有 你的switch()语句好像要放到while(!REC)外面去,你的n是用来干什么的,如果是用来计低电平的次数的,那么switch()中case就不是才2中情况了。
呆呆1991
3楼-- · 2019-07-16 10:18
 精彩回答 2  元偷偷看……

一周热门 更多>