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

📄 system.lst

📁 1、数控直流恒流源的单片机代码。 2、重要包括电源、输入处理、A/D采集、键盘、LCD显示、D/A输出。
💻 LST
字号:
C51 COMPILER V7.09   SYSTEM                                                                08/24/2007 09:37:12 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE SYSTEM
OBJECT MODULE PLACED IN System.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE System.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg51.h>
   2          #include"Config.h"
   3          #include"IOCfg.c"
   4          #include"TimeDLY.h"
   5          #include"Key.h"
   6          #include"ADC.h"
   7          #include"LCD.h"
   8          #include"ISD1420.h"
   9          #include"DAC.h"
  10          
  11          #define DAC_REF 5.0
  12          
  13          
  14          INT16U  Temp1=0;
  15          FP32    Measure_Current=0;
  16          INT8U   Enter_Flag=0;
  17          
  18          FP32   DAC_Data=0;
  19          INT16U Temp=0;  //存储设定值
  20          INT16U ADC_Data=0;//ADC数字量
  21          
  22          INT8U data1[]={0,0,0,0};//当前值显示数组
  23          INT8U data2[]={0,0,0,0};//设定值显示数组
  24          INT8U data3[]={0,0,0,0};//测量值显示数组
  25          
  26          INT16U CurrentData[]={0xa3b0,0xa3b1,0xa3b2,0xa3b3,0xa3b4,0xa3b5,0xa3b6,0xa3b7,0xa3b8,0xa3b9};
  27          
  28          //0x00~0x09 对应数字0~~9, 0x0a对应"点",0x0b对应"毫安",0x0c对应"电流设定值"
  29          INT8U Voice_data[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c};
  30          
  31          void InitIO()
  32          {
  33   1              DACDIN   = 0;
  34   1              DACSCLK  = 0;
  35   1              DACCS    = 0;
  36   1              ADCPWRD  = 0;
  37   1              ADCBUSY  = 1;
  38   1              ADCRC    = 0;
  39   1              ADCDATA  = 1;
  40   1              ADCSCLK  = 0;
  41   1              ADCSYN   = 1;
  42   1              ADCSBTC  = 0;
  43   1              ADCEXINT = 0;
  44   1              ZLG7289CS  = 1;
  45   1              ZLG7289CLK = 0;
  46   1              ZLG7289DIO = 1;
  47   1              ZLG7289INT = 1;
  48   1              LCDRW    = 0;
  49   1              LCDRS    = 0;
  50   1              LCDRST   = 0;
  51   1              LCDE     = 0;
  52   1              LCDData  = 0x00;
  53   1              PLAYL    = 0;
  54   1              A4     = 0;
  55   1              A3     = 0;  
C51 COMPILER V7.09   SYSTEM                                                                08/24/2007 09:37:12 PAGE 2   

  56   1              A2     = 0;
  57   1              A1     = 0;
  58   1              }
  59                  
  60          void process(INT16U i,INT8U *p)
  61          {
  62   1              p[0]=i/1000;
  63   1              i=i%1000;
  64   1              p[1]=i/100;
  65   1              i=i%100;
  66   1              p[2]=i/10;
  67   1              i=i%10;
  68   1              p[3]=i;
  69   1              }
  70          
  71                  
  72          //放音数组函数:Sound_Play_A()
  73          void Sound_Play_A(INT8U *Data)
  74          {
  75   1              INT8U i;
  76   1              Sound_Play(Voice_data[12]);
  77   1              LDelay(50);
  78   1              if(Data[0]>0)
  79   1              {for(i=0;i<4;i++) {Sound_Play(Voice_data[Data[i]]);}}
  80   1              else
  81   1              {
  82   2                      if(Data[1]>0)
  83   2                      {for(i=1;i<4;i++) {Sound_Play(Voice_data[Data[i]]);}}
  84   2                      else
  85   2              {
  86   3                              if(Data[2]>0)
  87   3                      {for(i=2;i<4;i++) {Sound_Play(Voice_data[Data[i]]);}}
  88   3                              else
  89   3                              {
  90   4                                      if(Data[3]>0)
  91   4                              {for(i=3;i<4;i++) {Sound_Play(Voice_data[Data[i]]);}}
  92   4                                      }
  93   3                              }
  94   2                      }
  95   1              LDelay(50);
  96   1              Sound_Play(Voice_data[11]);
  97   1              LDelay(100);
  98   1              }
  99          
 100          void main()
 101          {
 102   1              INT8U key;
 103   1              InitIO();
 104   1              PLAYL = 1;
 105   1              InitLCD();
 106   1              SetDAC_B(FASTSP,EXTERNAL,DAC_REF,DAC_Data);
 107   1              
 108   1               //以下是电流源输出显示
 109   1              DispOneWord(0,2,0xb5e7);    //"电"
 110   1              DispOneWord(0,3,0xc1f7);    //"流"
 111   1              DispOneWord(0,4,0xd4b4);    //"源"
 112   1               
 113   1              DispOneWord(1,0,0xc9e8);    //"设"
 114   1              DispOneWord(1,1,0xb6a8);    //"定"
 115   1              DispOneWord(1,2,0xd6b5);    //"值"
 116   1              DispTwoCharacter(1,6,0xa3ed,0xa3c1);//"mA"
 117   1                  
C51 COMPILER V7.09   SYSTEM                                                                08/24/2007 09:37:12 PAGE 3   

 118   1              
 119   1              DispOneWord(2,0,0xb5b1);    //"当"      
 120   1              DispOneWord(2,1,0xc7b0);    //"前"
 121   1              DispOneWord(2,2,0xd6b5);    //"值"
 122   1              DispTwoCharacter(2,6,0xa3ed,0xa3c1);//"mA"
 123   1                
 124   1          //以下是测量数值显示
 125   1              DispOneWord(3,0,0xb2e2);    //"测"
 126   1              DispOneWord(3,1,0xc1bf);    //"量"
 127   1              DispOneWord(3,2,0xd6b5);    //"值"
 128   1              DispTwoCharacter(3,6,0xa3ed,0xa3c1);//"mA"
 129   1              
 130   1              while(1)
 131   1              {
 132   2                      if(!ZLG7289INT)           //如果有按键按下
 133   2                      {
 134   3                              key=ZLG7289_ReadKey();   //取得按键数值
 135   3                              switch(key)
 136   3                              {
 137   4                                      case 1://复位
 138   4                                                      {       DAC_Data=0;
 139   5                                                      Temp=0;
 140   5                                                                      Temp1=0;
 141   5                                                      break;}
 142   4                                      case 2://取消,删除
 143   4                                                      { Temp=Temp/10;
 144   5                                                                      break;}
 145   4                                      case 3://确认
 146   4                                                        { Temp1=Temp;
 147   5                                                                      DAC_Data=Temp1*0.0025;
 148   5                                                      Temp=0;
 149   5                                                                      Enter_Flag=1;
 150   5                                                              break;}
 151   4                                      case 4://UP
 152   4                                                 {    Temp1+=1;
 153   5                                                        DAC_Data=Temp1*0.0025;
 154   5                                                      Temp=0;
 155   5                                                                      Enter_Flag=1;
 156   5                                                                      break;}
 157   4                                      case 5://DOWN
 158   4                                               {      Temp1-=1;
 159   5                                                        DAC_Data=Temp1*0.0025;
 160   5                                                      Temp=0;
 161   5                                                                      Enter_Flag=1;
 162   5                                                                      break;}
 163   4                                      case 6://0
 164   4                                     {        Temp=Temp*10;
 165   5                                                              break;}
 166   4                                      case 7://1
 167   4                                     {        Temp=Temp*10+1;
 168   5                                                      break;}
 169   4                                      case 8://2
 170   4                                     {        Temp=Temp*10+2;
 171   5                                                      break;}
 172   4                                      case 9://3
 173   4                                     {        Temp=Temp*10+3;
 174   5                                                      break;}
 175   4                                      case 10://4
 176   4                                     {        Temp=Temp*10+4;
 177   5                                                      break;}
 178   4                          case 11://5
 179   4                                     {        Temp=Temp*10+5;
C51 COMPILER V7.09   SYSTEM                                                                08/24/2007 09:37:12 PAGE 4   

 180   5                                                      break;}
 181   4                                      case 12://6
 182   4                                     {        Temp=Temp*10+6;
 183   5                                                      break;}
 184   4                                      case 13://7
 185   4                                     {        Temp=Temp*10+7;
 186   5                                                      break;}
 187   4                                      case 14://8
 188   4                                     {        Temp=Temp*10+8;
 189   5                                                      break;}
 190   4                                      case 15://9
 191   4                                     {        Temp=Temp*10+9;
 192   5                                                      break;}
 193   4                                      default:break;
 194   4                                      }
 195   3                              while(!ZLG7289INT);
 196   3                              }
 197   2                      if(Temp>0)      process(Temp,data2);
 198   2                      else        process(Temp1,data2);
 199   2                      DispOneWord(0,2,0xb5e7);    //"电"
 200   2                      DispOneWord(0,3,0xc1f7);    //"流"
 201   2                      DispOneWord(0,4,0xd4b4);    //"源"
 202   2                      DispOneWord(1,0,0xc9e8);    //"设"
 203   2                      DispOneWord(1,1,0xb6a8);    //"定"
 204   2                      DispOneWord(1,2,0xd6b5);    //"值"
 205   2                      DispTwoCharacter(1,4,CurrentData[data2[0]],CurrentData[data2[1]]);
 206   2                      DispTwoCharacter(1,5,CurrentData[data2[2]],CurrentData[data2[3]]);
 207   2                      DispTwoCharacter(1,6,0xa3ed,0xa3c1);//"mA"
 208   2                      
 209   2                      SetDAC_B(FASTSP,EXTERNAL,DAC_REF,DAC_Data);
 210   2                      process(Temp1,data1);
 211   2                      DispOneWord(2,0,0xb5b1);    //"当"      
 212   2                      DispOneWord(2,1,0xc7b0);    //"前"
 213   2                      DispOneWord(2,2,0xd6b5);    //"值"
 214   2                      DispTwoCharacter(2,4,CurrentData[data1[0]],CurrentData[data1[1]]);
 215   2                      DispTwoCharacter(2,5,CurrentData[data1[2]],CurrentData[data1[3]]);
 216   2                      DispTwoCharacter(2,6,0xa3ed,0xa3c1);//"mA"
 217   2                      
 218   2                      ADC_Data = nSample(EXDCLK_RDNOW,BTC);
 219   2                      Measure_Current = 0.15*ADC_Data;
 220   2                      process((INT16U)Measure_Current,data3);
 221   2                      DispOneWord(3,0,0xb2e2);    //"测"
 222   2                      DispOneWord(3,1,0xc1bf);    //"量"
 223   2                      DispOneWord(3,2,0xd6b5);    //"值"
 224   2                      DispTwoCharacter(3,4,CurrentData[data3[0]],CurrentData[data3[1]]);
 225   2                      DispTwoCharacter(3,5,CurrentData[data3[2]],CurrentData[data3[3]]);
 226   2                      DispTwoCharacter(3,6,0xa3ed,0xa3c1);//"mA"
 227   2                      
 228   2                      //语音播报
 229   2                      if(Enter_Flag==1)
 230   2                      {
 231   3                              Sound_Play_A(data1);
 232   3                      Enter_Flag=0;
 233   3                              }   
 234   2                      }
 235   1              }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1466    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
C51 COMPILER V7.09   SYSTEM                                                                08/24/2007 09:37:12 PAGE 5   

   PDATA SIZE       =   ----    ----
   DATA SIZE        =     60       9
   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 + -