⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 settime.c

📁 本科毕业设计做的一个小玩意。设计的语音播报记事器系统使用AT89S52单片机为微控制器
💻 C
字号:
     #include <reg51.h>
     #define uint unsigned int
     #define uchar unsigned char
     void dlms(void);
     uchar kbscan(void);



    void dlms(void)
    {
       uchar i;
       for(i=200;i>0;i--)
       {  }
    }

    uchar kbscan(void)
   {
      uchar sccode,recode;
      P2=0xf0;                             //p0.0---p0.3发全0,p0.4--p0.7输入
      if((P2&0xf0)!=0xf0)                  //如果p0口高四位不全为1,有键按下
       { dlms();                           //延时去抖动
         if((P2&0xf0)!=0xf0)               //重读输入值
          {  sccode=0xfe;                  //最底位置0
             while((sccode&0x10)!=0)       //不到最后一行循环
             { P2=sccode;                  //p0口输出扫描码
               if((P2&0xf0)!=0xf0)         //如果p0.4--p0.7不全为1,该行有键按下
                 { recode=P2&0xf0;
                   sccode=sccode&0x0f;     //保留p0口高四位输入值,低四位变为全1,作为列值
                   return(sccode+recode);
                 }
          else
             sccode=(sccode<<1)|0x01;      //如该行无键按下,查下一行,行扫描值左移一位
           }
        }
     }
     return(0);
   }
   
   void Settime()
{
   uchar keycode,number;
   uchar i=0;
   while(kbscan()!=0xb7)
  {
     keycode=kbscan();
     number=Key_number(keycode);
     if(number!=10&&number!=11&&number!=12&&number!=13&&number!=15)
    {
      led[i]=tab[number];
      i++;
    }
     if(i==14)
    {
      i=0;
    }  
  }
   
     void main(void)
    { uchar key;
      while(1)
      {
         key=kbscan();
         dlms();
      }
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -