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

📄 time0_int.lst

📁 keil,,,,,,,,,,,,按键扫描
💻 LST
字号:
C51 COMPILER V7.01  TIME0_INT                                                              03/25/2009 22:18:45 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE TIME0_INT
OBJECT MODULE PLACED IN time0_int.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE time0_int.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg51.h>
   2          #include "time0_int.h"
   3          
   4          uint time0_re;
   5          
   6          void ldelay(uint n)//1ms delay
   7          {
   8   1              uint i,j;
   9   1              for(i=0;i<n;i++)
  10   1                      for(j=0;j<250;j++);
  11   1      }
  12          
  13          uchar Keyscan(void)
  14          {
  15   1              uchar temp=0x00;
  16   1              if((P1&0x0F)!=0x0F)
  17   1              {
  18   2                      ldelay(30);      //消抖
  19   2                      if((P1&0x0F)!=0x0F)
  20   2                      {
  21   3                              temp=P1&0x0F;//保存键值
  22   3                              while((P1&0x0F)!=0x0F);//松手检测
  23   3                      }
  24   2              }
  25   1              P0=temp;
  26   1              return temp;//返回键值
  27   1      }
  28          
  29          void KeyOperate(uchar keydata)
  30          {
  31   1              if(keydata!=0x00)
  32   1              {
  33   2      
  34   2              }
  35   1      }
  36          
  37          void Time0(void) interrupt 1//定时器0中断函数
  38          {
  39   1              uchar temp=0x00;
  40   1              TH0=(65535-time0_re)/256;
  41   1              TL0=(65535-time0_re)%256;//重新赋定时器0初值
  42   1              //定时操作
  43   1              //static uchar a=0;//用于延长定时时间
  44   1              temp=Keyscan();
  45   1              KeyOperate(temp);
  46   1              //可能出现的问题:当有按键时,定时器还在累加,无法扫描到。
  47   1      }
  48          
  49          void Time0_init(void)//定时器0初始化
  50          {
  51   1              time0_re=50000;//设定50毫秒扫描间隔
  52   1              TMOD=0x01;//定时器0定义为16位定时器
  53   1              TH0=(65535-time0_re)/256;
  54   1              TL0=(65535-time0_re)%256;//赋定时器0初值
  55   1              ET0=1;//允许T0中断,设置IE
C51 COMPILER V7.01  TIME0_INT                                                              03/25/2009 22:18:45 PAGE 2   

  56   1              EA=1;//开放CPU中断
  57   1              TR0=1;//起动定时器,设置TCON  
  58   1      }
  59          
  60          void main()
  61          {
  62   1              Time0_init();
  63   1              while(1);
  64   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    309    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2       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 + -