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

📄 main.lst

📁 该设计采用ADC0832实现了四种波形的信号发生器的设计
💻 LST
字号:
C51 COMPILER V8.08   MAIN                                                                  03/03/2009 13:30:12 PAGE 1   


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

line level    source

   1          #include<reg51.h>
   2          #include<LCD12864.h>
   3          #include<wave.h>
   4          
   5          #define uchar unsigned char
   6          #define uint unsigned int
   7          
   8          #define WAVE1 1
   9          #define WAVE2 2
  10          #define WAVE3 3
  11          #define WAVE4 4
  12          
  13          sbit k1=P1^0;
  14          sbit k2=P1^1;
  15          sbit k3=P1^2;
  16          sbit k4=P1^3;
  17          sbit k5=P1^4;
  18          sbit k6=P1^5;
  19          sbit k7=P1^6;
  20          sbit k8=P1^7;
  21          
  22          
  23          uchar add=0;
  24          uint DLY;
  25          
  26          uchar ValueHZ[4]={0,0,0,0};
  27          
  28          void IntKey()interrupt 0 using 1  //外部中断服务程序
  29          {
  30   1              EA=0;
  31   1              if(k1==0)WaveSelect=WAVE1;
  32   1              if(k2==0)WaveSelect=WAVE2;
  33   1              if(k3==0)WaveSelect=WAVE3;
  34   1              if(k4==0)WaveSelect=WAVE4;
  35   1              if(k5==0){
  36   2                      if(ValueHZ[add]==0)ValueHZ[add]=0;
  37   2                      else ValueHZ[add]--;
  38   2                      SetHZ=!SetHZ;
  39   2              }
  40   1              if(k6==0)StartOut=!StartOut;
  41   1              if(k7==0){
  42   2                      if(ValueHZ[add]==9)ValueHZ[add]=9;
  43   2                      else ValueHZ[add]++;
  44   2                      SetHZ=!SetHZ;
  45   2              }
  46   1              if(k8==0){
  47   2                      if(add!=3)add++;
  48   2                      else add=0;
  49   2              }
  50   1              EA=1;
  51   1      }
  52          
  53          void HZ_to_DLY(void){           //计算延时常量函数
  54   1              float value;
  55   1              if((ValueHZ[0]!=0)||(ValueHZ[1]!=0)||(ValueHZ[2]!=0)){
C51 COMPILER V8.08   MAIN                                                                  03/03/2009 13:30:12 PAGE 2   

  56   2                      value=ValueHZ[0]*100+ValueHZ[1]*10+ValueHZ[2]*1;
  57   2                      value=1000000/value;
  58   2                      value/=3;
  59   2                      if(WaveSelect==WAVE1)DLY=(unsigned int)value/2;
  60   2                      if(WaveSelect==WAVE2)DLY=(unsigned int)value/250;
  61   2                      if(WaveSelect==WAVE3)DLY=(unsigned int)value/500;
  62   2                      if(WaveSelect==WAVE4)DLY=(unsigned int)value/170;
  63   2              }
  64   1              else DLY=0;
  65   1      }
  66          
  67          main(){
  68   1              uint i;         
  69   1      
  70   1              EA=1;
  71   1              EX0=1;
  72   1              IT0=1;            //开中断
  73   1      
  74   1              Init_12864();
  75   1              for(i=500;i>0;i--){
  76   2                      delay2us(100);
  77   2              }
  78   1      
  79   1              DisControl();
  80   1                               
  81   1              while(1){
  82   2                      if(WaveSelect==WAVE1)Wave1();
  83   2                      if(WaveSelect==WAVE2)Wave2();
  84   2                      if(WaveSelect==WAVE3)Wave3();
  85   2                      if(WaveSelect==WAVE4)Wave4();
  86   2      
  87   2                      maths(ValueHZ[0],5,0x04);
  88   2                      maths(ValueHZ[1],13,0x04);
  89   2                      maths(ValueHZ[2],21,0x04);
  90   2                      Pagefirst(0x05);
  91   2                      Linefirst(29);
  92   2                      Wdata(0x04);
  93   2                      maths(ValueHZ[3],31,0x04);
  94   2      
  95   2                      old_WaveSelect=WaveSelect;
  96   2                      old_SetHZ=SetHZ;
  97   2      
  98   2                      HZ_to_DLY(); //得到延时常量
  99   2      
 100   2                      while(1){
 101   3                              if(old_WaveSelect!=WaveSelect){
 102   4                                      StartOut=0;
 103   4                                      Direction=0;
 104   4                                      break;
 105   4                              }
 106   3      
 107   3                              if(old_SetHZ!=SetHZ)break;
 108   3      
 109   3                              if(StartOut==1){
 110   4                                      if(WaveSelect==WAVE1)WaveOut1(DLY);              //0HZ-1MHZ
 111   4                                      if(WaveSelect==WAVE2)WaveOut2(DLY);              //0HZ-1MHZ
 112   4                                      if(WaveSelect==WAVE3)WaveOut3(DLY);              //0HZ-666HZ
 113   4                                      if(WaveSelect==WAVE4)WaveOut4(DLY);              //0HZ-588HZ
 114   4                              }
 115   3                      }
 116   2              }
 117   1      }
C51 COMPILER V8.08   MAIN                                                                  03/03/2009 13:30:12 PAGE 3   



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2235    ----
   CONSTANT SIZE    =   1346    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     18      12
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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