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

📄 ss_sweep.lst

📁 单片机与fpga组成的dds,单片机部分的原码,其中有320*240的液晶屏的控制
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.07   SS_SWEEP                                                              05/29/2007 13:40:18 PAGE 1   


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

stmt level    source

   1          #include <absacc.h>
   2          #include <reg51.h>
   3          #include <stdlib.h>
   4          #include <math.h>
   5          #include <intrins.h>
   6          #include "display_drv.h"
   7          
   8          
   9          #define uchar unsigned char
  10          #define uint unsigned int
  11          
  12          /*定义开关中断*/
  13          #define DISABLE         EA=0
  14          #define ENABLE          EA=1
  15          #define ON              1
  16          #define OFF             0
  17          
  18          /*定义键盘*/
  19          #define key0            0
  20          #define key1            1
  21          #define key2            2
  22          #define key3            3
  23          #define key4            4
  24          #define key5            5
  25          #define key6            6
  26          #define key7            7
  27          #define key8            8
  28          #define key9            9
  29          #define key_mod         10
  30          #define key_clr         11
  31          #define key_enter       12
  32          
  33          /*define Command*/
  34          
  35          #define Wsin            0
  36          #define Wtri            1
  37          #define Wpul            2
  38          #define Wclr            3
  39           
  40          /*定义端口,P2口用作控制线*/
  41          sbit WR_M=P2^4;                //回送M控制线
  42          sbit RESET_PHASEREG=P2^5;     //复位相位累加器
  43          
  44          /*P1口用作LED显示线*/
  45          sbit LED_CLK=P1^0;   //LED时钟线
  46          sbit LED_DAT=P1^1;   //LED数据线
  47          
  48          sbit Cmd_CS=P2^5;
  49          sbit DC=P2^6;
  50          sbit Mh=P2^7;
  51          sbit Int_wire=P3^2;
  52          
  53          
  54          uchar count=0;       //显示的位数
  55          bit flag=0;         //是否按了ENTER,为0表示没有按
C51 COMPILER V7.07   SS_SWEEP                                                              05/29/2007 13:40:18 PAGE 2   

  56          uchar idata value[5]={0,2,0,0,0};   //存储显示的数值
  57          uchar mh_data=0;                   //送给CPLD的频率步进值高位
  58          uchar ml_data=0;                   //送给CPLD的频率步进值低位
  59          
  60          uchar idata key_pressed;
  61          static uchar key_no;
  62          
  63          void led_display(uchar i);
  64          /*数字'1','2','3','4','5','6','7','8','9','0'的七段码字库*/
  65          const uchar code LED_FONT[11]={  //
  66                  0xFC, //0
  67                  0x60, //1
  68                  0xDA, //2
  69                  0xF2, //3
  70                  0x66, //4
  71                  0xB6, //5
  72                  0xBE, //6
  73                  0xE0, //7
  74                  0xFE, //8
  75                  0xF6, //9
  76                  0x00, //不显示
  77          };
  78          
  79          void init_port()
  80          {
  81   1              uchar i;
  82   1              P0 = 0xFF;
  83   1              P1 = 0xFF;
  84   1              RESET_PHASEREG=1;    //禁止相位累加器工作
  85   1              WR_M=1;              //回送M控制线初始为高电平
  86   1              Cmd_CS=1;
  87   1              P3 = 0xFF;
  88   1              for(i=0;i<6;i++)           
  89   1                  led_display(10); 
  90   1      }
  91          
  92          
  93          void init_interrupt()
  94          { 
  95   1      IE=0x81;     
  96   1      PX0=1;
  97   1      EX0=1;
  98   1      IE0=0;
  99   1      EA=1;
 100   1      IT0=1;        //外部中断0为跳变触发方式
 101   1              ENABLE; 
 102   1      
 103   1             //CPU开中断
 104   1      }
 105          
 106          void led_display(uchar i)
 107          {
 108   1              uchar j,mask;
 109   1              mask=0x01;
 110   1              for(j=0;j<8;j++){
 111   2                      LED_CLK=0;
 112   2                      LED_DAT=( (LED_FONT[i]) & mask);
 113   2                      mask<<=1;
 114   2                      LED_CLK=1;   //上升沿移位
 115   2              }
 116   1      }       
 117          
