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

📄 main.lst

📁 单片机的多级通讯程序 包含有keil源程序 和proteus的仿真程序
💻 LST
字号:
C51 COMPILER V7.50   MAIN                                                                  06/30/2008 23:35:47 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Edu\Software\Keil\C51\BIN\C51.EXE main.c BROWSE NOAREGS INCDIR(..\common) DEBUG OBJECTEXTEND

line level    source

   1          
   2          /*
   3          ****************************************************
   4          
   5                          
   6          
   7          ****************************************************
   8          */
   9          
  10          #include <reg52.H>
  11          #include "Typedef.H"
  12          #include "UserDef.H"
  13          #include "Disp.H"
  14          #include "comu485.h"
  15          #include "Keypad.H"
  16          
  17          /*  全局变量 */
  18          bit bDispRef = FALSE;           //信号灯:显示更新时间到
  19          bit bKeyScan = FALSE;           //信号灯:键盘扫描时间到
  20          INT8U KeyVal = VK_NULL;         //按键值
  21          INT8U comu_send[8];
  22          INT8U comu_send_len = 0;
  23          
  24          /*  函数 */
  25          void KeyboardDeal(void);
  26          
  27          /***************************************
  28          
  29                  
  30          
  31          ****************************************/
  32          void main(void)
  33                  {
  34   1              INT8U i;
  35   1      
  36   1              //初始化
  37   1              TMOD = 0x11;
  38   1              TH0 = (INT8U)(KTDLY>>8);
  39   1              TL0 = (INT8U)(KTDLY);
  40   1              TR0 = 1;
  41   1              
  42   1              comu_init('0');
  43   1      
  44   1              ET0 = 1;
  45   1              EA = 1;
  46   1      
  47   1              DispInit();             //LCD初始化
  48   1      
  49   1              /* LCD清屏 */
  50   1              DispCls();
  51   1      
  52   1              /* 显示固定的文字 */
  53   1              DispFontSet(1);         
  54   1              DispXYSet(0,0);
  55   1              DispStr("   Comu Test");
C51 COMPILER V7.50   MAIN                                                                  06/30/2008 23:35:47 PAGE 2   

  56   1      
  57   1              DispFontSet(1);         
  58   1              DispXYSet(3,0);
  59   1              DispStr("Send =");
  60   1              DispXYSet(5,0);
  61   1              DispStr("Recv =");
  62   1      
  63   1              
  64   1              
  65   1              while(TRUE)
  66   1                      {
  67   2                      /* 键盘 */
  68   2                      if (bKeyScan == TRUE)
  69   2                              {
  70   3                              bKeyScan = FALSE;
  71   3                              KeyboardDeal();
  72   3                              }
  73   2                                              /* 显示扫描刷新,输出可变的文字 */
  74   2                      if (bDispRef == TRUE)
  75   2                              {
  76   3                              bDispRef = FALSE;
  77   3                              
  78   3                              DispXYSet(3,60);
  79   3                              for (i=0;i<8;i++)
  80   3                                      {
  81   4                                      if (i>=comu_send_len)
  82   4                                              {
  83   5                                              DispChr(' ');
  84   5                                              }
  85   4                                      else
  86   4                                              {
  87   5                                              DispChr(comu_send[i]);
  88   5                                              }
  89   4                                      }
  90   3      
  91   3                              DispXYSet(5,60);
  92   3                              for (i=0;i<8;i++)
  93   3                                      {
  94   4                                      if (i>=comu_recv_len)
  95   4                                              {
  96   5                                              DispChr(' ');
  97   5                                              }
  98   4                                      else
  99   4                                              {
 100   5                                              DispChr(Rxbuf[i]);
 101   5                                              }
 102   4                                      }
 103   3                              }
 104   2                      }
 105   1              }
 106          
 107          
 108          
 109          
 110          /*************************************
 111          
 112                  定时器中断程序 
 113          
 114          **************************************/
 115          void int_t0(void) interrupt 1 using 1
 116                  {
 117   1              static int cnt = 0;
C51 COMPILER V7.50   MAIN                                                                  06/30/2008 23:35:47 PAGE 3   

 118   1      
 119   1              TH0 = (unsigned char)(KTDLY>>8);
 120   1              TL0 = (unsigned char)(KTDLY);
 121   1      
 122   1              cnt ++;
 123   1      
 124   1              /* 键盘扫描信号灯  */
 125   1              if ((cnt % T_KEYSCAN) == 0)
 126   1                      {
 127   2                      bKeyScan = TRUE;
 128   2                      }
 129   1      
 130   1              /* 显示扫描信号灯  */
 131   1              if ((cnt % T_DISPREF) == 0)
 132   1                      {
 133   2                      bDispRef = TRUE;
 134   2                      }
 135   1              }
 136          
 137          
 138          /*************************************
 139          
 140                  键盘处理 
 141          
 142          **************************************/
 143          void KeyboardDeal(void)
 144                  {
 145   1              INT8U n;
 146   1      
 147   1              n = Keypad_GetKey();
 148   1              if (n != KeyVal)
 149   1                      {
 150   2                      KeyVal = n;
 151   2                      if (n != VK_NULL)
 152   2                              {
 153   3                              if ((n>=VK_0) && (n<=VK_9))
 154   3                                      {
 155   4                                      comu_send[comu_send_len] = n-VK_0+'0';          /* 数字按键:直接存入发送数组 */
 156   4                                      comu_send_len ++;
 157   4                                      }
 158   3                              else if (n==VK_EQU)                                                             /* 等于:将现有的数据发送 */
 159   3                                      {
 160   4                                               comu485_send_packet(comu_send,comu_send_len);
 161   4                                               comu_recv_len = 0;
 162   4                                      }
 163   3                              else if (n == VK_CLR)                                                   /* ON/C键:将发送数据清零 */
 164   3                                      {
 165   4                                              comu_send_len = 0;
 166   4                                      }
 167   3                              }
 168   2                      }
 169   1              }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    319    ----
   CONSTANT SIZE    =     27    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     12       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
C51 COMPILER V7.50   MAIN                                                                  06/30/2008 23:35:47 PAGE 4   

END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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