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

📄 定时时钟.lst

📁 本文件包含了使用C语言编写单片机的各种入门程序
💻 LST
字号:
C51 COMPILER V8.02   定时时钟                                                              08/06/2007 12:18:44 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 定时时钟
OBJECT MODULE PLACED IN 定时时钟.OBJ
COMPILER INVOKED BY: G:\Program Files\Keil\C51\BIN\C51.EXE 定时时钟.c DEBUG OBJECTEXTEND

line level    source

   1          #include<reg51.h>
   2          #include<intrins.h>
   3          //===================== 加载头文件和函数
   4          sbit sda=P0^2;//定义数据线
   5          sbit scl=P0^3;//定义时钟线
   6          //===========================
   7           int counter,bulf;//定义变量
   8           int second,minute,hour;//定义变量
   9          //-------------字型码----------------------------
  10          code char led[16]={0x11,0xD7,0x32,0x92, /* 0 1 2 3 4 */
  11          0xD4,0x98,0x18,0xD3,0x10,0x90, /* 5 6 7 8 9 */
  12          0x50,0x1C,0x39,0x16,0x38,0x78};/* A B C D E F*/
  13          //-----------------------------------------------
  14          void send(unsigned char a)  //串行输出,74LS164
  15          {
  16   1         unsigned char i;
  17   1         scl=0;
  18   1         for(i=0;i<8;i++)
  19   1           {
  20   2              if(_crol_(a,i)&0x80)  //向左移i位  _cror_(a,i)则向相反方向(向右)移i位
  21   2                  sda=1;
  22   2              else 
  23   2                  sda=0;
  24   2              scl=0;_nop_();scl=1;
  25   2            }
  26   1      }
  27          //---------显示子程序--------------
  28          void display()
  29          {
  30   1         send(led[second%10]);    //查表得到代码后,串行输出
  31   1         send(led[second/10]);
  32   1         send(0xff);
  33   1         send(led[minute%10]);
  34   1         send(led[minute/10]);
  35   1         send(0xff);
  36   1         send(led[hour%10]);
  37   1         send(led[hour/10]);
  38   1      }
  39          //==================================
  40          //主程序
  41          main()
  42          {
  43   1          second=30;minute=00;hour=00;
  44   1          TMOD=0x01;   //定时器0工作于方式1
  45   1              TH0=0x3b;
  46   1              TL0=0xc0;     //定时50ms
  47   1              counter=16;
  48   1              bulf=50000;    
  49   1       
  50   1              EA=1;        //开总中断  
  51   1              ET0=1;       //开定时中断
  52   1              TR0=1;       //起动定时器
  53   1         
  54   1          while(1)P2=0x00;
  55   1      }
C51 COMPILER V8.02   定时时钟                                                              08/06/2007 12:18:44 PAGE 2   

  56          //==============================
  57          
  58          //定时中断0服务子程序
  59          void  timer0_int(void)  interrupt 1   //定时器0中断工作方式为1
  60          { 
  61   1              TR0=0;   //关定时中断
  62   1              TH0=0x3b;
  63   1              TL0=0xc0;     //重新付值定时50ms
  64   1          if(!(counter--))  //定时器是否到1S
  65   1           {
  66   2              counter=16;
  67   2              P2=0xff;
  68   2              while(bulf--);
  69   2              //---------------------
  70   2               
  71   2               if(second>=59)
  72   2                 {
  73   3                   second=0;
  74   3                   if(minute>=59)
  75   3                     {
  76   4                      minute=0;
  77   4                          if(hour>=23)hour=0;
  78   4                          else hour=hour+1;
  79   4                      } 
  80   3                    else minute=minute+1;
  81   3                  }
  82   2                 else  second=second+1;
  83   2                 display();
  84   2              //---------------------
  85   2             }
  86   1          bulf=50000;
  87   1              TR0=1;
  88   1      }


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