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

📄 mb1504.lst

📁 锁相环MB1504的c语言驱动程序 51单片机控制 完整版
💻 LST
字号:
C51 COMPILER V8.02   MB1504                                                                11/24/2008 14:35:57 PAGE 1   


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

line level    source

   1          /*        
   2          //数字锁相环(MB1504)驱动程序
   3          //针对晶体 采用 12M 步进采用 10 KHz 的驱动程序
   4          //        12M / 10K = 1200 = 0x04b0
   5          //        Refer counter          = ( 0x04b0 << 1 ) & 0x8001          SW = 32
   6          //        Refer counter          = ( 0x0960 ) & 0x8001
   7          // Refer counter          = 0x8961 ;
   8          
   9          //针对使用频率范围为  8M -> 60M
  10          //                        Frequence
  11          //                8M                                60M
  12          //                800                                6000
  13          //                0x0320                        0x1770
  14          //   peijianguo 
  15          */
  16          #include < reg52.h >
  17          #include < intrins.h >
  18          
  19          sbit CLK  = P1^0;        //// 9 脚
  20          sbit DATA = P1^1;        //// 10脚
  21          sbit LE   = P1^2;        //// 11脚
  22          
  23          void Send16Bit( unsigned int SendData )
  24          {
  25   1        unsigned char i;
  26   1        unsigned int SendMiddle; 
  27   1      
  28   1        SendMiddle = SendData;
  29   1         LE = 0;      
  30   1         CLK = 0;
  31   1        for( i = 0; i < 16; i ++ )
  32   1                {
  33   2                      DATA = ( SendMiddle & 0x8000 );
  34   2                      _nop_( );        CLK = 1;
  35   2                      _nop_( );        CLK = 0;
  36   2                      SendMiddle = SendMiddle << 1;
  37   2                }
  38   1        LE = 1;          _nop_( );          LE = 0;
  39   1      }
  40          
  41          void Send11Bit( unsigned int SendData )
  42          {
  43   1        unsigned char i;
  44   1        unsigned int  SendMiddle;
  45   1        
  46   1        SendMiddle = SendData;
  47   1        LE = 0;        CLK = 0;
  48   1        for( i = 0; i < 11; i ++ )
  49   1                {
  50   2               DATA = ( SendData & 0x8000 );
  51   2               _nop_( );        CLK = 1;
  52   2               _nop_( );        CLK = 0;
  53   2               SendData = SendData << 1;
  54   2              }
  55   1      }
C51 COMPILER V8.02   MB1504                                                                11/24/2008 14:35:57 PAGE 2   

  56          
  57          void Send8Bit( unsigned char SendData )
  58          {
  59   1        unsigned char i;
  60   1        unsigned char SendMiddle;
  61   1      
  62   1        SendMiddle = SendData;
  63   1        for( i = 0; i < 8; i ++ )
  64   1                {
  65   2               DATA = ( SendData & 0x80 );
  66   2               _nop_( );        CLK = 1;
  67   2               _nop_( );        CLK = 0;
  68   2               SendData = SendData << 1;
  69   2              }
  70   1        LE = 1;        _nop_( );        LE = 0;
  71   1      }
  72          
  73          void SendReferF( void )
  74          { //针对晶体 采用 12M 
  75   1        Send16Bit( 0x8961 ); // 12M Crystal
  76   1      }
  77          
  78          void FrequenceToSend( unsigned int FrequenceD )
  79          {
  80   1        unsigned char AD = 0,        i  = 0;
  81   1        unsigned int  ND = 0,        MiddleF = 2000;
  82   1      
  83   1        if( ( FrequenceD >= 800 ) && ( FrequenceD <= 6000 ) )
  84   1         {                   // 限制  锁定频率范围
  85   2                MiddleF = FrequenceD;
  86   2                ND = ( unsigned int  ) ( MiddleF / 32 );
  87   2                AD = ( unsigned char ) ( MiddleF % 32 );
  88   2                ND = ND << 5;                AD = AD << 1;        AD = AD & 0xfe;//////////
  89   2                Send11Bit( ND );        Send8Bit( AD );
  90   2         }
  91   1      }
  92          
  93          void main( void )
  94          {
  95   1      SendReferF( );           ////MB1504   送基准数 // 初始化
  96   1      FrequenceToSend( 4800 );  ////MB1504        送30 M 
  97   1      while( 1 )
  98   1              {
  99   2              }
 100   1      }


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