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

📄 io.lst

📁 在KEILC下进行编译的程序,单片机可以进行AD,DA数据采集
💻 LST
字号:
C51 COMPILER V7.09   IO                                                                    04/03/2007 16:19:06 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE IO
OBJECT MODULE PLACED IN IO.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE IO.c BROWSE

line level    source

   1          #include "fx2.h"
   2          #include "fx2regs.h"
   3          #include "io.h"
   4          
   5          //#define OTimer_Macro_1msTH    0xD1    /*CLKOUT(48M)/4,24M晶振,1ms定时器中断定时值*/
   6          //#define OTimer_Macro_1msTL    0x20    /*1ms定时器中断定时值*/
   7          #define OTimer_Macro_1msTH    0xF8    /*CLKOUT(48M)/4,24M晶振,1ms定时器中断定时值*/
   8          //#define OTimer_Macro_1msTH    0x88
   9          #define OTimer_Macro_1msTL    0x30    /*1ms定时器中断定时值*/
  10          
  11          //#define OTimer_Macro_1msTH    0xFC    /*CLKOUT(12M)/4,24M晶振,1ms定时器中断定时值*/
  12          //#define OTimer_Macro_1msTL    0x18    /*2ms定时器中断定时值*/
  13          
  14          //#define OTimer_Macro_1msTH    0xFE    /*CLKOUT(12M)/4,24M晶振,1ms定时器中断定时值*/
  15          //#define OTimer_Macro_1msTL    0x0C    /*1ms定时器中断定时值*/
  16          char   AD_X;
  17          
  18          //char   AD0809;
  19           int tttttt=0;
  20          void IO_Init()
  21          {
  22   1              PORTECFG &= ~WORK_LED;  
  23   1      //端口E的PE3取反
  24   1              PORTECFG &= ~CPLD_RST; 
  25   1              /////////////////////////////
  26   1      //      PORTECFG &= ~LED_TS0 ; 
  27   1      //      PORTECFG &= ~LED_TS1 ; 
  28   1      //端口E的PE4取反
  29   1      
  30   1              OEE |= WORK_LED;  
  31   1              OEE |= CPLD_RST;  
  32   1      
  33   1              ////////////////
  34   1               OEE |= LED_TS0;  
  35   1               OEE |= LED_TS1; 
  36   1               OEE |= LED_TS2; 
  37   1      
  38   1      //端口输出使能
  39   1      /////////////////////////////
  40   1              IOE &= ~CPLD_RST;         //CPLD reset
  41   1              IOE |= CPLD_RST;
  42   1              IOE &= ~WORK_LED;         //Word Led Light
  43   1      
  44   1      //      IOE |= WORK_LED;
  45   1      //      IOE &= ~WORK_LED;  
  46   1      
  47   1      ////////////////////
  48   1              IOE &= ~LED_TS0; 
  49   1              IOE &= ~LED_TS1; 
  50   1          IOE &= ~LED_TS2;
  51   1      ////////////////////
  52   1      //需要初始化A和C的端口
  53   1              PORTACFG=0x00;
  54   1              OEA=0xFF;
  55   1              IOA|=0x06;//PA2=1;ADPA1=1       
C51 COMPILER V7.09   IO                                                                    04/03/2007 16:19:06 PAGE 2   

  56   1              PORTCCFG=0x00;
  57   1              OEC=0x00;
  58   1      ///////////////////////////// add by myself
  59   1      }
  60          
  61          void REG_Init()
  62          {
  63   1              CPUCS = 0x10; //48Mhz
  64   1              CKCON = (CKCON&(~bmSTRETCH)) | 1; // Set stretch to 0 (after renumeration)      
  65   1      }
  66          
  67          void Sys_Timer0_Init ()   
  68          {
  69   1          ET0 = 0; /* Forbid T0 INT */
  70   1          TMOD = (TMOD & 0xF0) | 0x01; /*方式1*/
  71   1      //      CKCON |= 0x08;  //T0M = CLKOUT/4
  72   1              CKCON &= 0xF7;  //T0M = CLKOUT/12
  73   1          TF0 = 0; /* Reset */
  74   1          TH0 = OTimer_Macro_1msTH;       
  75   1          TL0 = OTimer_Macro_1msTL;   
  76   1          EA = 1 ; /* CPU Open INT */
  77   1          ET0 = 1; /* Permit T0 INT */
  78   1          PT0 = 0; /* Lower Priority */
  79   1          TR0 = 1; /* Start T0 */
  80   1          return ;
  81   1      }
  82          
  83          
  84          
  85          /*
  86          void Sys_Timer1_Init ()    
  87          {
  88                  TH2  = T1_VALUE ;           // 设置定时器1的初值       
  89                  TL2  = T1_VALUE; 
  90                  T2CON= 0x04;
  91              return ;
  92                  }
  93          */
  94          /*
  95          
  96          void  Timer0_Interrupt() interrupt 2//中断1
  97          
  98          {
  99                  TH0 = 0x01;       //0xD1 
 100              TL0 = 0x20;       //0x20
 101          // 定时器1的定时时间是1到2US之间        
 102                  PA7=~PA7;
 103          
 104          }
 105          */
 106          /*
 107          void  Timer1_Interrupt() interrupt 3//中断1
 108          
 109          
 110          
 111          {
 112          
 113                  TH0 = 0x33;       //0xD1 
 114              TL0 = 0x20;       //0x20
 115                  
 116                  PA2=~PA2;
 117          
C51 COMPILER V7.09   IO                                                                    04/03/2007 16:19:06 PAGE 3   

 118          }
 119          
 120          
 121          */
 122          /*    
 123                  定时器2的定时时间是1MS左右
 124             PA2=1;
 125            
 126             PA2=0;
 127             //delay(100);
 128             PA2=1;//意思是让PA2定时产生一个低电平,经过反向后就是一个AD的启动正脉冲了。
 129          */
 130          
 131          
 132          
 133          
 134          //////////////////////--------------------------------------------------------------
 135           
 136          
 137          
 138          
 139          /*********************************************
 140                  串口0中断服务程序
 141          *********************************************/
 142          
 143          //是不是中断的速度太快了呢?????
 144          //为什么每一个程序中断的都不一样呢?
 145          
 146          /*
 147          void Time1_Interrupt() interrupt 3 
 148          {
 149          //TF1 =0;
 150          //      TH1  = 0x00 ; // 设置定时器1的初值       
 151          //      TL1  = 0x10; 
 152          tttttt=tttttt+1;
 153          if(tttttt==20000)
 154           {
 155                  tttttt=0;
 156          //      PA6=~PA6;
 157          //      PA5=~PA5;
 158                  if(tttttt%2==0)
 159                  {IOA=0x00;}
 160                  if(tttttt%2==1)
 161                  {IOA=0xFF;}
 162           }
 163          
 164          }      
 165          */
 166          
 167          void  Timer0_Interrupt() interrupt 1
 168          {
 169   1      
 170   1              TH0 = OTimer_Macro_1msTH;
 171   1              TL0 = OTimer_Macro_1msTL;
 172   1              PA7=~PA7;
 173   1              PA2=0;
 174   1              PA2=0;
 175   1              PA2=0;
 176   1                      PA2=0;
 177   1              PA2=0;
 178   1              PA2=0;
 179   1      
C51 COMPILER V7.09   IO                                                                    04/03/2007 16:19:06 PAGE 4   

 180   1              PA2=1;
 181   1      //      PA2=~PA2;
 182   1              tttttt++;
 183   1              if(tttttt>=100)
 184   1                      {       
 185   2                      tttttt=0;
 186   2                      PA5=~PA5;       
 187   2                      }
 188   1      }
 189          
 190          
 191          
 192          void ad0809()
 193          {       
 194   1      //int i;
 195   1      //while(PA0==0)
 196   1      //{i++;}
 197   1      
 198   1      if (PA0==1)
 199   1              {       PA1=0;
 200   2      //              for (i=0; i < 4; i++) ;
 201   2      
 202   2                      AD_X=IOC;
 203   2              PA1=1;
 204   2              }
 205   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    176    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3    ----
   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 + -