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

📄 课设2.lst

📁 51单片机实现夜间防睡记录器
💻 LST
字号:
C51 COMPILER V7.50   课设2                                                                 06/24/2006 19:31:33 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 课设2
OBJECT MODULE PLACED IN 课设2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 课设2.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #define uchar unsigned char
   3          uchar cout, k;//计数标志。
   4          unsigned int cout_j;
   5          uchar miao = 0; //时间初始化
   6          uchar fen = 0;
   7          uchar hour = 10;
   8          uchar flag,i,key,n=0;
   9          sbit P0_0=P0^0;
  10          sbit P0_1=P0^1;
  11          sbit P0_2=P0^2;
  12          bit flag_arm,flag_1,flag_ma;//超过60分报警标志
  13          uchar huanchun[6];
  14          uchar duanma[11] ={0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff};
  15          uchar weima[6] ={ 0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf};
  16          unsigned char code b[]={10,3,2,1,11,6,5,4,12,9,8,7,13,14,0,15};
  17          uchar room[8][3];
  18          void delay(uchar i,uchar k)
  19          {
  20   1              do{     if(flag_ma==0)
  21   2                      {       huanchun[0] = miao % 10;
  22   3                      huanchun[1] = miao / 10;
  23   3                      huanchun[2] = fen % 10;
  24   3                      huanchun[3] = fen / 10;
  25   3                      huanchun[4] = hour % 10;
  26   3                      huanchun[5] = hour / 10;
  27   3                      }
  28   2                      else
  29   2                      {       huanchun[0] = room[k][0] % 10;
  30   3                      huanchun[1] = room[k][0] / 10;
  31   3                      huanchun[2] = room[k][1]% 10;
  32   3                      huanchun[3] = room[k][1] / 10;
  33   3                      huanchun[4] = room[k][2] % 10;
  34   3                      huanchun[5] = room[k][2] / 10;
  35   3                      }
  36   2                 }while(i--);
  37   1      }
  38          baocun(uchar i)
  39          {       room[i][0]=miao;
  40   1              room[i][1]=fen;
  41   1              room[i][2]=hour;
  42   1      }
  43          void dingshi()interrupt 1         //定时50ms
  44          {
  45   1        TH0 = 0xee;
  46   1        TL0 = 0x00;
  47   1        cout++;
  48   1        if (cout == 2)  //   以秒为单位
  49   1        {
  50   2          miao++;
  51   2          cout = 0;
  52   2              cout_j++;//计数标志。
  53   2                if(cout_j==660)flag_1=1,P0_0=0; //
  54   2                if(cout_j==3600){flag_arm=1;P0_1=0;baocun(n);n++;}//报警开,记录当前时刻,存储单元指向下一个以便下次报警
             -记录时间
C51 COMPILER V7.50   课设2                                                                 06/24/2006 19:31:33 PAGE 2   

  55   2          if (miao== 60)
  56   2          {
  57   3            miao = 0;
  58   3            fen++;
  59   3            if (fen == 60)
  60   3            {
  61   4              fen = 0;
  62   4              hour++;
  63   4              if (hour == 12)
  64   4                hour = 0;
  65   4            }
  66   3          }
  67   2        }
  68   1      }
  69          void xianshi()interrupt 3 using 1       //中断显示
  70          {       
  71   1                TH1=0Xf8;                //显示定时两毫秒。
  72   1                TL1=0Xcc;
  73   1            P1 = weima[i];
  74   1            P2 = duanma[huanchun[i]];
  75   1            i++;
  76   1            if (i==6)i=0;
  77   1      }
  78          unsigned char scankey(){
  79   1              unsigned char k,down,up;
  80   1              P3=0x00;
  81   1              P3=0xF0;
  82   1              k=P3;
  83   1              if(k==0xF0)return 0xFF;
  84   1              delay(100,key);         ////////////
  85   1              down=3;
  86   1              while(k&0x80)down--,k<<=1;
  87   1              P3=0x00;
  88   1              P3=0x0F;
  89   1              k=P3;
  90   1              if(k==0x0F)return 0xFF;
  91   1              up=0;
  92   1              while(k&0x01)up+=4,k>>=1;
  93   1              return b[up+down];
  94   1      }//scankey
  95          songjian()
  96          {       unsigned char k;
  97   1              while(1)
  98   1              {       k=scankey();
  99   2                      if(k==scankey()&&k==0xff)break;
 100   2              }
 101   1      }
 102          shortb(uchar i)
 103          {       do{
 104   2                      P0_0=~P0_0;
 105   2                      do{
 106   3                              P0_2=~P0_2;      //
 107   3                              delay(1);       //P0_3 取反频率
*** WARNING C209 IN LINE 107 OF 课设2.C: '_delay': too few actual parameters
 108   3                              }while(i--);// P0_4取反频率
 109   2                      }while(flag_1); 
 110   1      }       
 111                  
 112          longb(uchar i)
 113          {       do{
 114   2                      P0_1=~P0_1;
 115   2                      do{
C51 COMPILER V7.50   课设2                                                                 06/24/2006 19:31:33 PAGE 3   

 116   3                              P0_2=~P0_2;      //
 117   3                              delay(1);       //P0_3 取反频率
*** WARNING C209 IN LINE 117 OF 课设2.C: '_delay': too few actual parameters
 118   3                              }while(i--);// P0_4取反频率
 119   2                      }while(flag_arm);       
 120   1      }               
 121          void main()
 122          {
 123   1        IP=0X0A; //T0,T1,INT0,INT1,
 124   1        TMOD = 0X11;
 125   1        TH0 = 0Xee;
 126   1        TL0 = 0X00;
 127   1        TH1=0Xf8;     
 128   1        TL1=0Xcc;
 129   1        EA = 1;
 130   1        ET0 = 1;
 131   1        ET1=1;
 132   1        TR1=1;
 133   1        TR0 = 1;
 134   1          while (1)
 135   1        {     k=scankey();
 136   2              delay(100,key);  //////////////////////////////////////////////
 137   2              if(k==scankey()&&k!=0xFF)
 138   2              {       songjian();
 139   3                      if(k==15)
 140   3                      {       flag_1=0;
 141   4                              flag_arm=0;
 142   4                              cout_j=0;        //复位,清计数,定时
 143   4                      }
 144   3                      else {key=k;flag_ma=~flag_ma;  } //显示记录的时间
 145   3              }
 146   2              if(flag_1==1)shortb(100);
 147   2              if(flag_arm==1)longb(100);
 148   2        }
 149   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    542    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     58    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      3    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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