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

📄 motormain.lst

📁 串口控制8路舵机程序,本程序适用于III型实验板
💻 LST
字号:
C51 COMPILER V7.06   MOTORMAIN                                                             08/10/2007 13:26:44 PAGE 1   


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

stmt level    source

   1          #include "at89x52.h"
   2          #include "Motor\Motor.h"
   3          #include "series\series.h"
   4          #include "LedDigital\LedDigital.h"
   5          #include "Sound\Sound.h"
   6          #include "MotorMain.h"
   7          
   8          //舵机度数控制                 0      45     90     135    180
   9          //uint const code Motion[5] = {0xfc48,0xf8b6,0xf524,0xf192,0xee00};
  10          
  11          //舵机位选指针
  12          uchar MotorIndex=0x00;
  13          
  14          //接收到的字节数(0-2)
  15          uchar RCharCount=0x00;
  16          
  17          /**************************************************************************
  18          名称:void Timer0Init(void)
  19          功能:定时/计数器0初始化程序
  20                计时2。5ms扫描8个舵机
  21          **************************************************************************/
  22          void Timer0Init(void)
  23          {
  24   1          TH0=0x80;
  25   1              TL0=0x00;
  26   1              TMOD|=0x01;
  27   1              TR0=1;
  28   1      }
  29          
  30          /**************************************************************************
  31          名称:void Timer1Init(void)
  32          功能:定时/计数器1初始化程序
  33                控制正频宽
  34          **************************************************************************/
  35          void Timer1Init(void)
  36          {
  37   1          TH1=0xe0;
  38   1              TL1=0x00;
  39   1              TMOD|=0x10;
  40   1              TR1=1;
  41   1      }
  42          
  43          /*************************************************************************
  44          名称:void Timer2Init(void)
  45          功能:定时/计数器2初始化程序
  46                产生波特率
  47          **************************************************************************/
  48          void Timer2Init(void)
  49          {
  50   1          RCAP2H=0xff;
  51   1              RCAP2L=0xb8;
  52   1          RCLK=1;
  53   1              TCLK=1;
  54   1              TR2=1;
  55   1      }
C51 COMPILER V7.06   MOTORMAIN                                                             08/10/2007 13:26:44 PAGE 2   

  56          
  57          /***************************************************************************
  58          名称:void CommInit(void)
  59          功能:串口初始化程序
  60          ***************************************************************************/
  61          void CommInit(void)
  62          {
  63   1          SM0=0;
  64   1              SM1=1;
  65   1              SM2=0;
  66   1              REN=1;
  67   1      }
  68          
  69          /***************************************************************************
  70          名称:void SystemInit(void)
  71          功能:系统初始化及开中断
  72          ***************************************************************************/
  73          void SystemInit(void)
  74          {
  75   1         Timer0Init();
  76   1         Timer1Init();
  77   1         Timer2Init();
  78   1         CommInit();
  79   1         EA=1;
  80   1         ET2=1;
  81   1         ES=1;
  82   1         ET1=1;
  83   1         ET0=1;
  84   1      }
  85          
  86          /**************************************************************************
  87          名称:void Timer0Server(void)interrupt 1
  88          功能:确定正频宽
  89          **************************************************************************/
  90          void Timer0Server(void)interrupt 1
  91          {
  92   1              P2=0x00;
  93   1      }
  94          
  95          /**************************************************************************
  96          名称:void Timer1Server(void)interrupt 3
  97          功能:产生正频宽
  98          **************************************************************************/
  99          void Timer1Server(void)interrupt 3
 100          {
 101   1              TR1=0;
 102   1          TH1=0xee;
 103   1              TL1=0x00;
 104   1          MotorIndex%=8;  //舵机位选
 105   1          P2=0x01<<MotorIndex;
 106   1          TL0=MotorAngle[MotorIndex];
 107   1              TH0=MotorAngle[MotorIndex]>>8; //舵机角度控制数据
 108   1              MotorIndex++;
 109   1          LedDigitalDisplay(); //在数码管上显示舵机控制信息 
 110   1              TR1=1;
 111   1      }
 112          
 113          /***************************************************************************
 114          名称:void CommInterServer(void)interrupt 4
 115          功能:串口中断服务程序
 116          ***************************************************************************/
 117          void CommInterServer(void)interrupt 4
C51 COMPILER V7.06   MOTORMAIN                                                             08/10/2007 13:26:44 PAGE 3   

 118          {
 119   1         if(RI==1)
 120   1         {
 121   2            MotorCtrl[RCharCount]=CommReceive();
 122   2                RCharCount++;
 123   2                if(RCharCount==0x04)
 124   2                {   
 125   3                    RCharCount=0x00;
 126   3                        SetMotorCtrl(); //设置舵机控制信息
 127   3                        LedDigitalTransport(MotorCtrlInfoToL()); //设置舵机控制信息的显示内容
 128   3                }
 129   2                RI=0;
 130   2         }
 131   1      }
 132          
 133          /******************************************************************************
 134          * 名称: main ()
 135          * 功能: 主函数,整个程序的入口  
 136          ******************************************************************************/
 137          void main()
 138          {
 139   1              SystemInit();
 140   1              while(1)
 141   1              {
 142   2                      ;
 143   2              }
 144   1      }
 145          


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