C51 COMPILER V7.07   SS_SWEEP                                                              05/29/2007 13:40:18 PAGE 3   

 118          
 119          void wait(void)
 120          {
 121   1              unsigned int i;
 122   1                      for(i=0;i<5000;i++);;
 123   1      }
 124          
 125          void delayMs(unsigned char dly)
 126          {
 127   1      unsigned char i;
 128   1      unsigned int k;
 129   1              for(i=dly;i!=0;i--)
 130   1              {
 131   2                      for(k=0;k<1000;k++);                    
 132   2              }
 133   1      }
 134          
 135          
 136          
 137          #define  SysFrq   12
 138          
 139          void SetPhase(unsigned long int Freq)
 140          {
 141   1      unsigned char div;
 142   1      unsigned int  phase;
 143   1      #if SysFrq==12
 144   1      if(Freq>31250)
 145   1      {
 146   2      Freq=31250;
 147   2      value[0]=3;
 148   2      value[1]=1;
 149   2      value[2]=2;
 150   2      value[3]=5;
 151   2      value[4]=0;
 152   2      }
 153   1      if(Freq<1007)
 154   1      {
 155   2      div=31;
 156   2      phase=Freq/0.4922;
 157   2      }
 158   1      
 159   1      if((Freq>=1007)&&(Freq<2081))
 160   1      {
 161   2      div=15;
 162   2      phase=Freq/1.0173;
 163   2      }
 164   1      if((Freq>=2081)&&(Freq<4463))
 165   1      {
 166   2      div=7;
 167   2      phase=Freq/2.1798;
 168   2      }
 169   1      if((Freq>=4463)&&(Freq<6249))
 170   1      {
 171   2      div=5;
 172   2      phase=Freq/3.0517;
 173   2      }
 174   1      if((Freq>=6249)&&(Freq<7811))
 175   1      {
 176   2      div=4;
 177   2      phase=Freq/3.8147;
 178   2      }
 179   1      if((Freq>=7811)&&(Freq<10415))
C51 COMPILER V7.07   SS_SWEEP                                                              05/29/2007 13:40:18 PAGE 4   

 180   1      {
 181   2      div=3;
 182   2      phase=Freq/5.0863;
 183   2      }
 184   1      if((Freq>=10415)&&(Freq<15624))
 185   1      {
 186   2      div=2;
 187   2      phase=Freq/7.6294;
 188   2      }
 189   1      if((Freq>=15624))
 190   1      {
 191   2      div=1;
 192   2      phase=Freq/15.2588;
 193   2      }
 194   1      #endif
 195   1      #if SysFrq==11
              if(Freq>30316)
              {
              Freq=30316;
              value[0]=3;
              value[1]=0;
              value[2]=3;
              value[3]=1;
              value[4]=6;
              }
              if(Freq<928)
              {
              div=31;
              phase=Freq/0.4536;
              }
              
              if((Freq>=928)&&(Freq<1919))
              {
              div=15;
              phase=Freq/0.9375;
              }
              if((Freq>=1919)&&(Freq<4113))
              {
              div=7;
              phase=Freq/2.0090;
              }
              if((Freq>=4113)&&(Freq<5759))
              {
              div=5;
              phase=Freq/2.8125;
              }
              if((Freq>=5759)&&(Freq<7199))
              {
              div=4;
              phase=Freq/3.5156;
              }
              if((Freq>=7199)&&(Freq<10104))
              {
              div=3;
              phase=Freq/4.9345;
              }
              if((Freq>=10104)&&(Freq<15157))
              {
              div=2;
              phase=Freq/7.4017;
              }
              if((Freq>=30316))
C51 COMPILER V7.07   SS_SWEEP                                                              05/29/2007 13:40:18 PAGE 5   

              {
              div=1;
              phase=Freq/14.8034;
              }
              #endif
 247   1      P0=phase&0xff;//((unsigned char *)&phase)[1];

⌨️ 快捷键说明

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