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

📄 2272js.lst

📁 单片机通信程序
💻 LST
字号:
C51 COMPILER V8.02   2272JS                                                                02/26/2009 16:23:13 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 2272JS
OBJECT MODULE PLACED IN 2272JS.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 2272JS.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>
   2          #define uchar unsigned char
   3          #define uint unsigned int
   4          sbit js=P1^5;
   5          extern inttilcs();
   6          extern void displayOneChar(unsigned char, unsigned char, unsigned char);
   7          /*---------------------------------变量列表------------------------------------*/
   8          uchar m,n,x,y,bc[6];
   9          uint wendu;
  10          /*****************  整数型转字符型方便打印*************************************/
  11                  void IntToStr( uint t, unsigned char *sc, unsigned char n) 
  12          {
  13   1              unsigned char a[5]; char i, j;                                  
  14   1              a[0]=(t/10000)%10;         //取得整数值到数组           
  15   1              a[1]=(t/1000)%10;                                       
  16   1              a[2]=(t/100)%10;                                        
  17   1              a[3]=(t/10)%10;                                         
  18   1              a[4]=(t/1)%10;                                          
  19   1                                                            
  20   1              for(i=0; i<5; i++)         //转成ASCII码                
  21   1                      a[i]=a[i]+'0';                                          
  22   1              for(i=0; a[i]=='0' && i<=3; i++);                       
  23   1              for(j=5-n; j<i; j++)       //填充空格                   
  24   1                      { *sc=' ';  sc++; }                                     
  25   1              for(; i<5; i++)                                         
  26   1                      { *sc=a[i]; sc++; }  //加入有效的数字                   
  27   1              *sc='\0'; 
  28   1      } 
  29          /*---------------------------------初始化子程序--------------------------------*/
  30          void init(void)
  31          {
  32   1          EA=1;                      //打开CPU总中断请求
  33   1          TMOD=0x01;                                  //定时0工作方式1
  34   1          TH0=0;
  35   1          TL0=0;
  36   1          TF0=0;
  37   1          TR0=0; 
  38   1      }
  39          
  40          /*-------------------------------250us精确延时---------------------------------*/
  41          void delay_500(void) 
  42          {
  43   1          uchar i,j;
  44   1              for(i=0x0A;i>0;i--)
  45   1              for(j=0x07;j>0;j--);
  46   1      }
  47          
  48          
  49          /*-------------------------外部中断0子程序(解码程序)---------------------------*/
  50          void jieshou(void)
  51          {
  52   1              uchar i,buf[17]; 
  53   1              uint k;
  54   1      kk:     while(js==1);            //排除高电平的错读
  55   1              while(js==0);            //等待低电平
C51 COMPILER V8.02   2272JS                                                                02/26/2009 16:23:13 PAGE 2   

  56   1              TL0=0;
  57   1          TR0=1;
  58   1          while(js==1);                //等待高电平
  59   1          TR0=0;
  60   1              if(TL0>27||TL0<20)                                               
  61   1              goto kk;
  62   1              //       displayOneChar(0,0,'1');
  63   1              for(i=0;i<16;i++)
  64   1          { 
  65   2                      TL0=0;
  66   2                      TF0=0;
  67   2                      while(js==0);
  68   2                      TR0=1;
  69   2              while(js==1);            //等待高电平
  70   2              TR0=0;
  71   2                      buf[i]=TL0;
  72   2          }
  73   1      //      displayOneChar(1,0,'2');
  74   1                      for(i=0;i<16;i++)
  75   1                      { 
  76   2                  if(buf[i]<10&&buf[i]>4)
  77   2                    k=0;
  78   2                  else 
  79   2                              if(buf[i]<16&&buf[i]>10)
  80   2                    k=1;
  81   2                  else 
  82   2                   goto kk; 
  83   2                              wendu=wendu<<1;           
  84   2                              wendu=wendu|k;
  85   2      
  86   2                               /*
  87   2                              qq=buf[i]/10;
  88   2                              pp=buf[i]%10;
  89   2                              if(m>14) 
  90   2                              {
  91   2                                      m=0;
  92   2                                      n=~n;
  93   2                              }
  94   2                              displayOneChar(m,n,'0'+qq);
  95   2                              displayOneChar(m+1,n,'0'+pp);
  96   2                              m=m+3;
  97   2                              */
  98   2                      } 
  99   1              //      if(wendu==0x1000) displayOneChar(2,0,'3');
 100   1              //      displayOneChar(2,0,'4');
 101   1      }
 102          /******************显示当前温度********************************************/
 103          void diswendu()
 104          {
 105   1          IntToStr(wendu,&bc[0],5);
 106   1              displayOneChar(0,1,bc[0]);  
 107   1              displayOneChar(1,1,bc[1]); 
 108   1              displayOneChar(2,1,bc[2]); 
 109   1              displayOneChar(3,1,bc[3]); 
 110   1              displayOneChar(4,1,'.'); 
 111   1              displayOneChar(5,1,bc[4]); 
 112   1              displayOneChar(6,1,0xdf);
 113   1          displayOneChar(7,1,'c');
 114   1      }
 115          /*-----------------------------主程序入口--------------------------------------*/
 116          main()
 117          {       
C51 COMPILER V8.02   2272JS                                                                02/26/2009 16:23:13 PAGE 3   

 118   1              uchar i,j;
 119   1      //      uchar x_3,x_4,x_5;
 120   1          delay_500();
 121   1              inttilcs();
 122   1              init(); 
 123   1              while(1)
 124   1              { 
 125   2              jieshou();
 126   2              diswendu(); 
 127   2      //displayOneChar(0,0,'0'); 
 128   2                      for(i=0;i<160;i++)
 129   2                      for(j=0;j<160;j++);
 130   2              }
 131   1      }


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