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

📄 tlv5618.lst

📁 12位da转换程序
💻 LST
字号:
C51 COMPILER V7.06   TLV5618                                                               08/18/2008 16:05:07 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE TLV5618
OBJECT MODULE PLACED IN TLV5618.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TLV5618.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <at89x51.h>
   2           
   3          #define uchar unsigned char
   4          #define uint  unsigned int
   5          #define ulint  unsigned long int
   6          
   7          sbit DIN=P3^4;//串行输入
   8          sbit CLK=P3^3;//工作时钟
   9          sbit CS=P3^2;//片选信号 低电平有效      
  10          
  11          sbit key1=P2^0;
  12          sbit key2=P2^1;
  13          sbit key3=P2^2;
  14          sbit key4=P2^3;
  15          
  16          unsigned char code table_duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98,
  17                                                                          0x88,0x83,0xc6,0xa1,0x86,0x8e,
  18                                                                          0xff,0xc1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  19                                                                          0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x18,
  20                                                                          };
  21          
  22          unsigned char code table_wei[]={0x1f,0x9f,0x5f,0xdf,
  23                                                                          0x4f,0xcf,0x2f,0xaf,0x6f
  24                                                                          };
  25          uchar x1,x2,x3,x4;
  26          uchar y1,y2,y3,y4,y5;
  27          uint xianshi_MV;
  28          ulint xianshi_MA;
  29          
  30          void delay(unsigned int z)
  31          {
  32   1              uchar i,j;
  33   1              for(i=0;i<z;i++)
  34   1                      for(j=0;j<110;j++);
  35   1      }
  36          
  37          void display(void)
  38          {
  39   1              P2=table_wei[0];
  40   1              P0=table_duan[x1+0x20]; 
  41   1              delay(1);
  42   1              P0=table_duan[0x10];
  43   1                      
  44   1              P2=table_wei[1];
  45   1              P0=table_duan[x2]; 
  46   1              delay(1);
  47   1              P0=table_duan[0x10];
  48   1              
  49   1              P2=table_wei[2];
  50   1              P0=table_duan[x3]; 
  51   1              delay(1);
  52   1              P0=table_duan[0x10];
  53   1              
  54   1              P2=table_wei[3];
  55   1              P0=table_duan[x4]; 
C51 COMPILER V7.06   TLV5618                                                               08/18/2008 16:05:07 PAGE 2   

  56   1              delay(1);
  57   1              P0=table_duan[0x10];
  58   1      
  59   1              P2=table_wei[4];
  60   1              P0=table_duan[y1]; 
  61   1              delay(1);
  62   1              P0=table_duan[0x10];
  63   1      
  64   1              P2=table_wei[5];
  65   1              P0=table_duan[y2+0x20]; 
  66   1              delay(1);
  67   1              P0=table_duan[0x10];
  68   1      
  69   1              P2=table_wei[6];
  70   1              P0=table_duan[y3]; 
  71   1              delay(1);
  72   1              P0=table_duan[0x10];
  73   1      
  74   1              P2=table_wei[7];
  75   1              P0=table_duan[y4]; 
  76   1              delay(1);
  77   1              P0=table_duan[0x10];
  78   1      
  79   1              P2=table_wei[8];
  80   1              P0=table_duan[y5]; 
  81   1              delay(1);
  82   1              P0=table_duan[0x10];
  83   1      
  84   1              P2=0xef;
  85   1              P0=table_duan[0x11]; 
  86   1              delay(1);
  87   1              P0=table_duan[0x10];
  88   1      
  89   1              P2=0x8f;
  90   1              P0=table_duan[0x0a]; 
  91   1              delay(1);
  92   1              P0=table_duan[0x10];
  93   1      }               
  94          
  95          void DA_init(uint data1)//data1 待转换的数据
  96          {
  97   1              uchar i;
  98   1              CS=1;
  99   1              DIN=0;
 100   1              CLK=0;
 101   1              CS=0;
 102   1              for(i=0;i<16;i++)
 103   1              {
 104   2              if((data1&0x8000)!=0) //0x0400==0001,0000,0000,0000 B
 105   2                      DIN=1;//数据输出
 106   2              else
 107   2                      DIN=0;//数据输出
 108   2              CLK=1;   //发生时钟
 109   2              CLK=0;   //发生时钟
 110   2              data1<<=1;//逻辑左移
 111   2          }
 112   1              CLK=1;   //发生时钟
 113   1          CLK=0;   //发生时钟
 114   1              CS=1;
 115   1              DIN=0;
 116   1              CLK=0;
 117   1      }
