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

📄 mc145170.lst

📁 这是锁相环芯片MC145170程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.01   MC145170                                                              03/16/2008 21:34:52 PAGE 1   


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

line level    source

   1          /************************************** 
   2          MC145170D的驱动程序 
   3          *************************************/ 
   4          
   5          #include <regx52.h> 
   6          #include <intrins.h> 
   7          #include<absacc.h>
   8          //#include "lcd1602.H" 
   9          
  10          /************************************** 
  11          MC145170D控制引脚宏定义 
  12          *************************************/ 
  13          sbit  CLK = P0^0; /*MC145170时钟*/ 
  14          sbit DIN = P0^2; /*MC145170输入*/  
  15          sbit _ENB = P0^1 ;/*MC145170片选*/ 
  16          //sbit _ENB = P1^1 ;
  17          #define Uchar unsigned char
  18          #define Uint  unsigned int
  19          #define Ulong  unsigned long
  20          Uint Frequence=5500;
  21          #define BaseFre 400
  22          #define uint unsigned int 
  23          #define uchar unsigned char
  24          
  25           uchar code DisplayBuffer[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00,0x40,0xFF};  //显示0到
             -9和不显示和显示“-”负号,和显示乱码
  26           uchar data c[8]={0,10,10,10,10,10,10,10};     //初始值为10是为了让数码管不显示任何数字;c[5],c[4],c[3],c[
             -2],c[1]分别显示的万位,千位,百位,十位,个位
  27          void Delay400Ms(void)
  28              {
  29   1           Uchar i = 5;
  30   1           Uint j;
  31   1           while(i--)
  32   1                {
  33   2                 j=7269;
  34   2                 while(j--);
  35   2                 };
  36   1          }
  37          // 短延时
  38          void Delay5Ms(void)
  39              {
  40   1           Uint i = 552;
  41   1           while(i--);
  42   1          }   
  43                  
  44          void delay_1ms()                                  //延时?汇编是1ms
  45           {      int q;
  46   1              for(q=300;q>0;q--);
  47   1        }                 
  48          /************************************** 
  49          名称:delay                                                                                        vf
  50          功能:延时模块 
  51          输入参数:n要延时的周期数 
  52          输出参数:无 
  53          *************************************/ 
