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

📄 x102_12887.lst

📁 DS12887时钟在单片机上的应用,C语言代码,Keil uVision3工程文件(修改后)
💻 LST
字号:
C51 COMPILER V8.08   X102_12887                                                            12/26/2008 21:41:46 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE X102_12887
OBJECT MODULE PLACED IN X102_12887.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE X102_12887.C BROWSE DEBUG OBJECTEXTEND

line level    source

*** WARNING C500 IN LINE 1 OF X102_12887.C: LICENSE ERROR (R208: RENEW LICENSE ID CODE (LIC))

   1          #include <reg52.h>
   2          #include <ctype.h>
   3          #include <string.h>
   4          #include <stdlib.h>
   5          #include <stdio.h>
   6          #include <math.h>
   7          #include <absacc.h>
   8          
   9          #define uchar unsigned char
  10          #define uint unsigned int
  11          #define ulong unsigned long
  12          
  13          sbit sm1623_dout=P1^0;
  14          sbit sm1623_din=P1^1;
  15          sbit sm1623_clk=P1^2;
  16          sbit sm1623_stb=P1^3;
  17          sbit sound=P1^5;
  18          
  19          #define clock_second XBYTE[0xd000]//秒
  20          #define clock_second_a XBYTE[0xd001]//秒闹
  21          #define clock_minute XBYTE[0xd002]//分
  22          #define clock_minute_a XBYTE[0xd003]//分闹
  23          #define clock_hour XBYTE[0xd004]//时
  24          #define clock_hour_a XBYTE[0xd005]//时闹
  25          #define clock_week XBYTE[0xd006]//星期
  26          #define clock_day XBYTE[0xd007]//日
  27          #define clock_month XBYTE[0xd008]//月
  28          #define clock_year XBYTE[0xd009]//年
  29          #define clock_a XBYTE[0xd00a]//寄存器A
  30          #define clock_b XBYTE[0xd00b]//寄存器B
  31          #define clock_c XBYTE[0xd00c]//寄存器C
  32          
  33          uchar xdata *cs_12887=0xd00e;//12887RAM地址
  34          
  35          void delay(uchar delay_temp);//长延时
  36          void delaym(uchar delaym_temp);//短延时
  37          void disp(uchar dis);
  38          void display();
  39          
  40          uchar i,j,k;
  41          uchar code_dis[6];
  42          
  43          main(void)
  44          {
  45   1      start:  //---------------------------------------12887RAM测试
  46   1              code_dis[0]=1;
  47   1              code_dis[1]=2;
  48   1              code_dis[2]=8;
  49   1              code_dis[3]=8;
  50   1              code_dis[4]=7;
  51   1              
  52   1              code_dis[5]=1;
  53   1              display();//显示128871
  54   1              delay(0x7f);
C51 COMPILER V8.08   X102_12887                                                            12/26/2008 21:41:46 PAGE 2   

  55   1              for(i=0;i<114;i++)
  56   1              {
  57   2                      *(cs_12887+i)=0x55;
  58   2              }
  59   1              
  60   1              code_dis[5]=2;
  61   1              display();//显示128872
  62   1              delay(0x7f);
  63   1              for(i=0;i<114;i++)
  64   1              {
  65   2                      if(*(cs_12887+i)!=0x55)sound=0;
  66   2              }
  67   1              delay(0xff);
  68   1              delay(0xff);
  69   1              sound=1;
  70   1              
  71   1              //---------------------------------------12887测试      
  72   1              
  73   1              if((clock_b&0x80)==0x80)//时钟没有运行时初始化时钟
  74   1              {
  75   2                      clock_a=0x70;//分频器复位
  76   2                      clock_b=0x82;//bcd,24小时制
  77   2                      clock_second=0x00;
  78   2                      clock_minute=0x00;
  79   2                      clock_hour=0x18;//18
  80   2                      clock_second_a=0x00;
  81   2                      clock_minute_a=0x00;
  82   2                      clock_hour_a=0x00;
  83   2                      clock_week=0x03;
  84   2                      clock_day=0x021;
  85   2                      clock_month=0x09;
  86   2                      clock_year=0x05;
  87   2                      clock_a=0x20;//选时基32.768k
  88   2                      clock_b=0x22;//开始运行
  89   2              }
  90   1              while(1)
  91   1              {
  92   2                      i=clock_second;
  93   2                      j=clock_minute;
  94   2                      k=clock_hour;
  95   2                      code_dis[0]=(k&0xf0)>>4;
  96   2                      code_dis[1]=k&0x0f;
  97   2                      code_dis[2]=(j&0xf0)>>4;
  98   2                      code_dis[3]=j&0x0f;
  99   2                      code_dis[4]=(i&0xf0)>>4;
 100   2                      code_dis[5]=i&0x0f;
 101   2                      display();
 102   2                      delay(0x3f);
 103   2              }
 104   1              goto start;     
 105   1      }
 106          
 107          void delay(uchar delay_temp)//延时子程序
 108          {
 109   1              uchar i,j;
 110   1              for(i=0;i<delay_temp;i++)
 111   1              {
 112   2                      for(j=0;j<255;j++);
 113   2              }
 114   1      }
 115          
 116          void delaym(uchar delaym_temp)//延时子程序
