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

📄 ynxf.lst

📁 接收串口字模或数字,在led显示屏上显示
💻 LST
字号:
C51 COMPILER V8.02   YNXF                                                                  02/21/2009 20:34:01 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE YNXF
OBJECT MODULE PLACED IN ynxf.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ynxf.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <AT89X52.H>
   2          
   3           unsigned char code DAT[11]={0xfd,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0x00};
   4          unsigned char code  DIG[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
   5                   /*      led"=",0x5b"[",0x25"% 空秤"0x24重秤"$"0x23有卡"#"};*/
   6          void delay(int ) ;
   7          sbit SCL=P2^4;  
   8          sbit SDA=P2^5;  
   9          
  10          
  11          sbit SE=P1^0;      //4寸数码管
  12          sbit SCK=P1^1;
  13          sbit RCK=P1^2;
  14          
  15          sbit SE1=P1^4;     //汉字屏
  16          sbit SCK1=P1^5;
  17          sbit RCK1=P1^6; 
  18          
  19          sbit LED=P1^3;   //指示灯
  20          sbit DOT=P1^7;   //冒号
  21          
  22          sbit KEY=P2^7;  //键盘
  23          sbit IRB=P2^6;  //红外
  24          
  25          sbit GREEN=P2^3;//绿灯
  26          sbit RED=P2^2;//红灯
  27          sbit UP=P2^0;//升栏杆机
  28          sbit DOWN=P2^1;//降栏杆机
  29          
  30          unsigned char  str1[16]={0x00};
  31          unsigned char   str2[16];
  32          unsigned char  str3[16];
  33          unsigned char  str4[16];
  34          unsigned char  str5[16];
  35          unsigned char   str6[16];
  36          unsigned  char str7[16];
  37          unsigned  char  idata str8[16];
  38          
  39          int tj_bytes;
  40          
  41          void out_disp_8(unsigned char);
  42          void out_disp_led(unsigned char);
  43          unsigned char led_8(char);
  44          
  45          void init_rs232();
  46          void tx_char( char );
  47          unsigned char rx_char();
  48          
  49          
  50          
  51          
  52          
  53          void main()
  54          {  unsigned char dat1,dat2,zt,i;
  55   1         delay(5000);
C51 COMPILER V8.02   YNXF                                                                  02/21/2009 20:34:01 PAGE 2   

  56   1         //定时器设置
  57   1        
  58   1        TH0=0xfb;
  59   1        TL0=0x30;
  60   1        IE=0x82;
  61   1        TMOD=0x20;
  62   1        init_rs232();
  63   1        EA=0;
  64   1        TR0=0; 
  65   1         
  66   1         KEY =1;
  67   1         GREEN =1;/*绿灯*/RED=0;/*红灯*/UP=1;/*栏杆机升*/DOWN=0;/*栏杆机降*/
  68   1       
  69   1         P0=0x00;
  70   1        out_disp_8(0x00);
  71   1        out_disp_8(DAT[0]);
  72   1        out_disp_8(DAT[0]);
  73   1        out_disp_8(DAT[0]);
  74   1        out_disp_8(DAT[0]);
  75   1        out_disp_8(DAT[0]);
  76   1        out_disp_8(DAT[0]);
  77   1        out_disp_8(DAT[0]);
  78   1        out_disp_8(DAT[0]);
  79   1        
  80   1        RCK=0;RCK=1;
  81   1      
  82   1         while (1){   dat1=rx_char();
  83   2                              if (dat1==0x23) {zt=1;tx_char(0x34);}
  84   2                  if((dat1==0x25) && (zt==1) && (IRB==1))/*空秤*/ {GREEN=1;/*绿灯*/RED=0;/*红灯*/UP=1;/*栏杆机升
             -*/DOWN=0;/*栏杆机降*/zt=2;tx_char(0x33);} 
  85   2                              if((dat1==0x24) && (GREEN==1) && (zt==2) && (IRB==0)) {UP=0;/*栏杆机升*/DOWN=1;/*栏杆机降*/GREEN=0;/*绿
             -灯*/RED=1;   zt=1; tx_char(0x32);} /*重秤*/
  86   2                  if(dat1==0x3d){ TR0=0;
  87   3                                             dat2=rx_char();
  88   3                                             if(dat2==0x30) 
  89   3                                                             {out_disp_8(0x00);}/*灭*/
  90   3                                     else 
  91   3                                                             { out_disp_8(led_8(dat2));}
  92   3      
  93   3                                     for(i=0;i<8;i++){ dat2=rx_char(); out_disp_8(led_8(dat2));}
  94   3                                     RCK=0; RCK=1;
  95   3                                                         tx_char(0x31);
  96   3                                                         TR0=1;
  97   3                                                         }
  98   2                         
  99   2                              if (dat1==0x5b)
 100   2                              {  TR0=0;
 101   3                              for (i=0;i<16;i++){dat2=rx_char(); str1[i]=dat2;}
 102   3                      
 103   3                              for (i=0;i<16;i++){dat2=rx_char(); str2[i]=dat2;}
 104   3              
 105   3                              for (i=0;i<16;i++){dat2=rx_char(); str3[i]=dat2;}
 106   3                      
 107   3                              for (i=0;i<16;i++){dat2=rx_char(); str4[i]=dat2;}
 108   3                              
 109   3                              for (i=0;i<16;i++){dat2=rx_char(); str5[i]=dat2;}
 110   3                      
 111   3                              for (i=0;i<16;i++){dat2=rx_char(); str6[i]=dat2;}
 112   3                              
 113   3                              for (i=0;i<16;i++){dat2=rx_char(); str7[i]=dat2;}
 114   3      
 115   3                              for (i=0;i<16;i++){dat2=rx_char(); str8[i]=dat2;}
C51 COMPILER V8.02   YNXF                                                                  02/21/2009 20:34:01 PAGE 3   

 116   3                              EA=1;
 117   3                      TR0=1;
 118   3                      tx_char(0x30);
 119   3                              }  }
 120   1         
 121   1          LED=~LED;  delay(5000);}
 122          
 123          void init_rs232()
 124          {       /*PCON=0x80;     波特率加倍                                     */
 125   1          //PCON&=0xef;         // 波特率不加倍       
 126   1              SCON=0x50;
 127   1              TMOD=0x21;
 128   1              TH1=0xfd;
 129   1              TL1=0xfd;
 130   1          TR1=1;
 131   1              TI=1;
 132   1      
 133   1              }
 134          
 135          unsigned char rx_char()
 136          {
 137   1              while(1)
 138   1              if((SCON & 0x01)==0x01)  break;
 139   1              RI=0;
 140   1              return SBUF;
 141   1      }
 142                  
 143          void tx_char( char c)
 144          {
 145   1              while(1)
 146   1              if((SCON & 0x02)==0x02) break;
 147   1              TI=0;
 148   1              SBUF=c;
 149   1      }
 150          
 151          
 152          void delay(int t) {
 153   1      int i;
 154   1      for (i=0;i<t;i++) ;
 155   1      }
 156          
 157          void out_disp_8(unsigned char dd) {
 158   1      
 159   1              unsigned char i,k;
 160   1              for (i=0;i<8;i++) {  k=dd & 0x01;SE=k;SCK=1;dd=dd>>1;SCK=0;     }
 161   1                     }
 162          
 163          void out_disp_led(unsigned char dd) {
 164   1              unsigned char i,k;
 165   1              for (i=0;i<8;i++) {  k=dd & 0x80;SE1=k;SCK1=1;dd=dd<<1;SCK1=0;  }
 166   1                     }
 167          
 168          unsigned char led_8( char dd){
 169   1         unsigned char i;
 170   1          i=0;
 171   1          while(1) {if(dd==DIG[i]) break;
 172   2                      i++;if(i>9) break;}
 173   1              if(i>9) return(DAT[0]);
 174   1          return DAT[i];}
 175                                                                                           
 176            
 177           
C51 COMPILER V8.02   YNXF                                                                  02/21/2009 20:34:01 PAGE 4   

 178          
 179          void timer0(void) interrupt 1 { 
 180   1      
 181   1              TH0=0xfb;
 182   1              TL0=0x30; 
 183   1              
 184   1      
 185   1                      out_disp_led(~str1[tj_bytes]);
 186   1      //      out_disp_led(~0x00);
 187   1                              out_disp_led(~str2[tj_bytes]);
 188   1      
 189   1                      
 190   1                              out_disp_led(~str3[tj_bytes]);
 191   1                              out_disp_led(~str4[tj_bytes]);
 192   1                              out_disp_led(~str5[tj_bytes]);
 193   1                              out_disp_led(~str6[tj_bytes]);
 194   1                              out_disp_led(~str7[tj_bytes]);
 195   1                              out_disp_led(~str8[tj_bytes]);
 196   1              
 197   1      
 198   1          RCK1=0;RCK1=1;
 199   1        P0=tj_bytes;
 200   1        tj_bytes ++;
 201   1        if(tj_bytes>15) tj_bytes=0;
 202   1       }
 203          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    688    ----
   CONSTANT SIZE    =     21    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =    114       4
   IDATA SIZE       =     16    ----
   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 + -