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

📄 timer.lst

📁 定时设计一个单片机控制的简易定时报警器。要求根据设定的初始值(59-1秒)进行倒计时
💻 LST
字号:
C51 COMPILER V7.06   TIMER                                                                 11/01/2008 16:45:31 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE TIMER
OBJECT MODULE PLACED IN Timer.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Timer.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /********************************************************************/
   2          /**                                                                **/
   3          /**             用单片机控制的简易定时器报警器                     **/
   4          /**             初始值为59-1S,进行倒计时。                         **/
   5          /**                             一共有s1,s2,s3,s4三个按键                          **/
   6          /**             s1:设定键                                         **/
   7          /**                             s2:确定键                                         **/
   8          /**                             s3:递增键                                         **/
   9          /**                             s4:递减键                                         **/                                    
  10          /**                                                                **/
  11          /**             当计时到00时,数码管闪烁00,以1Hz进行闪烁          **/
  12          /**             P1口接彩灯                                         **/
  13          /**作  者: 窦颖艳         2008年11月1日于冶金学院实训楼1           **/                            
  14          /**                                                                **/
  15          /********************************************************************/
  16          
  17          #include<reg52.h>
  18          #define uchar unsigned char
  19          #define uint unsigned int
  20          uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0-9段选
  21          uchar code tab1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//位选
  22          
  23          sbit s1=P3^0;
  24          sbit s2=P3^1;
  25          sbit s3=P3^2;
  26          sbit s4=P3^3;
  27          
  28          char temp;
  29          uchar aa,num,s1num;
  30          
  31          void delay(uint z);
  32          void display(uchar temp);
  33          void flash(uchar cnt);
  34          void init();
  35          void keyscan();
  36          
  37          void delay(uint z)
  38          {
  39   1              uint x,y;
  40   1              for(x=z;x--;x>0)
  41   1              for(y=110;y--;y>0)
  42   1              {;}             
  43   1      }
  44          void display(uchar temp)
  45          {
  46   1              uchar shi,ge;
  47   1              shi=temp/10;
  48   1              ge=temp%10;
  49   1              
  50   1              P0=tab[shi];
  51   1              P2=0xff;
  52   1              P2=tab1[6];
  53   1              delay(5);
  54   1              
  55   1              P0=tab[ge];
C51 COMPILER V7.06   TIMER                                                                 11/01/2008 16:45:31 PAGE 2   

  56   1              P2=tab1[7];
  57   1              delay(5);
  58   1      }
  59          void flash(uchar cnt)
  60          {
  61   1              uchar a;
  62   1              for(a=1;a<=cnt;a++)
  63   1              {
  64   2                P2=0xff;
  65   2                delay(1000);
  66   2                P2=0xfc;
  67   2                delay(1000);
  68   2              }
  69   1      }
  70          
  71          void timer0() interrupt 1
  72          {
  73   1              TH0=(65536-50000)/256;
  74   1              TL0=(65536-50000)%256;
  75   1              aa++;
  76   1              if(aa==20)
  77   1                      {
  78   2                              aa=0;
  79   2                              temp--;
  80   2                              if(temp==-1)
  81   2                              {       
  82   3                               temp=0;
  83   3                               TR0=0;
  84   3                               flash(80); 
  85   3                              }
  86   2                               
  87   2                      }               
  88   1      }
  89          
  90          void init()
  91          {
  92   1              TMOD=0x01;
  93   1              TH0=(65536-50000)/256;
  94   1              TL0=(65536-50000)%256;
  95   1              EA=1;
  96   1              ET0=1;
  97   1              TR0=1;
  98   1              num=0;
  99   1              temp=59;
 100   1      
 101   1      }
 102          
 103          void keyscan()
 104          {
 105   1              if(s1==0)
 106   1              {
 107   2                      delay(20);
 108   2                      if(s1==0)
 109   2                      {
 110   3                              s1num++;
 111   3                              while(!s1);
 112   3                              if(s1num==1)
 113   3                                      {
 114   4                                              TR0=0;                                          
 115   4                                      }
 116   3                      }
 117   2      
C51 COMPILER V7.06   TIMER                                                                 11/01/2008 16:45:31 PAGE 3   

 118   2              }
 119   1                  if(s1num!=0)
 120   1                      {
 121   2                              if(s3==0)
 122   2                              {
 123   3                                  delay(20);
 124   3                                      {
 125   4                                         if(s3==0)
 126   4                                              {
 127   5                                                      while(!s3);
 128   5                                                      if(s1num==1)
 129   5                                                      temp++;
 130   5                                                      
 131   5                                              }
 132   4                                      }
 133   3                              
 134   3                              }
 135   2                          if(s4==0)
 136   2                              {
 137   3                                  delay(20);
 138   3                                      if(s4==0)
 139   3                                      {
 140   4                                              while(!s4);
 141   4                                              if(s1num==1)
 142   4                                              temp--;
 143   4                                      }
 144   3                              }
 145   2      
 146   2      
 147   2                      }
 148   1              
 149   1                              if(s2==0)
 150   1                              {
 151   2                                      delay(20);
 152   2                                      if(s2==0)
 153   2                                      {
 154   3                                              while(!s2);
 155   3                                              TR0=1;                                          
 156   3                                      }
 157   2                              }
 158   1      }       
 159          
 160          void main()
 161          {       
 162   1              init();
 163   1              while(1)
 164   1              {
 165   2              keyscan();      
 166   2              display(temp);  
 167   2              }
 168   1                      
 169   1      
 170   1      }
 171             


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    310    ----
   CONSTANT SIZE    =     18    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4    ----
C51 COMPILER V7.06   TIMER                                                                 11/01/2008 16:45:31 PAGE 4   

   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 + -