C51 COMPILER V8.08   X102_12887                                                            12/26/2008 21:41:46 PAGE 3   

 117          {
 118   1              uchar data i;
 119   1              for(i=0;i<delaym_temp;i++);
 120   1      }
 121          
 122          void disp(uchar dis)//送显示命令子程序
 123          {
 124   1              uchar dis_i,dis_temp;
 125   1              dis_temp=0x01;
 126   1              for(dis_i=0;dis_i<8;dis_i++)
 127   1              {
 128   2                      sm1623_clk=0;
 129   2                      delaym(1);
 130   2                      if((dis&dis_temp)==0){sm1623_din=0;}
 131   2                      else{sm1623_din=1;}
 132   2                      sm1623_clk=1;//上升沿输入数据
 133   2                      delaym(1);
 134   2                      dis_temp=dis_temp<<1;
 135   2              }
 136   1      }
 137          
 138          void display()//显示子程序
 139          {
 140   1              uchar code_dis_d[6];
 141   1              uchar i;
 142   1              for(i=0;i<6;i++)//计算显示码
 143   1              {
 144   2                      switch(code_dis[i])
 145   2                      {
 146   3                              case 1:
 147   3                                      code_dis_d[i]=0x06;
 148   3                                      break;
 149   3                              case 2:
 150   3                                      code_dis_d[i]=0x5b;
 151   3                                      break;
 152   3                              case 3:
 153   3                                      code_dis_d[i]=0x4f;
 154   3                                      break;
 155   3                              case 4:
 156   3                                      code_dis_d[i]=0x66;
 157   3                                      break;
 158   3                              case 5:
 159   3                                      code_dis_d[i]=0x6d;
 160   3                                      break;
 161   3                              case 6:
 162   3                                      code_dis_d[i]=0x7d;
 163   3                                      break;
 164   3                              case 7:
 165   3                                      code_dis_d[i]=0x07;
 166   3                                      break;
 167   3                              case 8:
 168   3                                      code_dis_d[i]=0x7f;
 169   3                                      break;
 170   3                              case 9:
 171   3                                      code_dis_d[i]=0x6f;
 172   3                                      break;
 173   3                              case 10://显示黑
 174   3                                      code_dis_d[i]=0x00;
 175   3                                      break;
 176   3                              case 11://显示A
 177   3                                      code_dis_d[i]=0x77;
 178   3                                      break;
C51 COMPILER V8.08   X102_12887                                                            12/26/2008 21:41:46 PAGE 4   

 179   3                              case 12://显示d
 180   3                                      code_dis_d[i]=0x5e;
 181   3                                      break;
 182   3                              case 13://显示-
 183   3                                      code_dis_d[i]=0x40;
 184   3                                      break;
 185   3                              case 14://显示8.
 186   3                                      code_dis_d[i]=0xff;
 187   3                                      break;
 188   3                              default://显示0
 189   3                                      code_dis_d[i]=0x3f;
 190   3                                      break;
 191   3                      }
 192   2              }
 193   1              sm1623_stb=0;
 194   1              disp(0x02);//显示模式6位12段
 195   1              sm1623_stb=1;
 196   1              delaym(1);
 197   1              sm1623_stb=0;
 198   1              disp(0x40);//设置数据
 199   1              sm1623_stb=1;
 200   1              delaym(1);
 201   1              sm1623_stb=0;
 202   1              disp(0xc0);//设置地址
 203   1              disp(code_dis_d[0]);//1
 204   1              disp(0x00);
 205   1              disp(code_dis_d[1]);//2
 206   1              disp(0x00);
 207   1              disp(code_dis_d[2]);//3
 208   1              disp(0x00);
 209   1              disp(code_dis_d[3]);//4
 210   1              disp(0x00);
 211   1              disp(code_dis_d[4]);//5
 212   1              disp(0x00);
 213   1              disp(code_dis_d[5]);//6
 214   1              disp(0x00);
 215   1              sm1623_stb=1;
 216   1              delaym(1);
 217   1              sm1623_stb=0;
 218   1              disp(0x8a);//控制显示
 219   1              sm1623_stb=1;
 220   1      }


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