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

📄 时钟.lst

📁 这是基于MCS-51的时钟及显示源代码
💻 LST
字号:
C51 COMPILER V7.50   时钟                                                                  10/17/2008 20:38:09 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 时钟
OBJECT MODULE PLACED IN 时钟.OBJ
COMPILER INVOKED BY: E:\keil1\C51\BIN\C51.EXE 时钟.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg51.h>
   2          #include<define.h>
*** WARNING C258 IN LINE 29 OF DEFINE.H: 'table': mspace on parameter ignored
*** ERROR C244 IN LINE 29 OF DEFINE.H: 'table': can't initialize, bad type or class
   3          #include<shezhishijian.h>
   4          void delay(uint z)
   5          {
   6                  uint x,y;
   7                  for(x=z;x>0;x--)
   8                          for(y=110;y>0;y--);
   9          }
  10          void write_com(uchar com) //LCD写命令
  11          {
  12                  lcdrs=0;
  13                  P0=com;
  14                  delay(5);
  15                  lcden=1;
  16                  delay(5);
  17                  lcden=0;        
  18          }
  19          void write_data(uchar date)  //LCD写数据
  20          {
  21                  lcdrs=1;
  22                  P0=date;
  23                  delay(5);
  24                  lcden=1;
  25                  delay(5);
  26                  lcden=0;
  27          }
  28          void inis()                      //初始化程序
  29          {
  30                  lcden=0;
  31                  set_time();
  32                  write_ds(0x0B,0x26);
  33                  time_alarm(15,3,0);
  34          write_com(0x01);
  35          write_com(0x38);
  36                  write_com(0x0c);
  37                  write_com(0x06);
  38                  write_com(0x80);
  39                  for(i=0;i<=15;i++)
  40                  {
  41                          write_data(table[i]);
  42                          delay(5); 
  43                  }
  44                  write_com(0xd0); 
  45                  for(i=0;i<=11;i++)
  46                  {
  47                          write_data(table1[i]);
  48                          delay(5);
  49                  }
  50                  EA=1;
  51                  EX0=1;
  52                  IT0=1;          
  53          }
C51 COMPILER V7.50   时钟                                                                  10/17/2008 20:38:09 PAGE 2   

  54          void write_sfm(uchar address,uchar date)  //显示LCD的时分秒
  55          {
  56                  write_com(0x80+0x40+address);
  57                  si=date/10;
  58                  ge=date%10;
  59                  si=0x30+si;
  60                  ge=0x30+ge;
  61                  write_date(si);
  62                  delay(5);
  63                  write_date(ge);
  64          }
  65          void write_ds(uchar add,uchar date)      //写时钟芯片  DS12CR887-DS12R887_
  66          {  
  67                  dscs=0;
  68                  dsds=1;
  69                  dsrw=1;
  70                  dsas=1; 
  71                  P0=add;
  72                  dsas=0;
  73                  dsrw=0;
  74                  P0=date;
  75                  dsrw=1;
  76                  dsas=1;
  77                  dscs=1;                         
  78          }
  79          uchar read_ds(uchar add)  //  读时钟芯片DS12CR887-DS12R887_
  80          {
  81                  uchar ds_date;
  82                  dscs=0;
  83                  dsas=1;
  84                  dsds=1;
  85                  dsrw=1;
  86                  P0=add;
  87                  dsas=0;
  88                  dsds=0;
  89                  ds_date=P0;
  90                  dsds=1;
  91                  dsas=1;
  92                  dscs=1;
  93                  return ds_date; 
  94          }
  95          void set_time()    //设置时间
  96          {
  97                  write_ds(4,14);
  98                  write_ds(2,47);
  99                  write_ds(0,0);
 100          }
 101          void time_alarm(ashi,afen,amiao)   //设置闹钟时间
 102          {
 103                  write_ds(1,amiao);
 104                  write_ds(3,afen);
 105                  write_ds(5,ashi);
 106          }
 107          void didi()               //闹钟响声
 108          {
 109                  beep=0;
 110                  delay(50);
 111                  beep=1;
 112                  delay(100);
 113                  beep=0;
 114                  delay(50);
 115                  beep=1;
C51 COMPILER V7.50   时钟                                                                  10/17/2008 20:38:09 PAGE 3   

 116                  delay(100);
 117          
 118          }
 119          void  main()
 120          {
 121                  inis(); //初始化LCD
 122                  while(1)
 123                  {
 124                          keyscan()//时间的设定
 125                          if(flag==1)
 126                          {
 127                                  didi();
 128                          }
 129                          else if(flag==0)
 130                          {               
 131                                  miao=read_ds(0);
 132                                  fen=read_ds(2);
 133                                  shi=read_ds(4);
 134                                  write_sfm(10,miao);
 135                                  write_sfm(7,fen);
 136                                  write_sfm(4,shi);
 137                          }
 138          
 139                  }
 140          }
 141          void  exter() interrupt  0              //        闹钟中断
 142          {
 143                  uchar c;
 144                  flag1=1;
 145                  c=read_ds(0x0c);
 146          }

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

⌨️ 快捷键说明

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