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

📄 main.lst

📁 一体化锁主程序
💻 LST
字号:
C51 COMPILER V7.50   MAIN                                                                  02/16/2009 09:18:51 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN D:\VW\INTEGR~1\MAIN\MAIN.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\VW\INTEGR~1\MAIN\MAIN.C DB SB OE

line level    source

   1          /*
   2          +---------------------------------------------------+
   3          | Project: MAIN with STC89C5X                       |
   4          | File:    MAIN.c                                   |
   5          | Data:    2008-12-04                               |
   6          | Version: V 1.0                                    |
   7          | Initial Editor: Li Jifeng                         |
   8          +---------------------------------------------------+
   9          | following environments are supported              |
  10          | Processor: STC89C5X                               |
  11          | Compiler: WAVE V                                  |
  12          | hardware: JF-2008                                 |
  13          +---------------------------------------------------+
  14          |    Copyright (C) JF Ltd, 2008                     |
  15          |       All Rights reserved                         |
  16          +---------------------------------------------------+
  17          | 功能简介: the main function                       |
  18          +---------------------------------------------------+
  19          */
  20          
  21          #include "system.h"
  22          
  23          extern bit timer_flag,timer2_out;
  24          extern bit uart_rcv_finish,D0_flag;
  25          extern UINT8 data card[14];
  26          extern UINT16 data LOADP,LOADPP;
  27          extern UINT16 data SAVEP,timer2_tick;
  28          extern UINT8 data I2C_rcv[16];
  29          extern UINT16  Rxsum;
  30          extern UINT16  Rxsum1;
  31          extern UINT8 xdata addr;
  32          extern UINT8 data rec_buf[8];
  33          //extern bit timer0_out;
  34          UINT8 idata card1[12];
  35          bit getspi_flag,open_flag,nopen_flag;
  36          
  37          main()
  38          {
  39   1          UINT8 i;
  40   1          sys_init();
  41   1          while (1)
  42   1          {
  43   2             //WDT_CONTR = 0x3C;             //喂狗
  44   2             if (uart_rcv_finish)
  45   2             {
  46   3                uart_rcv_finish = 0;
  47   3                control();
  48   3             }
  49   2             if(!timer_flag)
  50   2               if(!MCLK)
  51   2               {
  52   3                 if(!getspi(card1,12))
  53   3                   getspi_flag = 1;
  54   3                    //control2();
  55   3                    //uart_send1(card,12);
C51 COMPILER V7.50   MAIN                                                                  02/16/2009 09:18:51 PAGE 2   

  56   3               }
  57   2             if (uart_rcv_finish)
  58   2             {
  59   3                uart_rcv_finish = 0;
  60   3                control();
  61   3             }
  62   2             if(getspi_flag == 1)
  63   2             {
  64   3                getspi_flag = 0;
  65   3                control2();
  66   3             }
  67   2             if(timer2_out)
  68   2             {
  69   3                if(!P2_7)
  70   3                {
  71   4                   for(i=0;i<80;i++);
  72   4                   if(!P2_7)
  73   4                   {
  74   5                      open_flag = 1;
  75   5                   }
  76   4                }
  77   3                else
  78   3                {
  79   4                   if(open_flag)
  80   4                   {
  81   5                      open_flag = 0;
  82   5                      card[0] = 0;
  83   5                      card[1] = 0;
  84   5                      card[2] = 0;
  85   5                      card[3] = 0;
  86   5                      card[4] = 0;
  87   5                      card[5] = 0x20;
  88   5                      card[6] = read_time_byte(0x8d);//sys_year;       //读系统时间 --- 年
  89   5                      card[7] = read_time_byte(0x89);//sys_mon;       //读系统时间 --- 月
  90   5                      card[8] = read_time_byte(0x87);//sys_date;       //读系统时间 --- 日
  91   5                      card[9] = read_time_byte(0x85);//sys_hour;       //读系统时间 --- 时
  92   5                      card[10] = read_time_byte(0x83);//sys_min;      //读系统时间 --- 分
  93   5                      card[11] = read_time_byte(0x81);//sys_second;      //读系统时间 --- 秒
  94   5                      card[12] = 0x40;
  95   5                      card[13] = 0x04;
  96   5                      if(D0_flag)
  97   5                      {
  98   6                         if(SAVEP == LOADP)
  99   6                         {
 100   7                            LOADP++;
 101   7                            SAVEP++;
 102   7                            if(SAVEP > 0x1FF)
 103   7                            {
 104   8                               LOADP = 0;
 105   8                               SAVEP = 0;
 106   8                               I2C_rcv[1] = 0;
 107   8                               I2C_rcv[2] = 0;
 108   8                               I2C_rcv[3] = 0;
 109   8                               I2C_rcv[4] = 0;
 110   8                               AT24C128_write(0x01,I2C_rcv+1,4);
 111   8                               AT24C128_write(0x2000 + 0x1FF*16,card,14);
 112   8                            }
 113   7                            else
 114   7                            {
 115   8                               I2C_rcv[3] = (SAVEP >> 8) & 0x00ff;
 116   8                               I2C_rcv[4] = SAVEP& 0x00ff;
 117   8                               AT24C128_write(0x03,I2C_rcv+3,2);
C51 COMPILER V7.50   MAIN                                                                  02/16/2009 09:18:51 PAGE 3   

 118   8                               AT24C128_write(0x2000 + (SAVEP-1)*16,card,14);
 119   8                            }
 120   7                         }
 121   6                         else
 122   6                         {
 123   7                            SAVEP++;
 124   7                            if(SAVEP > 0x1FF)
 125   7                            {
 126   8                               SAVEP = 0;
 127   8                               D0_flag = 1;
 128   8                               I2C_rcv[3] = (SAVEP >> 8) & 0x00ff;
 129   8                               I2C_rcv[4] = SAVEP& 0x00ff;
 130   8                               I2C_rcv[5] |= 0x01;
 131   8                               AT24C128_write(0x03,I2C_rcv+3,3);
 132   8                               AT24C128_write(0x2000 + (SAVEP-1)*16,card,14);
 133   8                            }
 134   7                            else
 135   7                            {
 136   8                               I2C_rcv[3] = (SAVEP >> 8) & 0x00ff;
 137   8                               I2C_rcv[4] = SAVEP& 0x00ff;
 138   8                               AT24C128_write(0x03,I2C_rcv+3,2);
 139   8                               AT24C128_write(0x2000 + (SAVEP-1)*16,card,14);
 140   8                            }
 141   7                         }
 142   6                      }
 143   5                      else
 144   5                      {
 145   6                         SAVEP++;
 146   6                         if(SAVEP > 0x1FF)
 147   6                         {
 148   7                            SAVEP = 0;
 149   7                            D0_flag = 1;
 150   7                            I2C_rcv[3] = 0;
 151   7                            I2C_rcv[4] = 0;
 152   7                            I2C_rcv[5] = 1;
 153   7                            AT24C128_write(0x03,I2C_rcv+3,3);
 154   7                            AT24C128_write(0x2000 + 0x1FF*16,card,14);
 155   7                         }
 156   6                         else
 157   6                         {
 158   7                            I2C_rcv[3] = (SAVEP >> 8) & 0x00ff;
 159   7                            I2C_rcv[4] = SAVEP& 0x00ff;
 160   7                            AT24C128_write(0x03,I2C_rcv+3,2);
 161   7                            AT24C128_write(0x2000 + (SAVEP-1)*16,card,14);
 162   7                         }
 163   6                      }
 164   5                      timer2_tick = 20;
 165   5                      timer2_out = 0;
 166   5                      nopen_flag = 1;
 167   5                   }
 168   4                }
 169   3             }
 170   2             if(addr != P0)
 171   2             {
 172   3                 addr = P0;
 173   3                 rec_buf[2] = hex_asc((addr >> 4)&0x0F);
 174   3                 rec_buf[3] = hex_asc(addr&0x0F);
 175   3                 Rxsum1 = Rxsum + rec_buf[2] + rec_buf[3] + rec_buf[5];
 176   3             }
 177   2             /*if(timer0_out)
 178   2             {
 179   2                timer0_out = 0;
C51 COMPILER V7.50   MAIN                                                                  02/16/2009 09:18:51 PAGE 4   

 180   2                sys_second = read_time_byte(0x81);     //读系统时间 --- 秒
 181   2                sys_min = read_time_byte(0x83);        //读系统时间 --- 分
 182   2                sys_hour = read_time_byte(0x85);       //读系统时间 --- 时
 183   2                sys_date = read_time_byte(0x87);       //读系统时间 --- 日
 184   2                sys_mon = read_time_byte(0x89);        //读系统时间 --- 月
 185   2                sys_week = read_time_byte(0x8b);       //读系统时间 --- 星期
 186   2                sys_year = read_time_byte(0x8d);       //读系统时间 --- 年
 187   2             }*/
 188   2          }
 189   1      }
