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

📄 text1.lst

📁 硬件LPC938单片机
💻 LST
字号:
C51 COMPILER V7.50   TEXT1                                                                 05/27/2008 09:37:07 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND TABS(2)

line level    source

   1          #include <REG938.h>             /*头文件的包含*/
   2          #include <intrins.h>
   3          
   4          #define  uchar unsigned char    /*宏定义*/
   5          #define  uint  unsigned int
   6          #define  ulong  unsigned long
   7          #define  _Nop()  _nop_()        /*定义空指令*/
   8          
   9          uint pwm_b = 1000,pwm_c = 1000;
  10          //sbit motor_stop=P0^3;
  11          sbit cw_flag=P0^3;
  12          sbit ccw_flag=P0^2;
  13          
  14          
  15          uchar cw=0;
  16          uchar ccw=0;
  17          
  18          void CCU_init(void);
  19          void outb_pwm(void);
  20          void outc_pwm(void);
  21          void key_scan(void);
  22          void dally_Nus(uint data us);
  23          
  24          
  25          void dally_Nus(uint data us)
  26          {
  27   1        do
  28   1        {
  29   2          us--;
  30   2        }
  31   1        while (us > 0);
  32   1      
  33   1      }
  34          
  35          /***********************************************************
  36          CCU初始化
  37          ************************************************************/
  38          void CCU_init(void)
  39          {
  40   1        OCB=1;//P89LPC938的引脚P1.6
  41   1        OCC=1;//P89LPC938的引脚P1.7
  42   1        TPCR2H=0x00;  // 
  43   1        TPCR2L=0x18;  // 设置CCU预分频系数为25
  44   1        TCR21=0x04;   // 设置锁相环输入为7372800Hz
  45   1        CCCRB=0x01;   // PWM 输出通道 B
  46   1        CCCRC=0x01;   // PWM 输出通道 C
  47   1        
  48   1        TCR20=0x80;   // 启动 PLL, 输出方式: stop
  49   1        OCB=1;        // 等待一个周期
  50   1        OCC=1;
  51   1        while(PLEEN==0);// 等待 PLL 锁定
  52   1      
  53   1        TOR2H=0x07;   // 重装值 0x1770=6000
  54   1        TOR2L=0xD0;   // 
  55   1      
C51 COMPILER V7.50   TEXT1                                                                 05/27/2008 09:37:07 PAGE 2   

  56   1        TCR21|=0x80;  // 更新重装值
  57   1      
  58   1        OCRBH=0x00;   // 初始化占空比 B 
  59   1        OCRBL=0x00;     
  60   1        TCR21|=0x80;  // 更新占空比数据
  61   1      
  62   1        TCR20=0x82;   // 设置输出模式为不对称 PWM
  63   1      }
  64          
  65          /***********************************************************
  66          通道B电压控制
  67          ************************************************************/
  68          void outb_pwm(void)
  69          {
  70   1        uchar data pwmh,pwml;
  71   1        pwmh = pwm_b / 256;
  72   1        pwml = pwm_b % 256;
  73   1        OCRBH = pwmh;
  74   1        OCRBL = pwml;
  75   1        TCR21 |= 0x80;
  76   1      }
  77          
  78          
  79          /***********************************************************
  80          通道C电压控制
  81          ************************************************************/
  82          void outc_pwm(void)
  83          {
  84   1        uchar data pwmh,pwml;
  85   1        pwmh = pwm_c / 256;
  86   1        pwml = pwm_c % 256;
  87   1        OCRCH = pwmh;
  88   1        OCRCL = pwml;
  89   1        TCR21 |= 0x80;
  90   1      }
  91          
  92          /********************************************************************
  93            键盘检测
  94          ********************************************************************/
  95          void key_scan(void)
  96          {
  97   1      
  98   1        if(cw_flag==0)  
  99   1        {
 100   2          cw=1;
 101   2          ccw=0;
 102   2        }
 103   1        if(ccw_flag==0)
 104   1        {
 105   2          cw=0;
 106   2          ccw=1;
 107   2        }
 108   1      }
 109          
 110          
 111          /********************************************************************
 112            初始化、主控制
 113          ********************************************************************/
 114          void main(void)
 115          {
 116   1        int i,j;
 117   1      
C51 COMPILER V7.50   TEXT1                                                                 05/27/2008 09:37:07 PAGE 3   

 118   1        AUXR1=0x00;
 119   1        
 120   1        P0M1=0x00;      //0000 0000 
 121   1        P0M2=0x00;      //0000 0000 准双向
 122   1        
 123   1        P1M1=0xC0;      //0000 0000 
 124   1        P1M2=0xC0;      //0000 0000 P1.7 P1.6开漏
 125   1        
 126   1        P2M1=0x00;      //0000 0000 
 127   1        P2M2=0x00;      //0000 0000 准双向
 128   1        
 129   1        P3M1=0x00;      //0000 0000 
 130   1        P3M2=0x00;      //0000 0000 准双向
 131   1      
 132   1        P0   = 0xbf;
 133   1        P1   = 0xff;
 134   1        P2   = 0xff;
 135   1        P3   = 0xff;
 136   1      
 137   1        SP   = 0x7f;      //初始化堆栈
 138   1        CCU_init();
 139   1        dally_Nus(5000);
 140   1        while(1)
 141   1        {
 142   2          key_scan();
 143   2          if(cw==1)
 144   2          {
 145   3            for(i=200;i>0;i--)
 146   3            {
 147   4              outb_pwm(); 
 148   4            }
 149   3            while(1);
 150   3            cw=0;
 151   3          }
 152   2          
 153   2          if(ccw==1)
 154   2          {
 155   3            for(j=400;j>0;j--)
 156   3            {
 157   4              outc_pwm();
 158   4            }
 159   3            ccw=0;
 160   3          } 
 161   2        }
 162   1      }


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