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

📄 main.lst

📁 linBUS驱动原码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   MAIN                                                                  08/08/2003 11:35:03 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN Main.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE Main.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "reg932.h"
   2          
   3          #define CONID   0x42//00h-10h
   4          #define STAID   0x92
   5          #define CMDID   0xe2
   6          
   7          #define MODE0   0
   8          #define MODE1   1
   9          #define MODE2   2
  10          #define MODE3   3
  11          
  12          #define uint8 unsigned char 
  13          
  14          extern  void AutoBaudrateAdj();
  15          extern void ISP_INI();
  16          
  17          sbit TX=P1^0;
  18          sbit RX=P1^1;
  19          //sbit SLNP=P0^3;
  20          sbit LED1=P0^1;
  21          sbit LED2=P0^2;
  22          sbit LED3=P0^3;
  23          sbit LED4=P0^4;
  24          sbit LED5=P0^5;
  25          
  26          sbit ISP_BIT=P2^1;
  27          
  28          bit     l_flg_recgood=0;
  29          bit l_flg_timeok=0;
  30          bit led_all_light=1;
  31          
  32          uint8 l_sys_mode;
  33          uint8 l_rec_data[10];
  34          uint8 l_ledsta=2;
  35          uint8 l_ledsep=0x8;
  36          uint8 time=1;
  37          uint8 flash=0;
  38          unsigned int sleep_cout=0;
  39          void delay();
  40          void delayNS(unsigned int k);
  41          uint8 checksum8(uint8 *chk8,uint8 num);
  42          bit l_rce_data(void);
  43          void l_send_back(uint8 * data_ptr,uint8 num);
  44          void l_cmd_handle();
  45          void l_sta_handle();
  46          void l_con_handle();
  47          void l_rtc_init();
  48          
  49          void Int1_Isr() interrupt 2
  50          {//uint8 i;
  51   1              EX1=0;
  52   1              ISP_BIT=0;
  53   1              switch (l_sys_mode)
  54   1              {
  55   2                      case MODE0:
C51 COMPILER V7.06   MAIN                                                                  08/08/2003 11:35:03 PAGE 2   

  56   2                              TH0=255-((255-TH1)*160)/256;
  57   2                              TL0=255-((255-TH1)*160)%256;//检测第11位的电平。
  58   2                              TR0=1;
  59   2                              sleep_cout=0;
  60   2                              while(TF0==0);
  61   2                              TF0=0;
  62   2                              TR0=0;
  63   2                              if(RX==0)
  64   2                                      l_sys_mode=MODE1;       
  65   2                              break;
  66   2                              
  67   2                      case MODE1:
  68   2                              AutoBaudrateAdj();
  69   2                              if(TH1<0X80)
  70   2                              {
  71   3                                      TH1=0XFD;
  72   3                                      l_sys_mode=0;
  73   3                              }
  74   2                              else
  75   2                                      l_sys_mode=MODE2;//可以增加一些条件
  76   2                              break;
  77   2                      case MODE2:
  78   2                              TH0=0;
  79   2                              TL0=0;
  80   2                              TR0=1;
  81   2                              while(RI==0&&TF0==0);
  82   2                              TR0=0;
  83   2                              if(TF0==0)
  84   2                              {
  85   3                                      RI=0;
  86   3                                      l_rec_data[0]=SBUF;
  87   3                                      if(l_rec_data[0]==CONID)//增加可睡眠和命令
  88   3                                      {
  89   4                                              l_sys_mode=MODE3;
  90   4                                      }
  91   3                                      else if(l_rec_data[0]==CMDID)
  92   3                                      {
  93   4                                              l_sys_mode=MODE3;
  94   4                                      }
  95   3                                      else if(l_rec_data[0]==STAID)
  96   3                                      {
  97   4                                              l_sys_mode=MODE3;
  98   4                                      }
  99   3                                      else if(l_rec_data[0]==0x80)
 100   3                                      {
 101   4                                              l_sys_mode=MODE3;
 102   4                                      }
 103   3                                      else
 104   3                                              l_sys_mode=MODE0;
 105   3                                      
 106   3                              }
 107   2                              else
 108   2                              {
 109   3                                      TF0=0;
 110   3                                      l_sys_mode=MODE0;
 111   3                              }
 112   2                              
 113   2                              break;
 114   2      
 115   2                      case MODE3:
 116   2                              break;
 117   2              default : break;
C51 COMPILER V7.06   MAIN                                                                  08/08/2003 11:35:03 PAGE 3   

 118   2      
 119   2              }
 120   1              if(l_sys_mode!=MODE3)
 121   1              {
 122   2                      IE1=0;
 123   2                      EX1=1;
 124   2              }
 125   1              ISP_BIT=1;
 126   1      }
 127          main()
 128          {
 129   1              unsigned int cout=0;
 130   1              delay();
 131   1              P2M1 = 0x00;                    // 初始化端口
 132   1              P2M2 = 0x00; 
 133   1              P1M1=0;
 134   1              P1M2=1;
 135   1              P0M1 = 0x00;                    // 初始化端口
 136   1              P0M2 = 0x00;
 137   1              if(ISP_BIT==0)
 138   1              {
 139   2                      ISP_INI();
 140   2                      delay();
 141   2                      LED3=0;
 142   2                      while(1);
 143   2              }
 144   1              P0=0XAA;
 145   1              delayNS(100);
 146   1              P0=0X55;
 147   1              delayNS(100);
 148   1              P0=0XFF;
 149   1              l_sys_mode=0;
 150   1              TMOD=0X21;
 151   1              TH1=0XFD;
 152   1              PX1=1;
 153   1              IP0H=0X02;
 154   1              IT1=1;
 155   1              EX1=1;
 156   1              EA=1;
 157   1              l_rtc_init();
 158   1              while(1)
 159   1              {
 160   2                      if(l_sys_mode==MODE3)
 161   2                      {
 162   3                              EX1=0;
 163   3                              if(l_rec_data[0]==CMDID||(l_rec_data[0]==0x80))
 164   3                              {
 165   4                                      l_flg_recgood=l_rce_data();
 166   4                              }
 167   3                              else if(l_rec_data[0]==STAID)
 168   3                              {       
 169   4                                      IE1=0;
 170   4                                      EX1=0;
 171   4                                      l_sta_handle();
 172   4                              }
 173   3                              else if(l_rec_data[0]==CONID)
 174   3                              {       
 175   4                                      IE1=0;
 176   4                                      EX1=0;
 177   4                                      l_con_handle();
 178   4                              }
 179   3                              if(l_flg_recgood)
C51 COMPILER V7.06   MAIN                                                                  08/08/2003 11:35:03 PAGE 4   

 180   3                              {
 181   4                                      IE1=0;
 182   4                                      EX1=0;
 183   4                              }
 184   3                              else 
 185   3                              {
 186   4                                      TR1=0;
 187   4                                      IE1=0;
 188   4                                      EX1=1;
 189   4                                      l_sys_mode=MODE0;
 190   4                                      TR1=0;
 191   4                              }
 192   3                      
 193   3                      }
 194   2                      if(l_flg_recgood)

⌨️ 快捷键说明

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