zoukankan      html  css  js  c++  java
  • 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
     {
     }

    }

  • 相关阅读:
    小技巧
    sql日期函数
    c#发送邮件
    js点滴
    Js序列化时间
    js中string的操作
    原系统中有AD FS , CRM Server ,迁移ADFS 到另一台电脑 , CRM Server用443端口出错
    解决UR 12后ISV目录不能用的问题
    Lucene .Net 版本
    Android 开源项目
  • 原文地址:https://www.cnblogs.com/wongsh/p/7967167.html
Copyright © 2011-2022 走看看