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
 {
 }

}

原文地址:https://www.cnblogs.com/wongsh/p/7967167.html