• 大小: 0.02M
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: 其他
  • 标签: 其他  

资源简介

八路抢答器.7z

资源截图

代码片段和文件信息

#include
unsigned char ntk;
void delay() //定时10ms,采用定时器1,工作方式1实现
{
   TH1=0xd8; //设置10ms定时初值
   TL1=0xf0;
   TR1=1;     //启动定时器1
   while(!TF1); //判断10ms定时时间到
   TF1=0;
}

unsigned char a[]={0xff0xf90x240xb00x990x920x820xf80x80};
void main()     //主函数
{   
   unsigned char i;
   TMOD=0x10; //设置定时器1工作方式1
   P1=0xff;
   P3=0xff;     //P1口作为输入口,置全1
   i=0;
   while(1)
   {
   if(P3!=0xff)    //开始抢答
      {
    P2=0xfe;
        while(i==0)  //循环判断是否有键按下
        {
           i=P1; //读按键状态
           i=~i; //按键状态取反
        }
       delay();  //有键按下,延时10ms去抖
       do {
           i=P1;     //再次读按键状态
           i=~i;      //按键状态取反
          } while(i==0);
       switch(i) //根据键值调用不同的处理函数
        {
          case 0x01: n=1;P0=a[n];break;
          case 0x02: n=2;P0=a[n];break;
          case 0x04: n=3;P0=a[n];break;
          case 0x08: n=4;P0=a[n];break;
          case 0x10: n=5;P0=a[n];break;
          case 0x20: n=6;P0=a[n];break;
          case 0x40: n=7;P0=a[n];break;  
          case 0x80: n=8;P0=a[n];break;
          default:break;
        }
  
      }
   while(1)
    { 
  P2=0xff;
  P0=a[n];
  delay();
  if(P3!=0xff)break; 
}
 P0=0xff;
    }
}

评论

共有 条评论