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

📄 isr.lst

📁 基于51的单片机设计的电容计的完整源代码
💻 LST
字号:
C51 COMPILER V7.06   ISR                                                                   03/02/2006 23:49:39 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE ISR
OBJECT MODULE PLACED IN ISR.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ISR.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /******************************************************************
   2             本程序只供学习使用,未经作者许可,不得用于其它任何用途
   3                我的邮箱:computer-lov@tom.com
   4                  欢迎访问我的blog:  http://computer00.21ic.org
   5          
   6          ISR.C文件   中断处理函数
   7          
   8          Created by Computer-lov
   9          Date: 2004.11.12
  10          
  11          Edit date:2006.3.2
  12          
  13          Version V1.1
  14          Copyright(C) Computer-lov 2004-2014
  15          All rigths reserved      
  16          *******************************************************************/
  17          
  18          
  19          #include "hardware.h"
  20          #include "ISR.H"
  21          #include "main.h"
  22          
  23          void Exterior_0_interrupt(void) interrupt 0
  24          {
  25   1       TR0=0;
  26   1       capacity_measure_end=1;
  27   1      }
  28          
  29          void Count_0_interrupt(void) interrupt 1
  30          {
  31   1       TVH0++;
  32   1      }
  33          
  34          void Exterior_1_interrupt(void) interrupt 2
  35          {
  36   1      
  37   1      }
  38          
  39          void Count_1_interrup(void) interrupt 3
  40          {
  41   1       TL1=tl1;
  42   1       TH1=th1;
  43   1       SQUARE_WAVE_OUT=!SQUARE_WAVE_OUT;
  44   1      }
  45          
  46          void Serial_port_interrupt(void) interrupt 4
  47          {
  48   1      
  49   1      }
  50          
  51          unsigned char key_old=0,key_new=0,key=0,key_pressed_time=0,time_out=0;
  52          
  53          /*--------------------------------------------------------------------------
  54                               定时-计数器2中断
  55                         采用定时方式,10ms中断一次
C51 COMPILER V7.06   ISR                                                                   03/02/2006 23:49:39 PAGE 2   

  56          ---------------------------------------------------------------------------*/
  57          void Count_2_interrupt(void) interrupt 5
  58          {
  59   1       TF2=0;
  60   1       if(frequency_measure_time){FREQUENCY_IN_ENABLE=1;frequency_measure_time--;}
  61   1       else {FREQUENCY_IN_ENABLE=0;frequency_measure_end=0;}
  62   1       if(key)return;                        //如果上次按键未处理,则返回
  63   1       KEY_IN=0xFF;                          //释放IO
  64   1       KEY_IN_ENABLE=0;                      //开键盘输入
  65   1       if((KEY_IN&0x0F)==0x0F)               //按键释放
  66   1        {
  67   2         if(!key_old)                        //如果上次无按键按下
  68   2          {
  69   3           KEY_IN_ENABLE=1;
  70   3           return;                           //返回
  71   3          }
  72   2         else                                //如果上次有按键按下
  73   2          {
  74   3           if(key_pressed_time>100)          //按键时间超过一秒,长按键码
  75   3            {
  76   4             key=key_old+0x80;               //长按键码等于普通按键码加0x80
  77   4            }
  78   3           else if(key_pressed_time>0)
  79   3            {
  80   4             key=key_old;
  81   4            }
  82   3           key_old=0;
  83   3          }
  84   2         KEY_IN_ENABLE=1;
  85   2         return;
  86   2        }
  87   1       else                                  //按键按下
  88   1        {
  89   2         key_new=0;
  90   2         if(!ENTER)key_new+=KEY_ENTER;       //ENTER键按下
  91   2         if(!DOWN)key_new+=KEY_DOWN;         //DOWN键按下
  92   2         if(!UP)key_new+=KEY_UP;             //UP键按下
  93   2         if(!MENU)key_new+=KEY_MENU;         //MENU键按下
  94   2         if(key_new==key_old)                //如果按键按下长于10ms
  95   2          { 
  96   3           if(key_pressed_time>100)          //如果按键按下超过1s
  97   3            {
  98   4             KEY_IN_ENABLE=1;
  99   4             return;
 100   4            }
 101   3           else
 102   3            {
 103   4             key_pressed_time++;
 104   4            }
 105   3          }
 106   2         else
 107   2          {
 108   3           key_pressed_time=0;
 109   3          }
 110   2         key_old=key_new;                    //保存本次按键值
 111   2        }
 112   1       KEY_IN_ENABLE=1;
 113   1      }
 114          
 115          


C51 COMPILER V7.06   ISR                                                                   03/02/2006 23:49:39 PAGE 3   

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