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

📄 jishiqi.lst

📁 2010年新增TX-1C程序
💻 LST
字号:
C51 COMPILER V8.02   JISHIQI                                                               06/22/2010 11:32:23 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE JISHIQI
OBJECT MODULE PLACED IN jishiqi.OBJ
COMPILER INVOKED BY: D:\处理软件\keil\C51\BIN\C51.EXE jishiqi.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //可实现计时功能,最大计时时间为99小时。
   2          //支持暂停功能,按键盘中左下角的S2键,可暂停计时;按下S3,可继续计时。
   3          //注意晶振需为11.0592M。
   4          //若为其他数值晶振,请改变TH0与TL0参数值,否则计时会有很大误差 。
   5          
   6          #include<reg51.h>
   7          
   8          #define uchar unsigned char
   9          
  10          sbit dula=P2^6;
  11          sbit wela=P2^7;
  12          sbit beep=P2^3;
  13          sbit lcden=P3^4;
  14          sbit rs=P3^5;
  15          unsigned char halt,j,k,a1,a0,b1,b0,c1,c0,s,f,m,n=255;
  16          unsigned int pp;
  17          unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
  18                                  0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  19          
  20          void delay(unsigned char i)
  21          {
  22   1        for(j=i;j>0;j--)
  23   1          for(k=125;k>0;k--);
  24   1      }
  25          
  26          void display(uchar shi2,uchar shi1,uchar fen2,uchar fen1,uchar miao2,uchar miao1)
  27          {
  28   1         dula=0;
  29   1         P0=table[shi2];
  30   1         dula=1;
  31   1         dula=0;
  32   1         
  33   1         wela=0;
  34   1         P0=0xfe;
  35   1         wela=1;
  36   1         wela=0;
  37   1         delay(5);
  38   1         
  39   1         P0=table[shi1]|0x80;
  40   1         dula=1;
  41   1         dula=0;
  42   1         
  43   1         P0=0xfd;
  44   1         wela=1;
  45   1         wela=0;
  46   1         delay(5);
  47   1      
  48   1         P0=table[fen2];
  49   1         dula=1;
  50   1         dula=0;
  51   1         
  52   1         P0=0xfb;
  53   1         wela=1;
  54   1         wela=0;
  55   1         delay(5);
C51 COMPILER V8.02   JISHIQI                                                               06/22/2010 11:32:23 PAGE 2   

  56   1         
  57   1         P0=table[fen1]|0x80;
  58   1         dula=1;
  59   1         dula=0;
  60   1         
  61   1         P0=0xf7;
  62   1         wela=1;
  63   1         wela=0;
  64   1         delay(5);
  65   1         
  66   1         P0=table[miao2];
  67   1         dula=1;
  68   1         dula=0;
  69   1         
  70   1         P0=0xef;
  71   1         wela=1;
  72   1         wela=0;
  73   1         delay(5);
  74   1         
  75   1         P0=table[miao1];
  76   1         dula=1;
  77   1         dula=0;
  78   1         
  79   1         P0=0xdf;
  80   1         wela=1;
  81   1         wela=0;
  82   1         delay(5);
  83   1      }
  84          
  85          void keyscan()
  86          {
  87   1              if(lcden==0)
  88   1              delay(10);
  89   1              if(lcden==0)
  90   1              {
  91   2                      halt=1;
  92   2              }
  93   1              if(rs==0)
  94   1              halt=0;
  95   1      }
  96          
  97          void main()
  98          {
  99   1              TMOD=0x01;
 100   1              TR0=1;
 101   1              TH0=(65536-46080)/256;// 由于晶振为11.0592,故所记次数应为46080,计时器每隔50000微秒发起一次中断。
 102   1              TL0=(65536-46080)%256;//46080的来历,为50000*11.0592/12
 103   1              ET0=1;
 104   1              EA=1;
 105   1              while(1)
 106   1              {       keyscan();
 107   2                      if(halt==0)
 108   2                      {
 109   3                      TR0=1;
 110   3                      if(pp==20)
 111   3                      {       pp=0;
 112   4                              m++;
 113   4                              n--;
 114   4                              P1=n;//闪烁灯
 115   4                              if(m==60)
 116   4                              {
 117   5                                      m=0;
C51 COMPILER V8.02   JISHIQI                                                               06/22/2010 11:32:23 PAGE 3   

 118   5                                      f++;
 119   5                                      if(f==60)
 120   5                                      {
 121   6                                              f=0;
 122   6                                              s++;
 123   6                                              if(s==99)
 124   6                                              {
 125   7                                                      s=0;
 126   7                                              }
 127   6                                      }
 128   5                              }
 129   4                      }
 130   3                      
 131   3                      a0=s%10;
 132   3                      a1=s/10;
 133   3                      b0=f%10;
 134   3                      b1=f/10;
 135   3                      c0=m%10;
 136   3                      c1=m/10;
 137   3                      display(a1,a0,b1,b0,c1,c0);
 138   3              }
 139   2              else 
 140   2              TR0=0;
 141   2              display(a1,a0,b1,b0,c1,c0);
 142   2              }
 143   1      }
 144          
 145          void time0() interrupt 1
 146          {TH0=(65536-46080)/256;
 147   1              TL0=(65536-46080)%256;
 148   1              pp++;
 149   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    325    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     15       6
   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 + -