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

📄 dds9954.lst

📁 基于AD9954的扫频仪程序设计
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V8.02   DDS9954                                                               04/08/2008 23:07:51 PAGE 1   


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

line level    source

   1          //***********************************************************************
   2          //                                              液晶控制芯片ST7920驱动源文件                                    *
   3          //                                                                                                                                              *
   4          //硬件连接说明:                                                                                                                 *
   5          //                                                                                                                                              *
   6          //                              RS(CS)    -----------------------------  P3^1                   *
   7          //                              R/W(STD)  -----------------------------  P3^4                   *
   8          //                              E(SCLK)   -----------------------------  P3^5                   *
   9          //                              PSB       -----------------------------  P0^1                   *
  10          //                              RST       -----------------------------  P0^0                   *
  11          //                              DB0       -----------------------------  P1^0                   *
  12          //                              DB1       -----------------------------  P1^1                   *
  13          //                              DB2       -----------------------------  P1^2                   *
  14          //                              DB3       -----------------------------  P1^3                   *
  15          //                              DB4       -----------------------------  P1^4                   *
  16          //                              DB5       -----------------------------  P1^5                   *
  17          //                              DB6       -----------------------------  P1^6                   *
  18          //                              DB7(BUSY) -----------------------------  P1^7                   *
  19          //                                                                                                                                              *
  20          //***********************************************************************
  21          
  22          #include <reg52.h>
  23          #include<intrins.h>
  24          #include<string.h>
  25          #define uchar unsigned char
  26          #define uint  unsigned int
  27          
  28          #define  COUNT    0x10
  29          
  30          //每行的首地址,基于RT12864-4M型液晶
  31          #define LINE_ONE_ADDRESS   0x80
  32          #define LINE_TWO_ADDRESS   0x90
  33          #define LINE_THREE_ADDRESS 0x88
  34          #define LINE_FOUR_ADDRESS  0x98
  35          
  36          //基本指令集预定义
  37          #define DATA                    1               //数据位
  38          #define COMMAND                 0                       //命令位
  39          #define CLEAR_SCREEN            0x01            //清屏  
  40          #define ADDRESS_RESET           0x02            //地址归零       
  41          #define BASIC_FUNCTION          0x30            //基本指令集
  42          #define EXTEND_FUNCTION         0x34            //扩充指令集
  43          
  44          
  45          //扩展指令集预定义
  46          #define AWAIT_MODE                      0x01            //待命模式      
  47          #define ROLLADDRESS_ON          0x03            //允许输入垂直卷动地址
  48          #define IRAMADDRESS_ON          0x02            //允许输入IRAM地址      
  49          #define SLEEP_MODE                      0x08            //进入睡眠模式
  50          #define NO_SLEEP_MODE           0x0c            //脱离睡眠模式
  51          #define GRAPH_ON                        0x36            //打开绘图模式
  52          #define GRAPH_OFF                       0x34            //关闭绘图模式
  53          
  54          
  55          //并行位定义
C51 COMPILER V8.02   DDS9954                                                               04/08/2008 23:07:51 PAGE 2   

  56          sbit RS=P1^4;
  57          sbit RW=P1^5;
  58          sbit E= P1^6;
  59          
  60          sbit BUSY=P2^7;
  61          
  62          //控制位定义
  63          sbit PSB = P1^7;        //串并选择信号
  64          sbit RST = P3^0;        //复位信号
  65          
  66          
  67          uchar code Tab1[]="扫频仪";  //显示在第一行
  68          uchar code Tab2[]="起始频率:  3KHz";//显示在第二行
  69          uchar code Tab3[]="终止频率:  7KHz";//显示在第三行
  70          uchar code Tab4[]="扫描时间:  4s";//显示在第四行
  71          uchar code Tab5[]={0x54,0xf4};
  72          
  73          unsigned long CFR1 ;                          
  74          unsigned long CFR2 = 0;                    
  75          unsigned long FTW0;                           
  76          unsigned long FTW1;
  77          unsigned long NLSCW;
  78          unsigned long PLSCW;
  79          unsigned long multfreq = 0xFFFFFFFF;    //计算频率控制字的系数
  80          
  81          
  82          
  83          
  84          
  85          //51引脚定义
  86          sbit  IO_UPDATE = P0^0;
  87          sbit  PS1               = P0^1;
  88          sbit  PS0               = P0^2;
  89          sbit  IO_SYNC   = P0^3;
  90          sbit  SDIO              = P0^4;
  91          sbit  SCLK              = P0^5;
  92          sbit  CS                = P0^6;
  93          sbit  SDO               = P0^7;
  94          
  95          
  96          sbit  CS2       = P1^0;
  97          sbit  PWR       = P1^1;
  98          sbit  CLKMS     = P1^2;
  99          sbit  RET       = P1^3;
 100          
 101          
 102          
 103          /***********************************************************************
 104          ** 函数名称:    端口操作
 105          ** 功能描述:    AD9954端口基本操作
 106          ** 输 入:      无     
 107          ** 输 出:      无
 108          ** 全局变量:    无
 109          ** 调用模块:    无
 110          ***********************************************************************/
 111          void SCLK_0(void)
 112          { 
 113   1        SCLK = 0;
 114   1      }
 115          
 116          
 117          void SCLK_1(void)
