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

📄 main.lst

📁 从零开始学51单片机源代码
💻 LST
字号:
C51 COMPILER V8.08   MAIN                                                                  07/03/2012 11:04:32 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //main.c
   2          #include <reg51.h>      //包含头文件    
   3          #include "fun.h"   
   4          
   5          void Timer0_interrupt() interrupt 1
   6          {
   7   1              TH0 = T0_50ms >> 8;        //重装初值 
   8   1              TL0 = T0_50ms;
   9   1      
  10   1              if ((++ count_in_T0) == 20)//count_in_T0自加到20,计时1s
  11   1              {
  12   2                      count_in_T0 = 0;
  13   2                      if ( (++ display_num) ==60)
  14   2                      {//display_num自加1后判断是否等于60
  15   3                              display_num = 0;
  16   3                              //上发过0消息
  17   3                              send(0xf0);
  18   3                              send(0x01);
  19   3                              send(0xf1);
  20   3                      }
  21   2              }
  22   1      }
  23          
  24          void  USART_interrupt() interrupt 4
  25          {
  26   1              char checkXOR;
  27   1              if (RI)  //接收中断 
  28   1              {
  29   2                      RI = 0;
  30   2                      reciev[rec_num] = SBUF;
  31   2                      rec_num ++;
  32   2                      if ((rec_num == 3) && (reciev[0] == 0x0f) )//接收到3字节,并且包头正确 
  33   2                      {
  34   3                              checkXOR = reciev[0] ^ reciev[1];
  35   3                              if (checkXOR == reciev[2] )//如果异或校验正确,判断命令 
  36   3                              {
  37   4                                      switch (reciev[1])
  38   4                                      {
  39   5                                              case 0x01:
  40   5                                                      TR0 = 1;        //启动 
  41   5                                                      rec_num = 0;//指令正确,清空缓冲区 
  42   5                                                      break;
  43   5                                              case 0x02:
  44   5                                                      TR0 = 0;        //暂停 
  45   5                                                      rec_num = 0;//指令正确,清空缓冲区
  46   5                                                      break;
  47   5                                              default: //如果指令不正确,缓冲区左移 
  48   5                                                      reciev[0] = reciev[1];
  49   5                                                      reciev[1] = reciev[2];
  50   5                                                      rec_num --;
  51   5                                                      break;
  52   5                                      }
  53   4                              }
  54   3                      }
  55   2              }
C51 COMPILER V8.08   MAIN                                                                  07/03/2012 11:04:32 PAGE 2   

  56   1              if (TI)
  57   1              {
  58   2                      TI = 0;
  59   2              }
  60   1      }
  61          
  62          main()
  63          {
  64   1              unsigned char shi, ge;  //定义十位、个位要输出的数据 
  65   1      
  66   1              ms_delay(100);
  67   1              init_port();
  68   1              init_usart();   
  69   1              init_timer();
  70   1              
  71   1              dir = 0; //485接收数据 
  72   1              rec_num = 0;
  73   1              display_num = 0;
  74   1              count_in_T0 = 0;
  75   1              //把两个数码管都关闭 
  76   1              en2 = 1;
  77   1              en1 = 1;
  78   1              EA = 1;//开总中断 
  79   1      
  80   1              while(1)
  81   1              {
  82   2                      shi =  display_num / 10;
  83   2                      ge = display_num % 10;
  84   2                      display(shi,ge);        
  85   2              }
  86   1      }


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