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

    }

  • 相关阅读:
    34.页面刷新 Walker
    32.标题栏图标 Walker
    44.相对路径 Walker
    白乔原创:实战软件DIY
    白乔原创:VC之美化界面篇
    白乔原创:在公司里,你会是什么样的程序员?
    白乔原创:程序员的路该怎么走?
    白乔原创:VC之控件篇
    08年5月份培训的照片一张
    关于resin的认证框架
  • 原文地址:https://www.cnblogs.com/wongsh/p/7967167.html
Copyright © 2020-2023  润新知