2017.12.3 函数进阶与按键

函数的调用

如果函数在主函数之后详写,函数在主函数之间必须加声明。

实参:就是调用函数时,括号里面的参数

形参:被调用函数时定义的函数,括号里面的参数叫形参。

按键消抖 按键按下会有抖动,需要延时10ms

#include<reg52.h>

sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;

sbit KEY4 = P2^7;

unsigned char code LedChar[]={
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
};

bit KeySta = 1;

void main()
{
bit backup = 1;
unsigned char cnt = 0;

EA = 1;
ENLED = 0;
ADDR3 = 1;
ADDR2 = 0;
ADDR1 = 0;
ADDR0 = 0;
TMOD = 0x01;
TH0 = 0xF8;
TL0 = 0xCD;
ET0 = 1;
TR0 = 1;
P2 = 0xF7;
P0 = LedChar[cnt];

while(1)
{
if(KeySta != backup)
{
if(backup == 0)
{
cnt++;
if(cnt >= 10)
{
cnt = 0;
}
P0 = LedChar[cnt];
}
backup = KeySta;
}

}
}

void InterruptTimer0() interrupt 1
{
static unsigned char keybuf = 0xFF;

TH0 = 0xF8;
TL0 = 0xCD;

keybuf = (keybuf <<1) |KEY4;
if(keybuf == 0x00)
{
KeySta = 0;
}
else if(keybuf == 0xFF)
{
KeySta = 1;
}
else
{
}

}