C51 COMPILER V7.50   MAIN                                                                  02/16/2009 09:18:51 PAGE 5   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P0 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0080H  1
SAVEP. . . . . . . . . . . . . . . . .  EXTERN   DATA   U_INT    -----  2
P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P2 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A0H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
XICON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C0H  1
P4 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00E8H  1
control. . . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
getspi_flag. . . . . . . . . . . . . .  PUBLIC   DATA   BIT      0000H  1
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
timer2_out . . . . . . . . . . . . . .  EXTERN   DATA   BIT      -----  1
size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
festa. . . . . . . . . . . . . . . . .  TYPEDEF  -----  UNION    -----  2
  whole. . . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0000H  2
  holiday. . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0000H  2
P2_7 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A7H  1
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
card . . . . . . . . . . . . . . . . .  EXTERN   DATA   ARRAY    -----  14
addr . . . . . . . . . . . . . . . . .  EXTERN   XDATA  U_CHAR   -----  1
nopen_flag . . . . . . . . . . . . . .  PUBLIC   DATA   BIT      0001H  1
timer_flag . . . . . . . . . . . . . .  EXTERN   DATA   BIT      -----  1
Rxsum. . . . . . . . . . . . . . . . .  EXTERN   DATA   U_INT    -----  2
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
_read_time_byte. . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
MCLK . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0092H  1
UINT16 . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
bool . . . . . . . . . . . . . . . . .  TYPEDEF  -----  BIT      -----  1
open_flag. . . . . . . . . . . . . . .  PUBLIC   DATA   BIT      0002H  1
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
control2 . . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
_hex_asc . . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
user . . . . . . . . . . . . . . . . .  TYPEDEF  -----  UNION    -----  16
  whole. . . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0000H  16
  class. . . . . . . . . . . . . . . .  MEMBER   -----  STRUCT   0000H  16
