zoukankan      html  css  js  c++  java
  • 按键与静态数码管

    #include<reg51.h>
    #include<intrins.h>
    
    #define GPIO_LED P2                  //将P2口另外取名为GPIO_LED
    #define GPIO_KEY P0
    
    void Delay10ms(unsigned int);           //误差 0us
    
    /*******************************************************************************
    * 函数名           : main
    * 函数功能         : 主函数
    * 输入             : 无
    * 输出              : 无
    *******************************************************************************/
    
    unsigned char code DIG_CODE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9的值
    void main(void)
    {
        //unsigned char n;
        int i,j;
        j=~DIG_CODE[0];
        
        while(1)
        {
            GPIO_LED = j;
            if(GPIO_KEY!=0xFF)
            {
                Delay10ms(1);
                if(GPIO_KEY==0xFE)//1111 1110
                {
                    j=~DIG_CODE[1];
                }    
                if(GPIO_KEY==0xFD)//1111 1101
                {
                    j=~DIG_CODE[2];
                }
                if(GPIO_KEY==0xFB)//1111 1011
                {
                    j=~DIG_CODE[3];
                }
                if(GPIO_KEY==0xF7)//1111 0111
                {
                    j=~DIG_CODE[4];
                }                
                if(GPIO_KEY==0xEF)//1110 1111
                {
                    j=~DIG_CODE[5];
                }
                if(GPIO_KEY==0xDF)//1101 1111
                {
                    j=~DIG_CODE[6];
                }
                if(GPIO_KEY==0xBF)//1011 1111
                {
                    j=~DIG_CODE[7];
                }
                if(GPIO_KEY==0x7F)//0111 1111
                {
                    j=~DIG_CODE[8];
                }
                while((i<50)&&(GPIO_KEY!=0xFF))     //检测按键是否松开
                {
                    Delay10ms(1);
                    i++;
                }
                i=0;
            }
        }    
    }
    /*******************************************************************************
    * 函数名         : Delay10ms
    * 函数功能           : 延时函数,延时10ms
    * 输入           : 无
    * 输出              : 无
    *******************************************************************************/
    void Delay10ms(unsigned int c)   //误差 0us
    {
        unsigned char a,b;
        for(;c>0;c--)
            for(b=38;b>0;b--)
                for(a=130;a>0;a--);
    }
  • 相关阅读:
    JavaScript 数组去重
    Javascript数组 reduce() 方法
    Vue事件总线(EventBus)
    前端多媒体-音频
    前端多媒体-视频
    VUE3.0 总结
    el-select地区区号选择
    vue中点击获取相应元素
    Markdown 语法
    Codeforces Round #295 (Div. 2) B. Two Buttons 520B
  • 原文地址:https://www.cnblogs.com/hnhcc39/p/3450517.html
Copyright © 2011-2022 走看看