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

📄 main.lst

📁 该程序为RS485通信协议
💻 LST
字号:
C51 COMPILER V6.23a  MAIN                                                                  09/09/2007 15:52:25 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: e:\my_soft\keil\C51\Bin\c51.exe main.C DB OE SMALL ROM(LARGE) 

stmt level    source

   1          //修改日期:2007年09月08日
   2          //通信速率为9600,22.1184晶体或11.0592双倍速
   3          //中山华力修理屏专用,共12位,共阳显示,通过485控制。
   4          #include <reg52.h>
   5          #include <ds1302.h>
   6          #include <delay.h>
   7          #include <A102.h>
   8          #include <Intrins.h>
   9          #include <uart.h>
  10          
  11          sbit P1_0=P1^0;
  12          sbit P1_1=P1^1;
  13          sbit P1_2=P1^2;
  14          
  15          sbit P3_2=P3^2; //串口收发控制
  16          extern bit   inbufsign;      //接收缓冲区非空标志   有=1
  17          unsigned char address,in_address,start;
  18          unsigned char   idata  display_buff[COUNT]; //显示缓冲
  19          void Test(void)
  20          {       unsigned char i,j;
  21   1              for(i=0;i<10;i++)
  22   1              {       for(j=0;j<12;j++)
  23   2                              display_buff[j]=i;
  24   2                      
  25   2                      //for(j=0;j<2;j++)
  26   2                              DelayX50ms(50);
  27   2              }
  28   1              
  29   1              for(j=0;j<12;j++)
  30   1                      display_buff[j]=0;
  31   1                      
  32   1              
  33   1      }
  34          /****************/
  35          
  36          /*******************************/
  37          void Main(void)
  38          {       unsigned char i,d;
  39   1              char    uart_buff[18];
  40   1              P3_2=0;
  41   1              DelayX50ms(5);
  42   1              TMOD=0x01;
  43   1              SerialInit();
  44   1              ET0=1;          //开定时中断0(显示扫描)
  45   1              TR0=1;
  46   1              IP=0x10;
  47   1              WriteClock(0x8e,0);     //关闭写保护
  48   1              i=ReadClock(0x81);      //读取秒钟
  49   1              WriteClock(0x80,0x7f&i);        //开启走时
  50   1              WriteClock(0x8e,0x80);  //开启写保护*/
  51   1              //ReadNumber( ) ;
  52   1              Test();
  53   1              //for(i=0;i<24;i++)
  54   1                      //display_buff[i]=i;
  55   1              //if(!P1_2)
C51 COMPILER V6.23a  MAIN                                                                  09/09/2007 15:52:25 PAGE 2   

  56   1                      //address=3;
  57   1              //else if(!P1_1)
  58   1                      //address=2;
  59   1              //else if(!P1_0)
  60   1                      //address=1;
  61   1              //else  address=0;
  62   1              
  63   1              in_address=P1;
  64   1              
  65   1              switch(in_address)
  66   1              {       case 0xfe:      address=1;
  67   2                                      break;
  68   2                      case 0xfd:      address=2;
  69   2                                      break;
  70   2                      case 0xfb:      address=3;
  71   2                                      break;
  72   2                      case 0xf7:      address=4;
  73   2                                      break;
  74   2                      case 0xef:      address=5;
  75   2                                      break;
  76   2                      case 0xdf:      address=6;
  77   2                                      break;
  78   2                      case 0xbf:      address=7;
  79   2                                      break;
  80   2                      case 0x7f:      address=8;
  81   2                                      break;
  82   2                      default:        address=0;
  83   2                                      break;
  84   2              }
  85   1              
  86   1              while(1)
  87   1              {       P0=0;
  88   2                      if(inbufsign)
  89   2                      {               //开始码高低字节,高字节为0x55,低字节为0xaa
  90   3                              start=GetByte();
  91   3                              DelayX50us(200);
  92   3                              if((start==0x0d)&&(inbufsign))
  93   3                              {       DelayX50us(200);
  94   4                                      
  95   4                                      in_address=GetByte();
  96   4                                      DelayX50us(100);
  97   4                                      if(in_address==0x0a)
  98   4                                      {       for(i=0;i<17;i++)
  99   5                                                      uart_buff[i]=0;
 100   5                                              i=0;
 101   5                                              while((i<18)&&(inbufsign))
 102   5                                              {       uart_buff[i++]=GetByte();
 103   6                                                      DelayX50us(100);
 104   6                                              }
 105   5                                              while(inbufsign)
 106   5                                              {       d=GetByte();
 107   6                                                      DelayX50us(100);
 108   6                                              }
 109   5                                                      
 110   5                                                      
 111   5                                              if((uart_buff[7]==0x0d)&&(uart_buff[8]==0x0a)&&(uart_buff[16]==0x0d))
 112   5                                              {       display_buff[0]=display_buff[6]=uart_buff[15]&0x0f;
 113   6                                                      display_buff[1] =display_buff[7]=uart_buff[14]&0x0f;
 114   6                                                      display_buff[2]=display_buff[8]=uart_buff[13]&0x0f;
 115   6                                                      display_buff[3]=display_buff[9]=uart_buff[6]&0x0f;
 116   6                                                      display_buff[4]=display_buff[10]=uart_buff[5]&0x0f;
 117   6                                                      display_buff[5]=display_buff[11]=uart_buff[4]&0x0f;
C51 COMPILER V6.23a  MAIN                                                                  09/09/2007 15:52:25 PAGE 3   

 118   6                                      }       }
 119   4                                      DelayX50us(100);
 120   4                                              //WriteNumber();
 121   4                                              while(inbufsign)
 122   4                                              {       d=GetByte();
 123   5                                                      DelayX50us(100);
 124   5                                              }
 125   4                              }
 126   3                              else
 127   3                                      while(inbufsign)
 128   3                                              {       d=GetByte();
 129   4                                                      DelayX50us(100);
 130   4                                              }
 131   3                              
 132   3                              
 133   3                      }
 134   2                      
 135   2              }
 136   1      }
 137          /********************************/
 138          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    420    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3      22
   IDATA SIZE       =     12    ----
   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 + -