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

📄 port0-7.lst

📁 工业以太网测控板资料FX04核心编程模块
💻 LST
字号:
C51 COMPILER V7.00  PORT0_7                                                                12/23/2003 16:55:35 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE PORT0_7
OBJECT MODULE PLACED IN port0-7.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE port0-7.c DB OE

stmt level    source

   1          //------------------------------------------------------------------------------------
   2          // Blinky.c
   3          //------------------------------------------------------------------------------------
   4          // Copyright 2001 Cygnal Integrated Products, Inc.
   5          //
   6          // AUTH: BW
   7          // DATE: 4 SEP 01
   8          //
   9          // This program flashes the green LED on the C8051F020 target board about five times
  10          // a second using the interrupt handler for Timer3.
  11          // Target: C8051F02x
  12          //
  13          // Tool chain: KEIL Eval 'c'
  14          //
  15          
  16          //------------------------------------------------------------------------------------
  17          // Includes
  18          //------------------------------------------------------------------------------------
  19          #include <c8051f020.h>                    // SFR declarations
  20          
  21          //------------------------------------------------------------------------------------
  22          // 16-bit SFR Definitions for 'F02x
  23          //------------------------------------------------------------------------------------
  24          
  25          sfr16 DP       = 0x82;                    // data pointer
  26          sfr16 TMR3RL   = 0x92;                    // Timer3 reload value
  27          sfr16 TMR3     = 0x94;                    // Timer3 counter
  28          sfr16 ADC0     = 0xbe;                    // ADC0 data
  29          sfr16 ADC0GT   = 0xc4;                    // ADC0 greater than window
  30          sfr16 ADC0LT   = 0xc6;                    // ADC0 less than window
  31          sfr16 RCAP2    = 0xca;                    // Timer2 capture/reload
  32          sfr16 T2       = 0xcc;                    // Timer2
  33          sfr16 RCAP4    = 0xe4;                    // Timer4 capture/reload
  34          sfr16 T4       = 0xf4;                    // Timer4
  35          sfr16 DAC0     = 0xd2;                    // DAC0 data
  36          sfr16 DAC1     = 0xd5;                    // DAC1 data
  37          
  38          //------------------------------------------------------------------------------------
  39          // Global CONSTANTS
  40          //------------------------------------------------------------------------------------
  41          
  42          #define SYSCLK 22118400                    // approximate SYSCLK frequency in Hz
  43          
  44          //sbit  LED = P1^6;                         // green LED: '1' = ON; '0' = OFF
  45          unsigned char count;
  46          //------------------------------------------------------------------------------------
  47          // Function PROTOTYPES
  48          //------------------------------------------------------------------------------------
  49          void PORT_Init (void);
  50          void Timer3_Init (int counts);
  51          void Timer3_ISR (void);
  52          unsigned char data recv_state _at_ 0x30; 
  53          unsigned char data recv_chksum _at_ 0x33;
  54          //------------------------------------------------------------------------------------
  55          // MAIN Routine
C51 COMPILER V7.00  PORT0_7                                                                12/23/2003 16:55:35 PAGE 2   

  56          //------------------------------------------------------------------------------------
  57          void main (void) {
  58   1           
  59   1      //  unsigned int i;
  60   1         // disable watchdog timer
  61   1         WDTCN = 0xde;
  62   1         WDTCN = 0xad;
  63   1        //OSCXCN = 0x67;                      // start external oscillator with
  64   1                                             // 22.1184MHz crystal
  65   1      
  66   1         //for (i=0; i < 256; i++) ;           // XTLVLD blanking interval (>1ms)
  67   1      
  68   1         //while (!(OSCXCN & 0x80)) ;          // Wait for crystal osc. to settle
  69   1      
  70   1         //OSCICN = 0x88;             
  71   1         PORT_Init ();
  72   1         Timer3_Init (SYSCLK / 12 / 10);        // Init Timer3 to generate interrupts
  73   1                                                // at a 10Hz rate.
  74   1      
  75   1         EA = 1;      
  76   1         count=0x00;
  77   1         while (1) {
  78   2         switch(count)
  79   2         {
  80   3          case 1:P0=0x00;break;
  81   3              case 2:P1=0x00;break;
  82   3              case 3:P2=0x00;break;
  83   3              case 4:P3=0x00;break;
  84   3              case 5:P4=0x00;break;
  85   3              case 6:P5=0x00;break;
  86   3              case 7:P6=0x00;break;
  87   3              case 8:P7=0x00;break;
  88   3              case 9:P0=0xff;break;
  89   3              case 10:P1=0xff;break;
  90   3              case 11:P2=0xff;break;
  91   3              case 12:P3=0xff;break;
  92   3              case 13:P4=0xff;break;
  93   3              case 14:P5=0xff;break;
  94   3              case 15:P6=0xff;break;
  95   3              case 16:P7=0xff;
  96   3                      count=0x00;break;
  97   3              }   
  98   2                               // spin forever
  99   2         }
 100   1      }
 101          
 102          //------------------------------------------------------------------------------------
 103          // PORT_Init
 104          //------------------------------------------------------------------------------------
 105          //
 106          // Configure the Crossbar and GPIO ports
 107          //
 108          void PORT_Init (void)
 109          {
 110   1         XBR2    = 0x40;                     // Enable crossbar and weak pull-ups
 111   1        // P1MDOUT |= 0x40;                    // enable P1.6 (LED) as push-pull output
 112   1       XBR2=0x40;
 113   1          P0MDOUT = 0xFF; // Output configuration for P0 
 114   1          P1MDOUT = 0xFF; // Output configuration for P1 
 115   1          P2MDOUT = 0xFF; // Output configuration for P2 
 116   1          P3MDOUT = 0xFF; // Output configuration for P3 
 117   1          P74OUT = 0xFF;  
C51 COMPILER V7.00  PORT0_7                                                                12/23/2003 16:55:35 PAGE 3   

 118   1      }
 119          
 120          //------------------------------------------------------------------------------------
 121          // Timer3_Init
 122          //------------------------------------------------------------------------------------
 123          //
 124          // Configure Timer3 to auto-reload and generate an interrupt at interval
 125          // specified by <counts> using SYSCLK/12 as its time base.
 126          //
 127          void Timer3_Init (int counts)
 128          {
 129   1         TMR3CN = 0x00;                      // Stop Timer3; Clear TF3;
 130   1                                             // use SYSCLK/12 as timebase
 131   1         TMR3RL  = -counts;                  // Init reload values
 132   1         TMR3    = 0xffff;                   // set to reload immediately
 133   1         EIE2   |= 0x01;                     // enable Timer3 interrupts
 134   1         TMR3CN |= 0x04;                     // start Timer3
 135   1      }
 136          
 137          //------------------------------------------------------------------------------------
 138          // Interrupt Service Routines
 139          //------------------------------------------------------------------------------------
 140          
 141          //------------------------------------------------------------------------------------
 142          // Timer3_ISR
 143          //------------------------------------------------------------------------------------
 144          // This routine changes the state of the LED whenever Timer3 overflows.
 145          //
 146          void Timer3_ISR (void) interrupt 14
 147          {
 148   1         TMR3CN &= ~(0x80);                     // clear TF3
 149   1         //LED = ~LED;                            // change state of LED
 150   1       count++;
 151   1      }


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