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

📄 main.lst

📁 c8051f020模块.rar
💻 LST
字号:
C51 COMPILER V8.02   MAIN                                                                  09/05/2009 06:33:51 PAGE 1   


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

line level    source

   1          #include <c8051f020.h>
   2          
   3          #define uint8 unsigned char
   4          #define uint16 unsigned int
   5          
   6          #define FORWORD 0XC0
   7          #define BACK 0XE0
   8          #define STOP 0X00
   9          
  10          
  11          void DELAY(uint16 time)//控制电机的延时 ,1为1.9us
  12          {
  13   1        while(time--);
  14   1      }
  15          
  16          void Init_PORT(void)
  17          {
  18   1         XBR0=0X06;
  19   1         XBR2=0X40;
  20   1         //P0MDOUT=0XFF;
  21   1         //P0=0;
  22   1      
  23   1      
  24   1      
  25   1      }
  26          
  27          
  28          
  29          void Init_Spi(void)
  30          {
  31   1        SPI0CN=0X03;
  32   1        SPI0CFG=0Xc7;
  33   1        SPI0CKR=199;
  34   1      }
  35          
  36          void Write_spi(uint8 DATA)
  37          {
  38   1        while(TXBSY);
  39   1        //CS=0;
  40   1        SPI0DAT=DATA;
  41   1        //CS=1;
  42   1      }
  43          
  44          
  45          
  46          
  47          
  48          
  49          //----------------------左电机初始化------------------//
  50          void Init_Ch1Duty(uint8 duty) //7f为50%
  51          {
  52   1        Write_spi(0x53);
  53   1        //DELAY(3000);
  54   1        
  55   1        DELAY(200);
C51 COMPILER V8.02   MAIN                                                                  09/05/2009 06:33:51 PAGE 2   

  56   1        Write_spi(duty);
  57   1        //DELAY(3000);
  58   1        DELAY(200);
  59   1      }
  60          
  61          
  62          void Init_Ch1Mode(uint8 NUM) 
  63          {
  64   1        Write_spi(0x50);
  65   1        //DELAY(3000);
  66   1        DELAY(200);
  67   1        Write_spi(NUM);
  68   1        //DELAY(3000);
  69   1        DELAY(200);
  70   1      }
  71          
  72          
  73          //----------------------右电机初始化--------------------//
  74          void Init_Ch2Duty(uint8 duty) 
  75          {
  76   1        Write_spi(0x57);
  77   1        //DELAY(3000);
  78   1        DELAY(200);
  79   1        Write_spi(duty);
  80   1        //DELAY(3000);
  81   1        DELAY(200);
  82   1      }
  83          
  84          
  85          void Init_Ch2Mode(uint8 NUM) 
  86          {
  87   1        Write_spi(0x54);
  88   1        //DELAY(3000);
  89   1        DELAY(200);
  90   1        Write_spi(NUM);
  91   1        //DELAY(3000);
  92   1        DELAY(200);
  93   1      }
  94          
  95          
  96          //----------------左电机状态控制-----------------------//
  97          void Ch1_Forword(void) 
  98          {
  99   1        Init_Ch1Duty(0xee);
 100   1         DELAY(5000);
 101   1        Init_Ch1Mode(FORWORD);
 102   1        DELAY(5000);
 103   1      }
 104          
 105          
 106          void Ch1_Back(void) 
 107          {
 108   1        Init_Ch1Duty(0xee);
 109   1        DELAY(5000);
 110   1        Init_Ch1Mode(BACK);
 111   1        DELAY(5000);
 112   1      }
 113          
 114          void Ch1_Stop(void) 
 115          {
 116   1        Init_Ch1Duty(0x00);
 117   1        DELAY(5000);
C51 COMPILER V8.02   MAIN                                                                  09/05/2009 06:33:51 PAGE 3   

 118   1        Init_Ch1Mode(STOP);
 119   1        DELAY(5000);
 120   1      }
 121           
 122           
 123           
 124          //-------------右电机状态控制--------------------------//
 125          void Ch2_Forword(void) 
 126          {
 127   1        Init_Ch2Duty(0xee);
 128   1        DELAY(5000);
 129   1        Init_Ch2Mode(FORWORD);
 130   1        DELAY(5000);
 131   1      }
 132          
 133          
 134          void Ch2_Back(void) 
 135          {
 136   1        Init_Ch2Duty(0xde);
 137   1        DELAY(5000);
 138   1        Init_Ch2Mode(BACK);
 139   1        DELAY(5000);
 140   1      }
 141          
 142          
 143          void Ch2_Stop(void) 
 144          {
 145   1        Init_Ch2Duty(0x00);
 146   1        DELAY(5000);
 147   1        Init_Ch2Mode(STOP);
 148   1        DELAY(5000);
 149   1      }
 150          
 151          
 152          void Init_SYSCLK(void)
 153          { 
 154   1        uint8 i;
 155   1        OSCXCN = 0X67;//开始外部22.1184M晶振
 156   1        for(i = 0;i < 128;i++); //等待外部起振
 157   1        while(!(OSCXCN & 0X80));      //查询标志位
 158   1        OSCICN = 0X88;//用外部晶振,并使能始终丢
 159   1      }
 160          
 161          
 162          
 163          
 164          //-----------------主函数---------------------------------//
 165          void main(void) 
 166          {
 167   1        WDTCN = 0xde;
 168   1        WDTCN = 0xad;//关闭看门狗
 169   1      
 170   1        Init_SYSCLK();
 171   1        Init_PORT();
 172   1        
 173   1        
 174   1        DELAY(27);//延时60us  
 175   1        Init_Spi(); 
 176   1        //Init_Ch1Duty(0xEE);
 177   1        //DELAY(2000);
 178   1       // DELAY(10);//延时60us
 179   1        //Init_Ch1Mode(BACK);
C51 COMPILER V8.02   MAIN                                                                  09/05/2009 06:33:51 PAGE 4   

 180   1        
 181   1        
 182   1        //DELAY(1000);
 183   1        Ch2_Forword();
 184   1       // DELAY(10000);
 185   1        //DELAY(1000);
 186   1        Ch1_Forword();
 187   1        //EnableInterrupts;  
 188   1      
 189   1        while(1) 
 190   1        {
 191   2               // Ch2_Forword();
 192   2       // DELAY(15000);
 193   2        //DELAY(1000);
 194   2        //Ch1_Forword();
 195   2               /*P0=~P0;
 196   2           DELAY(1);*/
 197   2          //DELAY(15);
 198   2        } /* wait forever */
 199   1        /* please make sure that you never leave this function */
 200   1      }


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