C51 COMPILER V8.02   DDS9954                                                               04/08/2008 23:07:51 PAGE 3   

 118          {
 119   1        SCLK = 1;
 120   1      }
 121          
 122          
 123          void SDIO_0(void)
 124          {
 125   1        SDIO = 0;
 126   1      }
 127          
 128          
 129          void SDIO_1(void)
 130          {
 131   1        SDIO = 1;
 132   1      }
 133           
 134          
 135          
 136          
 137          void IO_UPDATE_0(void)
 138          {
 139   1        IO_UPDATE = 0;
 140   1      }
 141          
 142          void IO_UPDATE_1(void)
 143          {
 144   1        IO_UPDATE = 1;
 145   1      }
 146          
 147          
 148          
 149          
 150          /***********************************************************************
 151          ** 函数名称:    IO9954_Init
 152          ** 功能描述:    IO_Init
 153          ** 输 入:          无      
 154          ** 输 出:      无
 155          ** 全局变量:    无
 156          ** 调用模块:    无
 157          ***********************************************************************/
 158          void IO9954_Init()
 159          {       
 160   1              CS2= 0;
 161   1          PWR=0;
 162   1          CLKMS=0;
 163   1          RET=0;
 164   1      
 165   1         IO_UPDATE = 0;
 166   1       // PS1                 = 0;
 167   1      //  PS0                 = 0;
 168   1        IO_SYNC       = 0;
 169   1        SDIO          = 0;
 170   1        SCLK          = 0;
 171   1          CS          = 0;
 172   1      //  SDO         = 0;
 173   1      }
 174          
 175          /***********************************************************************
 176          ** 函数名称:    nNop
 177          ** 功能描述:    US级软件延时(不精确)
 178          ** 输 入:      延时参数,值越大时延时越久      
 179          ** 输 出:      无
C51 COMPILER V8.02   DDS9954                                                               04/08/2008 23:07:51 PAGE 4   

 180          ** 全局变量:    无
 181          ** 调用模块:    无
 182          ***********************************************************************/
 183          void nNop(unsigned long nValue)
 184          {
 185   1        unsigned long i;
 186   1        for(i=nValue;i>0;i--);
 187   1      }
 188          
 189          /***********************************************************************
 190          ** 函数名称:    WriteByte
 191          ** 功能描述:    向AD9954发送一字节数据 MSB FIRST
 192          ** 输 入:      unsigned char data   发送的数据     
 193          ** 输 出:      无
 194          ** 全局变量:    无
 195          ** 调用模块:    端口操作 nNop
 196          ***********************************************************************/
 197          void WriteByte(unsigned char Data)
 198          {
 199   1        unsigned char k;
 200   1        for(k=0;k<8;k++) 
 201   1        { 
 202   2         SCLK_0();
 203   2         nNop(4);         //延时很重要
 204   2         if((Data&0x80) == 0x80)
 205   2           SDIO_1();
 206   2         else
 207   2           SDIO_0();
 208   2         Data = Data << 1;
 209   2         nNop(2);        //延时很重要
 210   2         SCLK_1();
 211   2         nNop(4);        //延时很重要
 212   2        }
 213   1      }
 214          
 215          
 216          
 217          
 218          /***********************************************************************
 219          ** 函数名称:    更新寄存器操作
 220          ** 功能描述:    每次更新寄存器的固定操作
 221          ** 输 入:      无      

⌨️ 快捷键说明

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