打印
[国产单片机]

子函数放在 主函数前和后有着不同的影响?

[复制链接]
1273|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pass1876|  楼主 | 2014-3-4 22:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近学习51开发板例程,突然发现子函数放在主函数前面和后面有着不同的状况,例子:主函数放在前面:工作正常,主函数放在后面,工作不正常。下面是程序,很简单,大家分析下:
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit k1=P0^0;//按键1
sbit k2=P0^1;//按键2

void delay(unsigned int i);
unsigned char scan_key();
void process_key(unsigned char key_v);

main()
{
   uchar key_s,key_v;
    key_v=0x03;
   P2=0xfe;
   while(1)
   {
           key_s=scan_key();
        if(key_s!=key_v)
        {
        delay(10);
        key_s=scan_key();        //按键消抖
        if(key_s!=key_v)
        {
                key_v=key_s;
                process_key(key_v);
        }
        }
   }
}
//这里未子函数和主函数界限
void delay(uint i)
{
uint j;
        for(i;i>0;i--)
                for(j=255;j>0;j--);

}

uchar scan_key()//扫描按键
{
        uchar key_s;
        key_s=0x00;
        key_s|=k2;
        key_s<<=1;
        key_s|=k1;
        return key_s;       
}

void process_key(uchar key_v)         //处理按键
{
        if((key_v&0x01)==0)
        {
                P2=_cror_(P2,1);
        }
        else if((key_v&0x02)==0)
        {
                P2=_crol_(P2,1);
        }
}

相关帖子

沙发
McuPlayer| | 2014-3-10 02:01 | 只看该作者
子函数放置位置,没影响
但C语言应该先声明,再使用。所以,子函数在后,那么前面先声明一下即可

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

134

帖子

1

粉丝