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

📄 定时器和外部中断.lst

📁 单片机的实用程序代码
💻 LST
字号:
C51 COMPILER V7.50   定时芲和外部中断                                                      08/23/2011 12:59:33 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 定时芲和外部中断
OBJECT MODULE PLACED IN 定时器和外部中断.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 定时器和外部中断.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /********************************************************************
   2          * 文件名  : 定时器和外部中断.c
   3          * 描述    :  外部中断和定时器一样,是单片机最基本也是最重要的两个功能.
   4          * 创建人  : 东流,2009年4月9日
   5          * 版本号  : 2.0
   6          ***********************************************************************/
   7          #include<reg52.h>
   8          #define uchar unsigned char
   9          #define uint  unsigned int
  10          
  11          sbit KEY = P3^2;
  12          uchar Count = 0;
  13          uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  14          
  15          /********************************************************************
  16          * 名称 : Delay()
  17          * 功能 : 延时,延时时间为 10ms * del
  18          * 输入 : del
  19          * 输出 : 无
  20          ***********************************************************************/
  21          void Delay(uint del)
  22          {
  23   1              uint i,j;
  24   1              for(i=0; i<del; i++)
  25   1              for(j=0; j<1827; j++)    
  26   1              ;
  27   1      }
  28          
  29          /********************************************************************
  30          * 名称 : Outside_Init()
  31          * 功能 : 外部中断0 的初始化
  32          * 输入 : 无
  33          * 输出 : 无
  34          ***********************************************************************/
  35          void Outside_Init(void)
  36          {
  37   1              IT0 = 1;  //负边沿触发
  38   1              EX0 = 1;  //外部中断0允许
  39   1      }
  40          
  41          /********************************************************************
  42          * 名称 : Outside_Int()
  43          * 功能 : 外部中断0 的中断处理
  44          
  45          * 输入 : 无
  46          * 输出 : 无
  47          ***********************************************************************/
  48          void Outside_Int(void) interrupt 0
  49          {
  50   1              Delay(3);          //延时30ms,去掉这行会出现按一下中断几次的情况
  51   1              if(KEY == 0)   //对按键进行抗干扰处理
  52   1              {
  53   2                      P0 = 0xff;
  54   2              }
  55   1              Delay(100);     
C51 COMPILER V7.50   定时芲和外部中断                                                      08/23/2011 12:59:33 PAGE 2   

  56   1      }
  57          
  58          /********************************************************************
  59          * 名称 : Time0_Init()
  60          * 功能 : 定时器的初始化,11.0592MZ晶振,50ms
  61          * 输入 : 无
  62          * 输出 : 无
  63          ***********************************************************************/
  64          void Time0_Init()
  65          {
  66   1              TMOD = 0x01;      //定时器0选用方式1
  67   1              TH0  = 0x4c;      //初值的计算
  68   1              TL0  = 0x00;    
  69   1              TR0 = 1;                  //启动定时器
  70   1              ET0 = 1;                  //打开定时器中断允许位
  71   1      }
  72                                                                                           
  73          /********************************************************************
  74          * 名称 : Time0_Int()
  75          * 功能 : 定时器中断,中断中实现 Count 加一
  76          * 输入 : 无
  77          * 输出 : 无
  78          ***********************************************************************/
  79          void Time0_Int() interrupt 1
  80          {
  81   1              TH0 = 0x4c;
  82   1              TL0 = 0x00;
  83   1              Count++;                        //长度加1
  84   1      }
  85          
  86          /********************************************************************
  87          * 名称 : Main()
  88          * 功能 : 外部中断试验主程序
  89          * 输入 : 无
  90          * 输出 : 无
  91          ***********************************************************************/
  92          void Main(void)
  93          {
  94   1              uint i = 0;
  95   1              Time0_Init();
  96   1              Outside_Init();
  97   1              EA = 1;                //打开总中断
  98   1              while(1)
  99   1              {
 100   2                      P0 = table[i % 10];       //取 i 的个位
 101   2                      if(Count == 20)           //当Count为 20 时,i 自加一次,20 * 50MS = 1S
 102   2                      {
 103   3                              Count = 0;
 104   3                              i++;            
 105   3                      }               
 106   2              }
 107   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    167    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
C51 COMPILER V7.50   定时芲和外部中断                                                      08/23/2011 12:59:33 PAGE 3   

END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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