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

📄 51

📁 51单片机大量源码
💻
字号:
C51 COMPILER V8.18   BJDJCS                                                                12/15/2009 20:10:53 PAGE 1   


C51 COMPILER V8.18, COMPILATION OF MODULE BJDJCS
OBJECT MODULE PLACED IN BJDJCS.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE BJDJCS.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51.h>       //51芯片管脚定义头文件
   2          #include <intrins.h>     //内部包含延时函数 _nop_();
   3          #define uchar unsigned char
   4          #define uint  unsigned int
   5          uchar code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};  //四相八拍正转编码
   6          uchar code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};  ////四相八拍反转编码
   7          sbit  K1   = P3^2;       //正转
   8          sbit  K2   = P3^3;       //反转
   9          sbit  K3   = P3^4;       //停止
  10          sbit  BEEP = P3^6;       //蜂鸣器
  11          /********************************************************/
  12          /*                                                  
  13          /* 延时t毫秒 
  14          /* 11.0592MHz时钟,延时约1ms                                     
  15          /*                                                      
  16          /********************************************************/
  17          void delay(uint t)
  18          {                           
  19   1         uint k;
  20   1         while(t--)
  21   1         {
  22   2           for(k=0; k<125; k++)
  23   2           { }
  24   2         }
  25   1      }
  26          
  27          /**********************************************************/
  28          void delayB(uchar x)    //x*0.14MS
  29           {
  30   1         uchar i;
  31   1         while(x--)
  32   1         {
  33   2           for (i=0; i<13; i++)
  34   2           { }
  35   2         }
  36   1       }
  37          
  38          /**********************************************************/
  39          void beep()
  40           {
  41   1         uchar i;
  42   1         for (i=0;i<100;i++)
  43   1          { 
  44   2           delayB(4);
  45   2           BEEP=!BEEP;                 //BEEP取反
  46   2          } 
  47   1           BEEP=1;                    //关闭蜂鸣器
  48   1       }
  49          
  50          /********************************************************/
  51          /*
  52          /*步进电机正转
  53          /*
  54          /********************************************************/
  55          void  motor_ffw()
C51 COMPILER V8.18   BJDJCS                                                                12/15/2009 20:10:53 PAGE 2   

  56           { 
  57   1         uchar i;
  58   1         uint  j;
  59   1         for (j=0; j<8; j++)         //转1*n圈 
  60   1          { 
  61   2                  if(K3==0)
  62   2              {break;}                //退出此循环程序
  63   2            for (i=0; i<8; i++)       //一个周期转45度
  64   2              {
  65   3                P1 = FFW[i];          //取数据
  66   3                delay(2);            //调节转速
  67   3              }
  68   2          }
  69   1       }
  70          
  71          /********************************************************/
  72          /*
  73          /*步进电机反转
  74          /*
  75          /********************************************************/
  76          void  motor_rev()
  77          {
  78   1           uchar i;
  79   1               uint  j;
  80   1               for (j=0; j<8; j++)       //转1×n圈
  81   1            {
  82   2                  if(K3==0)
  83   2               {break;}               //退出此循环程序
  84   2              for (i=0; i<8; i++)     //一个周期转45度
  85   2              {
  86   3                P1 = REV[i];          //取数据
  87   3                delay(2);            //调节转速
  88   3              }
  89   2            }
  90   1       }
  91          
  92          /********************************************************
  93          *                                                       
  94          *  主程序                                               
  95          *                                                      
  96          *********************************************************/
  97          
  98          main()
  99           { 
 100   1            uchar r,N=64;             //N 步进电机运转圈数
 101   1         while(1)
 102   1          {  
 103   2            if(K1==0)
 104   2                {
 105   3              beep();
 106   3                      for(r=0;r<N;r++)
 107   3               { 
 108   4                         motor_ffw();       //电机正转
 109   4                         if(K3==0)
 110   4                 {beep();break;}    //退出此循环程序
 111   4                   }
 112   3            }
 113   2                else if(K2==0)
 114   2             { 
 115   3                  beep();
 116   3                      for(r=0;r<N;r++)
 117   3               {
C51 COMPILER V8.18   BJDJCS                                                                12/15/2009 20:10:53 PAGE 3   

 118   4                     motor_rev();       //电机反转
 119   4                         if(K3==0)
 120   4                 {beep();break;}    //退出此循环程序
 121   4                       }
 122   3             }
 123   2                else  
 124   2                      P1 = 0xf0;
 125   2          }
 126   1       }
 127          
 128          /********************************************************/                 


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