C51 COMPILER V7.06   TLV5618                                                               08/18/2008 16:05:07 PAGE 3   

 118          
 119          void shuju_fenli(void)
 120          {
 121   1              x1=xianshi_MV/1000;
 122   1              x2=(xianshi_MV%1000)/100;
 123   1              x3=(xianshi_MV%100)/10;
 124   1              x4=xianshi_MV%10;
 125   1      
 126   1              y1=xianshi_MA/10000;
 127   1              y2=(xianshi_MA%10000)/1000;
 128   1              y3=(xianshi_MA%1000)/100;
 129   1              y4=(xianshi_MA%100)/10;
 130   1              y5=xianshi_MA%10;
 131   1      }
 132          char code dx516[3] _at_ 0x003b;
 133          void main()
 134          {
 135   1              uint a=0xc800,b=0x4800,c;
 136   1              float d,shang;
 137   1              
 138   1              while(1)
 139   1              {       
 140   2                      P2=0x4f;
 141   2                      if(key1==0)
 142   2                      {
 143   3                              delay(20);
 144   3                              if(key1==0)
 145   3                              {
 146   4                                      a=a+0x0333;
 147   4                                      if(a>0xcfff)
 148   4                                      {
 149   5                                              a=a-0x0fff;
 150   5                                      }
 151   4                                      while(key1==0)
 152   4                                      {;}
 153   4                              }
 154   3                      }
 155   2                      if(key2==0)
 156   2                      {
 157   3                              delay(20);
 158   3                              if(key2==0)
 159   3                              {
 160   4                                      a=a+0x0052;
 161   4                                      if(a>0xcfff)
 162   4                                      {
 163   5                                              a=a-0x0fff;
 164   5                                      }
 165   4                                      while(key2==0)
 166   4                                      {;}
 167   4                              }
 168   3                      }
 169   2                      if(key3==0)
 170   2                      {
 171   3                              delay(20);
 172   3                              if(key3==0)
 173   3                              {
 174   4                                      a=a+0x0008;
 175   4                                      if(a>0xcfff)
 176   4                                      {
 177   5                                              a=a-0x0fff;
 178   5                                      }
 179   4                                      while(key3==0)
C51 COMPILER V7.06   TLV5618                                                               08/18/2008 16:05:07 PAGE 4   

 180   4                                      {;}
 181   4                              }
 182   3                      }
 183   2      
 184   2                      if(key4==0)
 185   2                      {
 186   3                              delay(20);
 187   3                              if(key4==0)
 188   3                              {
 189   4                                      a=a+0x0001;
 190   4                                      if(a>0xcfff)
 191   4                                      {
 192   5                                              a=a-0x0fff;
 193   5                                      }
 194   4                                      while(key4==0)
 195   4                                      {;}
 196   4                              }
 197   3                      }
 198   2      
 199   2                      DA_init(a);
 200   2                      delay(10);
 201   2                      DA_init(b);
 202   2                  delay(10);
 203   2      
 204   2                      c=a;
 205   2                      c=c&0x0fff;
 206   2                      d=c;
 207   2                      shang=d/0x1000;
 208   2                      xianshi_MV=2*2492.3*shang;
 209   2                      xianshi_MV=xianshi_MV+2;
 210   2      
 211   2                      xianshi_MA=xianshi_MV*10;
 212   2                      xianshi_MA=xianshi_MA*10;
 213   2                      xianshi_MA=xianshi_MA*10;
 214   2      
 215   2                      if(xianshi_MV>0&xianshi_MV<10000)
 216   2                              xianshi_MA=xianshi_MA/237.8;
 217   2                      else if(xianshi_MV>10000&xianshi_MV<20000)
 218   2                              xianshi_MA=xianshi_MA/238.5;
 219   2                      else if(xianshi_MV>20000&xianshi_MV<30000)
 220   2                              xianshi_MA=xianshi_MA/238.8;
 221   2                      else if(xianshi_MV>30000&xianshi_MV<40000)
 222   2                              xianshi_MA=xianshi_MA/239;
 223   2                      else if(xianshi_MV>40000&xianshi_MV<50000)
 224   2                              xianshi_MA=xianshi_MA/239.1;
 225   2      
 226   2                      shuju_fenli();
 227   2                      display();
 228   2              }
 229   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1236    ----
   CONSTANT SIZE    =     51    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     15       8
   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 + -