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

📄 main.lst

📁 Proteus实例集锦(包括电路图.仿真程序,各种各样的电路
💻 LST
字号:
C51 COMPILER V8.02   MAIN                                                                  08/15/2007 15:49:18 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 "Mini51B.H"   //所有与硬件相关的接口函数定义
   2          #include "AUTO_ISP.H"  //自动ISP初始化,占用timer1
   3          #include "UART.H"      //串口驱动函数
   4          #include "LCD1602.H"   //LCD1602驱动函数
   5          #include "LCD12864.H"  //LCD12864驱动函数
   6          #include "DS1302.H"        //DS1302实时时钟驱动函数
   7          #include "STCEEPROM.H" //EEPROM读写函数
   8          #include "IRM.H"       //红外解码驱动函数
   9          #include <stdio.h>         //C标准函数库,系统集成
  10          
  11          #include "logo_stuelab.h"
  12          
  13          SYSTEMTIME RTC;
  14          
  15          //中断入口申明,不用最好预留
  16          void extern0_ISR() interrupt 0{}
  17          void timer0_ISR () interrupt 1{}
  18          void extern1_ISR() interrupt 2{}
  19          void timer1_ISR () interrupt 3{}
  20          //void serial_ISR () interrupt 4{} AUTO ISP占用
  21          //void extern2_ISR() interrupt 6{} IRM占用
  22          void extern3_ISR() interrupt 7{}
  23          
  24          
  25          void main()
  26          {       
  27   1              float V;
  28   1              uint DACD;
  29   1              uchar i,temp;
  30   1      
  31   1      
  32   1              uchar str_buff[20];//字符缓冲区
  33   1              timer1_init();//AUTO ISP初始化
  34   1              extern2_init();//红外解码
  35   1      
  36   1      /*****************蜂鸣器测试*****************/
  37   1      //*
  38   1              BEEP_ON();
  39   1              delay_ms(100);
  40   1              BEEP_OFF();
  41   1      /********************************************/
  42   1      
  43   1      /**************STCEEPROM测试*****************/  
  44   1      //每次开机,数码管显示计数加1
  45   1      //EEPROM58在STCEEPROM.H中定义
  46   1              temp = byte_read(EEPROM58);
  47   1              if(temp!=0xff) 
  48   1              {
  49   2                      seg7_disp(temp++);
  50   2                      sector_erase(EEPROM58);
  51   2                      byte_write(EEPROM58,temp);
  52   2              }
  53   1              else byte_write(EEPROM58,0);
  54   1      
  55   1      
C51 COMPILER V8.02   MAIN                                                                  08/15/2007 15:49:18 PAGE 2   

  56   1              array_write(EEPROM58+10,1,&temp);
  57   1              array_read(EEPROM58,1,&temp);
  58   1      /********************************************/  
  59   1      
  60   1      /***************LCD1602测试******************/
  61   1      //*此部分注销只要删除前面一位斜线
  62   1              lcd1602_init();
  63   1              lcd_put_xyns(2,1,14,"www.stuelab.cn");
  64   1      /********************************************/
  65   1      
  66   1      /***************LCD12864测试*****************/
  67   1      //*此部分注销只要删除前面一位斜线
  68   1              lcd12864_init();        
  69   1              lcd12864_put_xywhb(0,0,128,64,stuelab);         
  70   1              delay_ms(1000);
  71   1              lcd12864_clr();
  72   1              lcd12864_put_xyns(1,0,6,hanzi1);
  73   1              lcd12864_put_xyns(0,1,12,hanzi2);
  74   1              lcd12864_put_xyns(0,3,8,hanzi3);
  75   1      /********************************************/
  76   1      
  77   1      /**************LCD12864打点测试**************/
  78   1      //*
  79   1              lcd12864_init();        
  80   1              lcd12864_clr();
  81   1      
  82   1              for(i=0;i<64;i++)
  83   1              {
  84   2                      lcd12864_set_xy(i,i);           
  85   2              }
  86   1      
  87   1              for(i=64;i<128;i++)
  88   1              {
  89   2                      lcd12864_set_xy(i,128-i);               
  90   2              }       
  91   1      /********************************************/
  92   1      
  93   1      /*****************继电器测试*****************/
  94   1      //*
  95   1              JDQ_CLOSE();  //继电器吸合
  96   1              delay_ms(100);
  97   1              JDQ_OPEN();   //继电器打开
  98   1      /********************************************/
  99   1      
 100   1      /***************时钟测试*********************/  
 101   1              Initial_DS1302();
 102   1      /*时间设定,执行一次后删除该部分
 103   1              Write1302(DS1302_MINUTE, 0x40); 
 104   1              Write1302(DS1302_HOUR,   0x16);         
 105   1              Write1302(DS1302_DAY,    0x10);
 106   1              Write1302(DS1302_MONTH,  0x08);
 107   1              Write1302(DS1302_YEAR,   0x07); 
 108   1      /********************************************/  
 109   1      
 110   1              while(1)
 111   1              {
 112   2                      DS1302_GetTime(&RTC);
 113   2                      DateToStr(&RTC);
 114   2                      TimeToStr(&RTC);
 115   2                      //lcd_put_xyns(6,1,8,RTC.DateString);
 116   2                      lcd_put_xyns(1,2,8,RTC.TimeString);                     
 117   2                      
C51 COMPILER V8.02   MAIN                                                                  08/15/2007 15:49:18 PAGE 3   

 118   2                      if(!KEY0)
 119   2                      {
 120   3                              DACD+=10;
 121   3                              put5615_data(DACD);//DAC输出
 122   3                      }               
 123   2                      
 124   2                      V = get1549_data();//读ADC
 125   2                      V = V/200;
 126   2                      sprintf(str_buff,"%3.2f",V);//格式转换
 127   2                      lcd_put_xyns(16,2,1,"V");       
 128   2                      lcd_put_xyns(12,2,4,str_buff);
 129   2      
 130   2                      seg7_disp(irm_code); //数码管显示红外按键解码值
 131   2                      uart_put_uchar(irm_code);//串口发送红外解码值
 132   2      
 133   2                      temp = uart_get_uchar();//此函数为查询模式,要是串口没有数据发送,程序会停在此处
 134   2      
 135   2                      delay_ms(100);          
 136   2              }       
 137   1      }
 138          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   3063    ----
   CONSTANT SIZE    =   1905    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     28      72
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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