_AT24C128_write. . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
card1. . . . . . . . . . . . . . . . .  PUBLIC   IDATA  ARRAY    0000H  12
uart_rcv_finish. . . . . . . . . . . .  EXTERN   DATA   BIT      -----  1
Rxsum1 . . . . . . . . . . . . . . . .  EXTERN   DATA   U_INT    -----  2
rec_buf. . . . . . . . . . . . . . . .  EXTERN   DATA   ARRAY    -----  8
timer2_tick. . . . . . . . . . . . . .  EXTERN   DATA   U_INT    -----  2
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
I2C_rcv. . . . . . . . . . . . . . . .  EXTERN   DATA   ARRAY    -----  16
ULONG32. . . . . . . . . . . . . . . .  TYPEDEF  -----  U_LONG   -----  4
_getspi. . . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
D0_flag. . . . . . . . . . . . . . . .  EXTERN   DATA   BIT      -----  1
LOADP. . . . . . . . . . . . . . . . .  EXTERN   DATA   U_INT    -----  2
sys_init . . . . . . . . . . . . . . .  EXTERN   CODE   PROC     -----  -----
UINT8. . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_CHAR   -----  1
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    481    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V7.50   MAIN                                                                  02/16/2009 09:18:51 PAGE 6   

   DATA SIZE        =   ----    ----
   IDATA SIZE       =     12    ----
   BIT SIZE         =      3    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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