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

📄 ynxfzd.lst

📁 接收串口字模或数字,在led显示屏上显示
💻 LST
字号:
C51 COMPILER V8.02   YNXFZD                                                                01/18/2009 18:58:53 PAGE 1   


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

line level    source

   1          #include <AT89X52.H>
   2          
   3          
   4           unsigned char code DAT[11]={0xfd,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0x00};
   5          unsigned char code  DIG[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
   6                   /*      led"=",0x5b"[",0x25"% 空秤"0x24重秤"$"0x23有卡"#"};*/
   7          void delay(int ) ;
   8          sbit SCL=P2^4;  
   9          sbit SDA=P2^5;  
  10          
  11          
  12          sbit SE=P1^0;      //4寸数码管
  13          sbit SCK=P1^1;
  14          sbit RCK=P1^2;
  15          
  16          sbit SE1=P1^4;     //汉字屏
  17          sbit SCK1=P1^5;
  18          sbit RCK1=P1^6; 
  19          
  20          sbit LED=P1^3;   //指示灯
  21          sbit DOT=P1^7;   //冒号
  22          
  23          sbit KEY=P2^7;  //键盘
  24          sbit IRB=P2^6;  //红外
  25          
  26          sbit GREEN=P2^3;//绿灯
  27          sbit RED=P2^2;//红灯
  28          sbit UP=P2^0;//升栏杆机
  29          sbit DOWN=P2^1;//降栏杆机
  30          
  31          unsigned char  str1[16];
  32          unsigned char   str2[16];
  33          unsigned char  str3[16];
  34          unsigned char  str4[16];
  35          unsigned char  str5[16];
  36          unsigned char  str6[16];
  37          unsigned  char  str7[16];
  38          unsigned  char  idata str8[16];
  39          
  40          int tj_bytes;
  41          unsigned char g_232,hz,g_232_led,led,zt;
  42          //bit hz;
  43          
  44          
  45          void out_disp_8(unsigned char);
  46          void out_disp_led(unsigned char);
  47          unsigned char led_8(char);
  48          
  49          void init_rs232();
  50          void tx_char( char );
  51          unsigned char rx_char();
  52          
  53          
  54          //unsigned char  s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,s16,s17,s18,s19,s20,s21,s22,s23,s24
             -,s25,s26,s27,s28,s29,s30,s31,s32,
C51 COMPILER V8.02   YNXFZD                                                                01/18/2009 18:58:53 PAGE 2   

  55          //               s33,s34,s35,s36,s37,s38,s39,s40,s41,s42,s43,s44,s45,s46,s47,s48,s49,s50,s51,s52,s53,s54,s
             -55,s56,s57,s58,s59,s60,s61,s62,s63;
  56          
  57          
  58          
  59          void main()
  60          { // unsigned char dat1,dat2,zt,i;
  61   1         delay(5000);
  62   1         //定时器设置
  63   1        TH0=0xfb;
  64   1        TL0=0x30;
  65   1        IE=0x82;
  66   1      
  67   1        TMOD=0x20;//
  68   1        
  69   1        EA=1;
  70   1        TR0=1; 
  71   1         init_rs232();
  72   1              ET1=1;
  73   1              ES=1;
  74   1       IP=0x10;
  75   1         KEY =1;
  76   1         GREEN =1;/*绿灯*/RED=0;/*红灯*/UP=1;/*栏杆机升*/DOWN=0;/*栏杆机降*/
  77   1       
  78   1         P0=0x00;
  79   1        out_disp_8(0x00);
  80   1        out_disp_8(DAT[0]);
  81   1        out_disp_8(DAT[0]);
  82   1        out_disp_8(DAT[0]);
  83   1        out_disp_8(DAT[0]);
  84   1        out_disp_8(DAT[0]);
  85   1        out_disp_8(DAT[0]);
  86   1        out_disp_8(DAT[0]);
  87   1        out_disp_8(DAT[0]);
  88   1        
  89   1        RCK=0;RCK=1;
  90   1      
  91   1         while (1){ 
  92   2         
  93   2          LED=~LED;  delay(2000);}
  94   1      
  95   1      
  96   1      
  97   1                
  98   1              
  99   1                }
 100                    
 101                           
 102           
 103           
 104          void init_rs232()
 105          {       /*PCON=0x80;     波特率加倍                                     */
 106   1          //PCON&=0xef;         // 波特率不加倍       
 107   1              SCON=0x50;
 108   1              TMOD=0x20;
 109   1              TH1=0xfd;
 110   1              TL1=0xfd;
 111   1          TR1=1;
 112   1              TI=1;
 113   1      
 114   1              }
 115          
C51 COMPILER V8.02   YNXFZD                                                                01/18/2009 18:58:53 PAGE 3   

 116          
 117          
 118          
 119          void delay(int t) {
 120   1      int i;
 121   1      for (i=0;i<t;i++) ;
 122   1      }
 123          
 124          void out_disp_8(unsigned char dd) {
 125   1      
 126   1              unsigned char i,k;
 127   1              for (i=0;i<8;i++) {  k=dd & 0x01;SE=k;SCK=1;dd=dd>>1;SCK=0;     }
 128   1                     }
 129          
 130          void out_disp_led(unsigned char dd) {
 131   1              unsigned char i,k;
 132   1              for (i=0;i<8;i++) {  k=dd & 0x80;SE1=k;SCK1=1;dd=dd<<1;SCK1=0;  }
 133   1                     }
 134          
 135          unsigned char led_8( char dd){
 136   1         unsigned char i;
 137   1          i=0;
 138   1          while(1) {if(dd==DIG[i]) break;
 139   2                      i++;if(i>9) break;}
 140   1              if(i>9) return(DAT[0]);
 141   1          return DAT[i];}
 142                                                                                           
 143                                                                                          
 144          void get_disp (void) interrupt 4 using 0
 145          
 146          {
 147   1      unsigned char rx;
 148   1      TR0=0;
 149   1              if((SCON & 0x01)==0x01)                 //如果是串口输入引起中断
 150   1                              {        
 151   2                                       rx= SBUF;
 152   2                                       if( rx==0x5b) {g_232=0;hz=1;led=0;}
 153   2      
 154   2      
 155   2                               if (rx==0x23) zt=1;
 156   2                       if((rx==0x25) && (zt==1) && (IRB==1))/*空秤*/ {GREEN=1;/*绿灯*/RED=0;/*红灯*/UP=1;/*栏杆

⌨️ 快捷键说明

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