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

📄 ss_sweep.lst

📁 在采用 320x240 屏的设计实验箱上运行
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V8.02   SS_SWEEP                                                              12/07/2007 16:59:16 PAGE 1   


C51 COMPILER V8.02, 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

line level    source

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

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

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

 180   2      phase=Freq/3.8147;
 181   2      }
 182   1      if((Freq>=7811)&&(Freq<10415))
 183   1      {
 184   2      div=3;
 185   2      phase=Freq/5.0863;
 186   2      }
 187   1      if((Freq>=10415)&&(Freq<15624))
 188   1      {
 189   2      div=2;
 190   2      phase=Freq/7.6294;
 191   2      }
 192   1      if((Freq>=15624))
 193   1      {
 194   2      div=1;
 195   2      phase=Freq/15.2588;
 196   2      }
 197   1      #endif
 198   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))

⌨️ 快捷键说明

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