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

📄 dac.lst

📁 本程序在单片机C8051F020上将直流电动机当前的转速值在七段数码管上显示出来
💻 LST
字号:
C51 COMPILER V7.06   DAC                                                                   07/01/2005 16:20:11 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE DAC
OBJECT MODULE PLACED IN dac.OBJ
COMPILER INVOKED BY: c:\KEIL\C51\BIN\C51.exe dac.c DB OE

stmt level    source

   1          #include "c8051f020.h"                
   2          #include <intrins.h>
   3          
   4          
   5          sfr16 DAC0     = 0xd2;                 // DAC0 data
   6          extern unsigned int SaveMotorCount;
   7          extern unsigned int SetSpeed;
   8          extern unsigned char KeyValue;
   9          
  10          #define NOSELECT7279    P5 |= 0x80              //SPICS4(P57)=1
  11          #define SELECT7279      P5 &= ~(0x80)   //SPICS4(P57)=0;
  12          
  13          void Delay1ms(unsigned char T);
  14          void DispLED(char *DispBuf,char ShowDot);       //ShowDot 显示小数点位 
  15          void FlashLED(unsigned char No);        //关闪烁
  16          void Send7279Byte(unsigned char ch);
  17          char GetKeyValue(void);
  18          void WaitKeyOff(void);
  19          extern unsigned int iDAC0;
  20          
  21          
  22          void TestMotor(bit LoopFlag)                                 
  23          {
  24   1              char KeyValue ; 
  25   1              char buf[6];   
  26   1              int SD1; 
  27   1              SetSpeed=2000/20;   // 设定稳定转速                            
  28   1              DAC0=iDAC0;
  29   1              Delay1ms(25);           //等待25ms复位时间 
  30   1              Send7279Byte(0xA4);     //发复位指令 
  31   1              NOSELECT7279;           //置CS高电平 
  32   1              if (LoopFlag==0) return;
  33   1        
  34   1          while(1)
  35   1          {
  36   2                      FlashLED(8);    //关闪烁
  37   2                  for (;;)
  38   2                  {   
  39   3                          KeyValue=GetKeyValue();
  40   3                          if(KeyValue!=-1) 
  41   3                          {
  42   4                              NOSELECT7279;     
  43   4                              WaitKeyOff();
  44   4                          if(KeyValue==0)
  45   4                              {                // 设定键'0'按下显示设定转速状态
  46   5                              buf[0]='E';
  47   5                          buf[1]=' ';
  48   5                          buf[2]=' ';
  49   5                          buf[3]=' ';
  50   5                          buf[4]=' ';
  51   5                          buf[5]=' ';
  52   5                          DispLED(buf,0);
  53   5                          break;
  54   5                      }
  55   4                  }
C51 COMPILER V7.06   DAC                                                                   07/01/2005 16:20:11 PAGE 2   

  56   3                      buf[0]='F';       // 无键按下显示转速
  57   3                      buf[1]=' ';
  58   3                      buf[2]=(SaveMotorCount%10000)/1000; //取千位
  59   3                      buf[3]=(SaveMotorCount%1000)/100;   //取百位
  60   3                      buf[4]=(SaveMotorCount%100)/10;     //取十位
  61   3                      buf[5]=(SaveMotorCount%10);         //取个位
  62   3                      DispLED(buf,0); 
  63   3              }
  64   2                  for (;;)    // 设定千位
  65   2                  {   
  66   3                      KeyValue=GetKeyValue();
  67   3                              if(KeyValue!=-1)
  68   3                              {
  69   4                                  NOSELECT7279;     
  70   4                                  WaitKeyOff();
  71   4                                      if(KeyValue%16<=9)
  72   4                              { 
  73   5                          buf[2]=KeyValue%16;
  74   5                          DispLED(buf,0);
  75   5                          break;
  76   5                      }
  77   4                  }
  78   3              }
  79   2              for (;;)    // 设定百位
  80   2              {       
  81   3                      KeyValue=GetKeyValue();
  82   3                      if(KeyValue!=-1)
  83   3                      {
  84   4                          NOSELECT7279;     
  85   4                          WaitKeyOff();
  86   4                                      if(KeyValue%16<=9)
  87   4                              { 
  88   5                          buf[3]=KeyValue%16;
  89   5                          DispLED(buf,0);
  90   5                          break;
  91   5                      }
  92   4                  }
  93   3              }
  94   2              for (;;)    // 设定十位
  95   2              {       
  96   3                      KeyValue=GetKeyValue();
  97   3                      if(KeyValue!=-1)
  98   3                      {
  99   4                          NOSELECT7279;     
 100   4                          WaitKeyOff();
 101   4                                      if(KeyValue%16<=9)
 102   4                              { 
 103   5                          buf[4]=KeyValue%16;
 104   5                          DispLED(buf,0);
 105   5                          break;
 106   5                      }
 107   4                  }
 108   3              }
 109   2              for (;;)    // 设定个位
 110   2              {       
 111   3                      KeyValue=GetKeyValue();
 112   3                      if(KeyValue!=-1)
 113   3                      {
 114   4                          NOSELECT7279;     
 115   4                          WaitKeyOff();
 116   4                                      if(KeyValue%16<=9)
 117   4                              { 
C51 COMPILER V7.06   DAC                                                                   07/01/2005 16:20:11 PAGE 3   

 118   5                          buf[5]=KeyValue%16;
 119   5                          DispLED(buf,0);
 120   5                          break;
 121   5                      }
 122   4                  }
 123   3              }
 124   2              for (;;)    // 按F键确认
 125   2              {       
 126   3                      KeyValue=GetKeyValue();
 127   3                      if(KeyValue!=-1)
 128   3                      {
 129   4                          NOSELECT7279;     
 130   4                              WaitKeyOff();
 131   4                      if(KeyValue==0x0f)
 132   4                          { 
 133   5                                      SD1 = buf[2]*1000+buf[3]*100+buf[4]*10+buf[5];
 134   5                          if ((SD1<=2700)&&(SD1>=600))// 运转速度在1200至2700转之间较适合
 135   5                                  SetSpeed = SD1/20;    // 更新运转速度
 136   5                                      break;
 137   5                      }
 138   4                  }
 139   3              }   
 140   2          }
 141   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    529    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       9
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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