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

📄 clock.lst

📁 一个简单的单片机教程
💻 LST
字号:
C51 COMPILER V7.07   CLOCK                                                                 12/25/2007 21:28:05 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE CLOCK
OBJECT MODULE PLACED IN clock.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE clock.c BROWSE DEBUG OBJECTEXTEND TABS(8)

stmt level    source

   1          #include "reg51.h"
   2          #include"intrins.h"
   3          #define uchar unsigned char
   4          #define uint unsigned int
   5          #define  nop  _nop_()                                                   /* 定义空操作指令 */
   6          sbit en         =P1^7;                                                  /*DTLED-6显示芯片使能端*/       
   7          sbit dout       =P1^6;                                                  /*DTLED-6显示芯片数据读入端*/
   8          sbit clk        =P1^3;                                                  /*DTLED-6显示芯片/时钟芯片DS1302时钟输入端*/
   9          uchar MScond=0;                                                         //ms
  10          uchar Scond=0;                                                          //s
  11          uchar Minute=0;                                                         //min
  12          uchar Hour=0;                                                           //h
  13          uchar dispbuf[9]={3,0,0,0,0,0,0,1,0};                                   /*显示值存放阵列*/
  14          void delay (uint value)                                 /*延时副程式*/
  15          {
  16   1            while (value!=0) value--;                         /*10US延时*/
  17   1      }
  18          void tsled(void)                                        /*串行发送DTLED-6显示副程式*/   
  19          {   
  20   1              char ts0,i,j;
  21   1              clk=0;
  22   1              en=0;
  23   1              delay(10);
  24   1              for(j=0;j<9;j++)
  25   1              {       ts0=dispbuf[j];
  26   2                      for(i=0;i<4;i++)                        /*发小数点码8,4,2,1*/
  27   2                      {
  28   3                              clk=1;
  29   3                              ts0=ts0<<1;     
  30   3                              if(AC==1) 
  31   3                              dout=1;
  32   3                              else dout=0;
  33   3                              clk=0;
  34   3                              nop;
  35   3                              delay(3);
  36   3                      }
  37   2              }       
  38   1              en=1;
  39   1      }                                                       /*返回主程式*/
  40          void BCD(void)
  41          {
  42   1              dispbuf[1]=Scond%10;
  43   1              dispbuf[2]=Scond/10;
  44   1              dispbuf[3]=Minute%10;
  45   1              dispbuf[4]=Minute/10;
  46   1              dispbuf[5]=Hour%10;
  47   1              dispbuf[6]=Hour/10;
  48   1       }
  49          /********************************************************/
  50          void timer1(void) interrupt 3 using 2
  51          {
  52   1              TH1=0xb1;                                                               /*定时器定时20ms*/      
  53   1              TL1=0xeb;
  54   1              MScond=MScond+1;
  55   1              if(MScond==50)                                                          /*秒处理1s=50*20*/              
C51 COMPILER V7.07   CLOCK                                                                 12/25/2007 21:28:05 PAGE 2   

  56   1              {
  57   2                      MScond=0;
  58   2                      Scond=Scond+1;
  59   2                      if(Scond==60)                                           /*分处理*/
  60   2                      {
  61   3                              Scond=0;
  62   3                              Minute=Minute+1;
  63   3                              if(Minute==60)                          /*时处理*/
  64   3                              {
  65   4                                      Minute=0;
  66   4                                      Hour=Hour+1;
  67   4                                      if(Hour==24)Hour=0;
  68   4                              }
  69   3                      }
  70   2              }
  71   1      }         
  72          void main(void)
  73          {
  74   1              uchar TMP=0;
  75   1              tsled();
  76   1              P0=0xff;                                        /*P0初始化*/
  77   1              TMOD=0x10;                                      /*定时器工作方式*/
  78   1              TH1=0xb1;
  79   1              TL1=0xeb;
  80   1              TR1=1;                                          /*允许T1工作*/
  81   1              ET1=1;                                          /*允许T1中断*/
  82   1              EA=1;                                           /*允许全局中断*/
  83   1              while(1)
  84   1              {
  85   2                      TMP=Scond;
  86   2                      while(TMP==Scond);
  87   2                      BCD();
  88   2                      tsled();
  89   2              }
  90   1       }
  91          


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