C51 COMPILER V8.01   MC145170                                                              03/16/2008 21:34:52 PAGE 2   

  54          /*void delay(uint n) 
  55          { 
  56          uchar i; 
  57          i=n;
  58          while(i--);
  59          }*/ 
  60          /************************************** 
  61          名称:write_MC145170D
  62          功能:MC145170D驱动模块
  63          输出参数:CLK_mode所用时钟数,value为向Register所送数据值  
  64          说明:mode=C表示要向C Register送数据,CLK=8;
  65                    mode=N表示要向N Register送数据,CLK=16;
  66                    mode=R1或R2表示要向R Register送数据,CLK=15或24;
  67          
  68                    C Register每位定义说明
  69                    C7 C7=HIGH时,PDout输出正脉冲,PDout=PHR;C7=LOW时,PDout输出负脉冲,PDout=PHV;PHR,PHV的输出选择,
  70                          C7=HIGH时PDout=PHR-PHV,C7=LOW时PDout=PHV-PHR;
  71                    C6 鉴相器输出选择       C6=HIGH时,从PDout输出,否则从PHR,PHV输出。
  72                    C5 =1时 锁定输出端 LD 有效
  73                          C4 C3 C2 REFout Frequency
  74                          0 0 0 dc (Static Low)
  75                          0 0 1 OSCin
  76                          0 1 0 OSCin /2
  77                          0 1 1 OSCin /4
  78                          1 0 0 OSCin /8 (POR Default)
  79                          1 0 1 OSCin /16
  80                          1 1 0 OSCin /8
  81                          1 1 1 OSCin /16
  82                   C1=1时 FVE启动频率输出
  83                   C0=1时 fRE启动频率输出
  84                   N Register取值范围40 to 65535
  85                   R Register取值范围5 to 32767
  86          *************************************/
  87          void writec(unsigned char d)
  88          {
  89   1            uchar i;
  90   1                _ENB=1;
  91   1                _nop_();
  92   1                _ENB=0;//开始下降沿
  93   1                _nop_();
  94   1                for(i=0;i<8;i++)
  95   1                {  CLK=0;
  96   2                   d=d<<1;
  97   2                   DIN=CY;//将数据放好等待读入
  98   2                       _nop_();
  99   2                       CLK=1;//将数据读入
 100   2                       _nop_();
 101   2                }
 102   1                _ENB=1;
 103   1      } 
 104          void write_R15(Uint r15)
 105          {
 106   1            uchar i,dh,dl;
 107   1                dh=r15/256;
 108   1                dl=r15%256;
 109   1                dh=dh<<1;
 110   1                _ENB=1;
 111   1                _nop_();
 112   1                _ENB=0;//开始下降沿
 113   1                _nop_();
 114   1              
 115   1                for(i=0;i<7;i++)
C51 COMPILER V8.01   MC145170                                                              03/16/2008 21:34:52 PAGE 3   

 116   1                {  CLK=0;
 117   2                   dh=dh<<1;
 118   2                   DIN=CY;//将数据放好等待读入
 119   2                       _nop_();
 120   2                       CLK=1;//将数据读入
 121   2                       _nop_();
 122   2                }
 123   1      
 124   1                for(i=0;i<8;i++)
 125   1                {  CLK=0;
 126   2                   dl=dl<<1;
 127   2                   DIN=CY;//将数据放好等待读入
 128   2                       _nop_();
 129   2                       CLK=1;//将数据读入
 130   2                       _nop_();
 131   2                }
 132   1                _ENB=1;
 133   1      }
 134          void write_N(Uint n)
 135          {
 136   1            uchar i,dh,dl;
 137   1                dh=n/256;
 138   1                dl=n%256;
 139   1                _ENB=1;
 140   1                _nop_();
 141   1                _ENB=0;//开始下降沿
 142   1                _nop_();
 143   1              
 144   1                for(i=0;i<8;i++)
 145   1                {  CLK=0;
 146   2                   dh=dh<<1;
 147   2                   DIN=CY;//将数据放好等待读入
 148   2                       _nop_();
 149   2                       CLK=1;//将数据读入
 150   2                       _nop_();
 151   2                }
 152   1      
 153   1                for(i=0;i<8;i++)
 154   1                {  CLK=0;
 155   2                   dl=dl<<1;
 156   2                   DIN=CY;//将数据放好等待读入
 157   2                       _nop_();
 158   2                       CLK=1;//将数据读入
 159   2                       _nop_();
 160   2                }
 161   1                _ENB=1;
 162   1      }
 163          void write_R24(Uint r24)
 164          {
 165   1            uchar i,dh,dl;
 166   1                dh=r24/256;
 167   1                dl=r24%256;
 168   1                _ENB=1;
 169   1                _ENB=0;//开始下降沿
 170   1      
 171   1                for(i=0;i<8;i++)
 172   1                {  CLK=0;
 173   2                   DIN=CY;//将数据放好等待读入
 174   2                       _nop_();
 175   2                       CLK=1;//将数据读入
 176   2                       _nop_();
 177   2                }
C51 COMPILER V8.01   MC145170                                                              03/16/2008 21:34:52 PAGE 4   

 178   1                for(i=0;i<8;i++)
 179   1                {  CLK=0;
 180   2                   dh=dh<<1;
 181   2                   DIN=CY;//将数据放好等待读入
 182   2                       _nop_();
 183   2                       CLK=1;//将数据读入
 184   2                       _nop_();
 185   2                }
 186   1      
 187   1                for(i=0;i<8;i++)
 188   1                {  CLK=0;
 189   2                   dl=dl<<1;
 190   2                   DIN=CY;//将数据放好等待读入
 191   2                       _nop_();
 192   2                       CLK=1;//将数据读入
 193   2                       _nop_();
 194   2                }
 195   1                _ENB=1;
 196   1      }
 197          /************************************** 
 198          名称:mc145170复位函数
 199          功能:主函数 
 200          输入参数:无 
 201          输出参数:无 
 202          *************************************/ 
 203          void mc145170reset()
 204          {
 205   1          unsigned char i;
 206   1              //4个以上脉冲
 207   1              ENB=1;
 208   1              for(i=0;i<10;i++)
 209   1              {  CLK=0;
 210   2                      _nop_();
 211   2                 DIN=0;
 212   2                 _nop_();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -