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

📄 51

📁 51单片机大量源码
💻
字号:
C51 COMPILER V8.09   EX74                                                                  07/12/2010 13:36:36 PAGE 1   


C51 COMPILER V8.09, COMPILATION OF MODULE EX74
OBJECT MODULE PLACED IN ex74.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE ex74.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //独立式键盘的按键功能扩展:"以一当四"
   2          #include<reg52.h>        //  包含51单片机寄存器定义的头文件
   3          unsigned char ID;    //储存按键ID
   4          sbit S1=P3^3;          //位定义S1为P3.3
   5          
   6          /**************************************************************
   7          函数功能:延时子程序
   8          **************************************************************/
   9          void delay(void)    //因为仅对一个按键扫描,所以延时时间较长约200ms
  10          {
  11   1        unsigned char i,j;
  12   1        for(i=0;i<200;i++)
  13   1         for(j=0;j<100;j++)
  14   1                 ;
  15   1      }
  16          
  17          
  18          /**************************************************************
  19          函数功能:主函数
  20          **************************************************************/
  21          void main(void)
  22          {
  23   1         TMOD=0x02;     //使用定时器T0的模式2
  24   1              EA=1;          //开总中断
  25   1              ET0=1;         //定时器T0中断允许
  26   1              TR0=1;         //定时器T0开始运行
  27   1              TH0=256-200;   //定时器T0赋初值,每200微妙来1次中断请求
  28   1              TL0=256-200;
  29   1      
  30   1        ID=0;
  31   1         while(1)
  32   1                {
  33   2                        switch(ID)
  34   2                  {
  35   3                    case 0: P1=0xfe;
  36   3                            break;
  37   3                                        case 1: P1=0xfd;
  38   3                            break;
  39   3                                        case 2: P1=0xfb;
  40   3                            break;
  41   3                                        case 3: P1=0xf7;
  42   3                            break;             
  43   3                  }
  44   2           }
  45   1         }
  46          /**************************************************************
  47          函数功能:定时器T0的中断服务子程序,进行键盘扫描
  48          **************************************************************/
  49          void intersev(void) interrupt 1 using 1
  50          {
  51   1        TR0=0;  //关闭定时器T0
  52   1        P3=0xff;
  53   1        if(S1==0)       //如果是按键S1按下
  54   1          {
  55   2                 delay();       //延时20ms,软件消抖
C51 COMPILER V8.09   EX74                                                                  07/12/2010 13:36:36 PAGE 2   

  56   2                  if(S1==0)       //如果是按键S1按下
  57   2                         ID=ID+1;
  58   2                         while(!S1);
  59   2                }   
  60   1              if(ID==4)
  61   1                 ID=0;        
  62   1      
  63   1              TR0=1;               //启动定时器T0
  64   1      
  65   1      }
  66          
  67          
  68          
  69          
  70          
  71               
  72          
  73                           


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    107    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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