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

📄 pll.lst

📁 收音头程序+VFD驱动+遥控接收(LC72130+LA1823)
💻 LST
字号:
C51 COMPILER V7.10   PLL                                                                   03/27/2005 22:39:53 PAGE 1   


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

line level    source

   1          #define uchar unsigned char
   2          #define uint  unsigned int
   3          #define ulong unsigned long
   4          #include <reg52.h>
   5          #include <absacc.h>
   6          #include "mylib.h"
   7          #include "intrins.h"
   8          #define input0 in0.in0
   9          #define input1 in1.in1
  10          #define fm 0
  11          #define am 1
  12          #define up 1
  13          #define down 0
  14          sbit din=P1^5;
  15          sbit clk=P1^6;
  16          sbit dou=P3^7;
  17          sbit cen=P1^4;
  18          extern bit band;
  19          union  
  20            {
  21          ulong all;
  22          struct
  23              {
  24              uchar addr    :8;  //8位输入输出模式选择地址
  25              uint frq      :16; //16位电台频率数值
  26              uchar cankao  :4;  //4位参考频率选择
  27                  uchar xs      :1;  //晶振选择  0:4.5m 1:7.2mhz
  28              uchar cte     :1;  //中频计数控制  1:START 0:REST
  29              uchar inp     :2;  //输入频率范围选择
  30              }in0;
  31            }in0;
  32          union 
  33            {
  34          ulong da;
  35          struct
  36              {
  37                  uchar addr    :8;  //8位输入输出模式选择地址
  38                  uchar bnc     :1;  //空输出B01-B04四个输出口,可以控制外围的电路,常用来做波段切换。
  39                  uchar stmo    :1;  //立体单声道强制转换 设置为1可以选择单声道输出
  40                  uchar ifen    :1;  //中频缓冲输出使能   设置为0选择中频输出同时净音
  41                  uchar band    :1;  //波段选择                   设置为0选择调频
  42                  uchar io      :2;  //两个可以定义的端口,可以做输入也可做输出。再此程序中IO1空,IO2为立体声检测脚
  43                  uchar  ioc     :2;  //设置IO口的工作模式,为0时设置为输入模式,反之。
  44              uchar dz      :2;  //锁相环死区控制,不是很重要。
  45                  uchar ul      :2;  //锁相环控制电压输出驱动模式设01时为直接输出模式(一般采用此种模式)
  46                  uchar doc     :3;  //设置输出数据端DO脚的辅助功能设置010时将指示中频测量的完成状况
  47                  uchar dnc     :1;  //空数据位,不用。
  48                  uchar test    :3;  //测试模式一般全部设置为0
  49                  uchar ifs     :1;  //中频计数器控制,一般设置为1,主要设置中频场强(1:40毫伏0:70毫伏)
  50              uchar dlc     :1;  //电荷泵输出,正常状态为0,设置为1时拉低电位。
  51              uchar tbc     :1;  //设置为1时使B01口输出8HZ的基准脉冲,此时B01口将不能作为通用输出口。
  52                  uchar gt      :2;  //中频测量时间设置最大64MS最小4MS当GT=00时,前两中等待时间3-4MS后两中等待时间为7-8MS,
             -中频信号必须在等待时间结束之前输入!!
  53              }in1;
  54            }in1;
C51 COMPILER V7.10   PLL                                                                   03/27/2005 22:39:53 PAGE 2   

  55          void iniband()
  56            { 
  57   1         input0.addr=0x14;   //输入模式1的地址
  58   1         input0.xs  =0x00;   //选择0为4.5MHZ晶体
  59   1         input0.cte =0x00;   //锁相环内部使能位设置0复位设置为1开始计数。
  60   1         input1.addr=0x94;   //输入模式2的地址
  61   1         input1.bnc =0x00;   //B04本设计未用
  62   1         input1.stmo=0x00;   //默认为立体声输出
  63   1         input1.ifen=0x01;   //中频输出缓冲暂时关闭
  64   1         input1.io  =0x00;   //没有用到,但是可以做为立体声单声道信号检测
  65   1         input1.ioc =0x00;   //将上两个脚全部设置为输出
  66   1         input1.dz  =0x00;   //此设置效果不是很明显可以设置捕捉范围
  67   1         input1.ul  =0x01;   //将锁相环的误差电压直接输出可以设置捕捉灵敏度
  68   1         input1.doc =0x00;   //将DOUT脚的辅助功能设置为中频计数状态检测
  69   1         input1.dnc =0x00;   //空的数据位
  70   1         input1.test=0x00;   //全部设置为0设置为正常状态
  71   1         input1.ifs =0x00;   //中频输入信号强度控制设置此状态,最大限度的减少误台
  72   1         input1.dlc =0x00;   //设置电荷泵正常输出
  73   1         input1.tbc =0x00;   //设置为1时B01将输出8HZ的基准信号但是BO1本收音电路设置为FM/AM转换,应设置为零
  74   1         input1.gt  =0x01;   //将中频测量时间设置为4MS设置太高自动搜索整个频段将会很长
  75   1        }
  76          void iniband1(bit band)//设置调频调幅的不同部分
  77          {
  78   1        if(band==fm)
  79   1         {
  80   2          input0.cankao=0x0c;     //FM步进频率50KHZ
  81   2          input0.inp=0x01;            //输入频率范围10-160MHZ
  82   2          input1.band=fm;
  83   2         }
  84   1        else
  85   1        {
  86   2          input0.cankao=0x05;    //AM步进频率10KHZ
  87   2          input0.inp=0x00;       //输入频率范围0.5-10MHZ
  88   2          input1.band=am;
  89   2         }
  90   1      }
  91          
  92          
  93          ulong stepserch(bit direction,uint freq)//单步搜索形参:步进方向,和基频率
  94          {
  95   1        uchar c;
  96   1        uint a;                                //根据
  97   1        c=(input1.band)?0x10:0x01;              //根据波段选择步进数据AM每次加0X10 FM每次加0X01,具体原因参照数

⌨️ 快捷键说明

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