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

📄 main.lst

📁 (珍藏)51单片机开发板原理图应用范例、PCB图
💻 LST
字号:
C51 COMPILER V8.02   MAIN                                                                  08/26/2007 17:57:35 PAGE 1   


C51 COMPILER V8.02, 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 <reg52.h>
   2          #include <INTRINS.H>
   3          #include <math.H>
   4          #include <stdio.H>      
   5          #include "Mini51B.H"
   6          #include "LCD1602.h"
   7          
   8          #define UART_ASK 0xA5
   9          
  10          sbit GATE=P3^2;
  11          sbit OPEN=P1^0;
  12          sbit CLRP=P3^5;
  13          sbit BEEP=P1^7;
  14          
  15          unsigned char xdata REG0 _at_ 0xfff0;
  16          unsigned char xdata REG1 _at_ 0xfff1;
  17          unsigned char xdata REG2 _at_ 0xfff2;
  18          unsigned char xdata REG3 _at_ 0xfff3;
  19          
  20          unsigned char str_buff[30];
  21          unsigned char counter;
  22          
  23          
  24          
  25          
  26          void rs232_port_init(void)
  27          {
  28   1              SCON|=0x50;     //串口工作在方式1,异步模式
  29   1              PCON|=0x80;     //波特率翻倍
  30   1              TMOD|=0x20;  //定时器1工作在方式2                       
  31   1              TH1=0xff;       //波特率115200,晶振为22.1184MHz
  32   1              TL1=0xff;                                                       
  33   1              TR1 = 1;  //启动定时器,产生波特率
  34   1              RI  = 0;  //接收标志位清零
  35   1              TI  = 0;  //发送标志位清零
  36   1      //      ES  = 1;  //中断允许
  37   1      //      EA  = 1;
  38   1      }
  39          
  40          void timer0_init()
  41          {
  42   1      
  43   1              TMOD|=0x09;
  44   1              ET0=1;
  45   1              EA=1;
  46   1              TR0=0;  
  47   1      }
  48          
  49          
  50          void uart_putc(unsigned char c)
  51          {
  52   1              SBUF = c;
  53   1              while(!TI);
  54   1              TI = 0;
  55   1      }
C51 COMPILER V8.02   MAIN                                                                  08/26/2007 17:57:35 PAGE 2   

  56          
  57          unsigned char uart_getc()
  58          {
  59   1              while(!RI);
  60   1              RI = 0;
  61   1              return SBUF;
  62   1      }
  63          
  64          void uart_puts(unsigned char *s)
  65          {    
  66   1          while (*s) 
  67   1          {
  68   2              uart_putc(*s);
  69   2              s++;            
  70   2          }
  71   1              uart_putc(0x0d);
  72   1              uart_putc(0x0a);
  73   1      }
  74          
  75          
  76          
  77          main()
  78          {
  79   1              double fx,temp;
  80   1      
  81   1              lcd1602_init();
  82   1              rs232_port_init();
  83   1              timer0_init();
  84   1              OPEN=0;
  85   1          BEEP=0;
  86   1          delay_ms(100);
  87   1          BEEP=1;
  88   1      
  89   1              while(1)
  90   1              {       
  91   2                      
  92   2                      OPEN=0;
  93   2                      while(GATE);
  94   2                      CLRP=1;
  95   2                      _nop_();
  96   2                      _nop_();
  97   2                      _nop_();
  98   2                      _nop_();
  99   2                      CLRP=0;
 100   2      
 101   2                      TH0=0;
 102   2                      TL0=0;
 103   2                      counter=0;
 104   2                      TR0=1;
 105   2                      OPEN=1;
 106   2                      while(counter<1);
 107   2                      OPEN=0;
 108   2                      while(GATE);
 109   2                      TR0=0;          
 110   2      
 111   2      //uart_putc(REG0);                      
 112   2      
 113   2                      temp=counter*65536+TH0*256+TL0;         
 114   2                      fx=1843200/temp;
 115   2                      fx=fx*(REG2*65536+REG1*256+REG0);               
 116   2                      sprintf(str_buff,"%-8.3fHz",fx);
 117   2                      lcd_put_xys(1,1,"f=");  
C51 COMPILER V8.02   MAIN                                                                  08/26/2007 17:57:35 PAGE 3   

 118   2                      lcd_put_xys(3,1,str_buff);      
 119   2                      uart_puts(str_buff);                            
 120   2                      /*
 121   2                      uart_putc(REG2);
 122   2                      uart_putc(REG1);
 123   2                      uart_putc(REG0);                
 124   2                      uart_putc(0x55);
 125   2                      uart_putc(0x55);                */
 126   2      
 127   2                      delay_ms(1000);  
 128   2              }
 129   1      }
 130          
 131          void timer0_int(void) interrupt 1
 132          {
 133   1              counter++;
 134   1      }
 135          
 136          
 137          
 138          //串口接收中断
 139          void serial_int(void) interrupt 4
 140          { 
 141   1          unsigned char temp;
 142   1              if (RI) 
 143   1          {
 144   2                      temp = SBUF;
 145   2                      RI = 0;
 146   2                      switch (temp)
 147   2                      {
 148   3                              case 0:
 149   3                                      //Add your code
 150   3                                      P1 = ~uart_getc();
 151   3                                      break;
 152   3                              case 1:
 153   3                                      //do one task
 154   3      
 155   3                                      break;
 156   3                                      //...
 157   3                                      //...  
 158   3      
 159   3                              case UART_ASK:
 160   3                                      uart_putc(UART_ASK);
 161   3                                      break;
 162   3                              default:
 163   3                                      break;
 164   3                      } 
 165   2          }
 166   1      }


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