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

📄 ide2.lst

📁 c8051f020串口通信程序,电脑向该单片机的串口0发送数据,该串口将发来的数据返回
💻 LST
字号:
C51 COMPILER V7.07   IDE2                                                                  05/13/2007 22:42:10 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE IDE2
OBJECT MODULE PLACED IN ide2.OBJ
COMPILER INVOKED BY: D:\万解程序\keilc\C51\BIN\c51.exe ide2.c DB OE

stmt level    source

   1          
   2          #include <c8051f020.h> // SFR声明 
   3          #include <stdio.h> 
   4          //----------------------------------------------------------------------------- 
   5          // C8051F02X的16位SFR定义 
   6          //----------------------------------------------------------------------------- 
   7          sfr16 DP = 0x82; // 数据指针 
   8          sfr16 TMR3RL = 0x92; // 定时器3重装值 
   9          sfr16 TMR3 = 0x94; // 定时器3计数器 
  10          sfr16 ADC0 = 0xbe; // ADC0数据 
  11          sfr16 ADC0GT = 0xc4; // ADC0大于窗口 
  12          sfr16 ADC0LT = 0xc6; // ADC0小于窗口 
  13          sfr16 RCAP2 = 0xca; // 定时器2捕捉/重装 
  14          sfr16 T2 = 0xcc; // 定时器2 
  15          sfr16 RCAP4 = 0xe4; // 定时器4捕捉/重装 
  16          sfr16 T4 = 0xf4; // 定时器4 
  17          sfr16 DAC0 = 0xd2; // DAC0数据 
  18          sfr16 DAC1 = 0xd5; // DAC1数据 
  19           //----------------------------------------------------------------------------- 
  20           // 全局常量 
  21          //----------------------------------------------------------------------------- 
  22          #define SYSCLK 22118400 // 系统时钟频率
  23            
  24          #define BAUDRATE 9600 // UART波特率
  25           
  26          
  27          
  28          sbit LED = P1^6; // LED=’1’ 意为开 
  29          sbit SW1 = P3^7; // SW1=’0’ 意为按压开关 
  30          //----------------------------------------------------------------------------- 
  31          // 函数原型 
  32          //----------------------------------------------------------------------------- 
  33          void SYSCLK_Init (void); 
  34          void PORT_Init (void); 
  35          void UART0_Init (void); 
  36          
  37          
  38          
  39          
  40          //----------------------------------------------------------------------------- 
  41          // 主程序 
  42          //----------------------------------------------------------------------------- 
  43          void main (void) { 
  44   1      
  45   1      WDTCN = 0xde; // 禁止看门狗定时器 
  46   1      WDTCN = 0xad; 
  47   1      SYSCLK_Init (); // 初始化振荡器 
  48   1      PORT_Init (); // 初始化数据交叉开关和通用IO口 
  49   1      UART0_Init (); // 初始化UART0 
  50   1      //Timer3_Init (SYSCLK/SAMPLERATE0); // 初始化定时器3溢出作为ADC0采样率 
  51   1      //ADC0_Init (); // 初始化ADC 
  52   1      EA  = 1; // 允许全部中断 
  53   1      ES0 = 1;
  54   1      while (1); 
  55   1      
C51 COMPILER V7.07   IDE2                                                                  05/13/2007 22:42:10 PAGE 2   

  56   1       
  57   1      
  58   1      } 
  59          
  60          void SYSCLK_Init (void) 
  61          { 
  62   1      int i; // 延时计数器 
  63   1      OSCXCN = 0x67; // 开启外部振荡器
  64   1      //22.1184MHz晶体  
  65   1      for (i=0; i < 256; i++);  // 等待振荡器启振 
  66   1      while (!(OSCXCN & 0x80)) ; // 等待晶体振荡器稳定 
  67   1      OSCICN = 0x88; // 选择外部振荡器为系统时钟源并允许丢失时钟检测器 
  68   1      } 
  69          
  70          void PORT_Init (void) 
  71          { 
  72   1      XBR0 = 0x04; // 使能UART0 
  73   1      XBR1 = 0x00; 
  74   1      XBR2 = 0x40; // 使能数据交叉开关和弱上拉 
  75   1      P0MDOUT |= 0x01; // 允许TX0为推挽输出 
  76   1      P1MDOUT |= 0x40; // 允许P1.6(LED)为推挽输出 
  77   1      } 
  78          
  79          void UART0_Init (void) 
  80          { 
  81   1      SCON0 = 0x50; // SCON0: 模式1, 8位UART, 使能RX 
  82   1      TMOD = 0x20; // TMOD: 定时器1, 模式2, 8位重装 
  83   1      TH1 = -(SYSCLK/BAUDRATE/16); // 根据波特率的值设定定时器1重装值 
  84   1      TR1 = 1; // 启动定时器1 
  85   1      CKCON |= 0x10; // 定时器1使用系统时钟作为时基 
  86   1      PCON |= 0x80; // SMOD00 = 1 
  87   1      TI0 = 1; // 表示TX0就绪 
  88   1      } 
  89          
  90          void UartInt(void) interrupt 4
  91          {
  92   1        unsigned char temp;
  93   1        RI0 = 0;   
  94   1        LED =~LED;
  95   1        temp = SBUF0;
  96   1        SBUF0 =temp;
  97   1        while(TI0==0);
  98   1        TI0 = 0;
  99   1      }
 100          
 101          
 102          
 103          


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