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

📄 calendarclk.lst

📁 单片机C应用程序实例精讲.rar
💻 LST
字号:
C51 COMPILER V7.02b   CALENDARCLK                                                          12/10/2005 19:36:25 PAGE 1   


C51 COMPILER V7.02b, COMPILATION OF MODULE CALENDARCLK
OBJECT MODULE PLACED IN CalendarClk.OBJ
COMPILER INVOKED BY: E:\EDATOOLS\KEILC7.0\C51\BIN\C51.EXE CalendarClk.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*****************************************/
   2          /* Copyright (c) 2005, 通信工程学院      */
   3          /* All rights reserved.                  */
   4          /* 作    者:戴 佳                                               */
   5          /*****************************************/
   6          
   7          #include "CalendarClk.h"
   8          
   9          /* 从串行口获取数据函数,数据包括:year1,month1,dayofweek1,
  10          dayofmonth1,hour1,min1。如果获取到正确数据则返回1,否则返回0 */
  11          uchar getdata()
  12          {
  13   1              // 略去
  14   1      }
*** WARNING C173 IN LINE 14 OF CALENDARCLK.C: missing return-expression
  15          
  16          /* 设置日历和时钟函数 */
  17          void settime()
  18          {
  19   1              REG_B = REG_B|0x80;                     // SET=1,芯片DS12C887处于设置状态
  20   1      
  21   1              MIN = min1;
  22   1              HOUR = hour1;
  23   1              DAYOFWEEK = dayofweek1;
  24   1              DAYOFMONTH = dayofmonth1;
  25   1              MONTH = month1;
  26   1              YEAR = year1;
  27   1      
  28   1              REG_B = REG_B&0x7f;                 // SET=0,芯片DS12C887恢复正常数据更新状态
  29   1      }
  30          
  31          
  32          /* 获取日历时钟函数 */
  33          void gettime()
  34          {
  35   1              while (REG_A&0x80==0x00)        // 直到UIP=0时,才能读取日历时钟信息    {
  36   1              {       
  37   2                      min2 = MIN ;
  38   2                      hour2 = HOUR;
  39   2                      dayofweek2 = DAYOFWEEK;
  40   2                      dayofmonth2 = DAYOFMONTH;
  41   2                  month2 = MONTH;
  42   2                      year2 = YEAR;
  43   2              }
  44   1      }
  45          
  46          /* 13位数码管显示年、月、日、星期、时、分 */
  47          void display()
  48          {
  49   1              // 略去
  50   1      }
  51          
  52          /* 串口初始化函数 */
  53          void init_serial()
  54          {
C51 COMPILER V7.02b   CALENDARCLK                                                          12/10/2005 19:36:25 PAGE 2   

  55   1              TMOD = 0x20;                            // 定时器T1使用工作方式2
  56   1              TH1 = 250;
  57   1              TL1 = 250;
  58   1              TR1 = 1;                                        // 开始计时
  59   1              PCON = 0x80;                            // SMOD = 1
  60   1              SCON = 0x50;                            // 工作方式1,波特率9600kbit/s,允许接收 
  61   1      }
  62          
  63          
  64          void main(void)
  65          {
  66   1              uchar setflag;
  67   1              init_serial();
  68   1      
  69   1              /* 设置DV2、DV1、DV0为010,打开芯片DS12C877内部晶振 */
  70   1              REG_A = REG_A&0xaf;                     // DV2=DV0=0
  71   1              REG_A = REG_A|0x20;                     // DV1=0
  72   1      
  73   1              REG_B = REG_B&0x7b;                     // SET=0,时间数据正常更新;DM=0,二进制数据模式
  74   1              REG_B = REG_B|0x02;                     // 寄存器B的24/12位置1,24小时时间模式
  75   1              
  76   1              while (1)
  77   1              {
  78   2                      setflag = getdata();    // 通过查询方式获取串口数据
  79   2              
  80   2                      /* 如果获取到正确数据,则设置时间 */
  81   2                      if (setflag==0x01)
  82   2                              settime();
  83   2              
  84   2                      /* 调用获取日历时钟函数 */
  85   2                      gettime();
  86   2                      
  87   2                      /* 13位数码管显示日历、星期和时间信息 */
  88   2                      display();
  89   2              }               
  90   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    106    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     12    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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