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

📄 1_2.lst

📁 ds1302实时时钟芯片驱动程序。不带显示。QQ3064192
💻 LST
字号:
C51 COMPILER V7.07   1_2                                                                   12/01/2008 21:24:44 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE 1_2
OBJECT MODULE PLACED IN 1_2.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE 1_2.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include<reg52.h>
   2          #define uint unsigned int
   3          #define uchar unsigned char
   4          #define LEDPORT P0
   5          
   6          uchar numdu,tt,temp01,temp02,shiwan,wan,qian,bai,shi,ge;
   7          uint temp;
   8          sbit dula=P2^7;
   9          sbit wela=P2^6;
  10          sbit keyfen=P2^3;
  11          sbit keyshi=P2^1;
  12          sbit dian=P2^4;
  13          sbit SCLK=P3^2;
  14          sbit IO=P3^3;
  15          sbit RST=P3^4;
  16          
  17          sbit ACC7=ACC^7;
  18          sbit ACC0=ACC^0;
  19          
  20          uchar times[7]={25,33,23,6,11,2,0x07};//用来存放时间???
  21          uchar KEY=0;
  22          void write_1302_byte(uchar d);//向1302定入一字节数据D
  23          uchar read_1302_byte(void);//从1302读出一字节数据并返回
  24          void write_1302_reg(uchar add,uchar d);//向1302地址ADD处写入数据D
  25          uchar read_1302_reg(uchar add);//向1302地址ADD处读出数据并返回
  26          void write_1302_time(uchar*time);//设置时间
  27          void read_1302_time(uchar time[]);//读出时间
  28          
  29          uchar code table[]={
  30          0xc0,0xf9,0xa4,0xb0,
  31          0x99,0x92,0x82,0xf8,
  32          0x80,0x90,0x88,0x83,
  33          0xc6,0xa1,0x86,0x8e};
  34          //uchar code tablewe[]={
  35          //0x01,0x02,0x04,0x08,0x10,0x20};
  36          //00000001,00000010,00000100
  37          //00001000,00010000,00100000
  38          void display(uchar shi,uchar ge);
  39          void display01(uchar qian,uchar bai);
  40          void display02(uchar shiwan,uchar wan);
  41          void delay(uint z);
  42          void main()
  43          {
  44   1              
  45   1          temp=read_1302_time();//《256
*** WARNING C209 IN LINE 45 OF 1_2.C: '_read_1302_time': too few actual parameters
*** ERROR C193 IN LINE 45 OF 1_2.C: '=': illegal type conversion from/to 'void'
  46   1              temp01=59;
  47   1              temp02=19;
  48   1              numdu=0;
  49   1              while(1)
  50   1              {
  51   2              
  52   2              
  53   2                      display02(shiwan,wan);
C51 COMPILER V7.07   1_2                                                                   12/01/2008 21:24:44 PAGE 2   

  54   2                      display01(qian,bai);
  55   2                      display(shi,ge);
  56   2              
  57   2      
  58   2              }
  59   1              
  60   1      }
  61          
  62          void delay(uint z)
  63          {
  64   1              uint x,y;
  65   1              for(x=z;x>0;x--)
  66   1                      for(y=110;y>0;y--);
  67   1      }
  68          void display(uchar shi,uchar ge)
  69          {
  70   1                      shi=temp/10;
  71   1                      ge=temp%10;
  72   1      
  73   1                      dula=1;
  74   1                      P0=table[shi];
  75   1                      dula=0;
  76   1      
  77   1                      wela=1;
  78   1                      P0=0x10;
  79   1                      delay(1);
  80   1                      
  81   1                      dula=1;
  82   1                      P0=table[ge];
  83   1                      dula=0;
  84   1      
  85   1                      wela=1;
  86   1                      P0=0x20;
  87   1                      delay(1);
  88   1                      
  89   1      }
  90          void display01(uchar qian,uchar bai)
  91          {
  92   1                      qian=temp01/10;
  93   1                      bai=temp01%10;
  94   1      
  95   1                      dula=1;
  96   1                      P0=table[qian];
  97   1                      dula=0;
  98   1      
  99   1                      wela=1;
 100   1                      P0=0x04;
 101   1                      delay(1);       
 102   1      
 103   1                      dula=1;
 104   1                      P0=table[bai];
 105   1                      dula=0;
 106   1      
 107   1                      wela=1;
 108   1                      P0=0x08;
 109   1                      delay(1);       
 110   1      }
 111          void display02(uchar shiwan,uchar wan)
 112          {       
 113   1                      shiwan=temp02/10;
 114   1                      wan=temp02%10;
 115   1                      dula=1;
C51 COMPILER V7.07   1_2                                                                   12/01/2008 21:24:44 PAGE 3   

 116   1                      P0=table[shiwan];
 117   1                      dula=0;
 118   1      
 119   1                      wela=1;
 120   1                      P0=0x01;
 121   1                      delay(1);       
 122   1      
 123   1                      dula=1;
 124   1                      P0=table[wan];
 125   1                      dula=0;
 126   1      
 127   1                      wela=1;
 128   1                      P0=0x02;
 129   1                      delay(1);               
 130   1      }
 131          
 132          /*===================================*/
 133          /*    向1302当前地址处写入1字节数据     */
 134          /*===================================*/
 135          void write_1302_byte(uchar d)
 136          {
 137   1              uchar i;
 138   1              ACC=d;   
 139   1              for(i=8;i>0;i--)
 140   1              {
 141   2                      IO=ACC0;
 142   2                      SCLK=1;
 143   2                      SCLK=0;
 144   2                      ACC=ACC>>1;
 145   2              }
 146   1      }
 147          
 148          /*===================================*/
 149          /*    向1302当前地址处读出1字节数据     */
 150          /*===================================*/
 151          
 152          uchar read_1302_byte(void)
 153          {
 154   1              uchar i;
 155   1              for(i=8;i>0;i--)
 156   1              {
 157   2                      ACC=ACC>>1;
 158   2                      ACC7=IO;
 159   2                      SCLK=1;
 160   2                      SCLK=0;
 161   2              }
 162   1              return (ACC);
 163   1      }
 164          /*===================================*/
 165          /*    把数据DATA写入1302寄存器ADD处     */
 166          /*===================================*/
 167          void write_1302_reg(uchar add,uchar d)
 168          {
 169   1              RST=0;
 170   1              SCLK=0;
 171   1              RST=1;
 172   1              write_1302_byte(add);
 173   1              write_1302_byte(d);
 174   1              SCLK=1;
 175   1              RST=0;
 176   1      }
 177          /*===================================*/
C51 COMPILER V7.07   1_2                                                                   12/01/2008 21:24:44 PAGE 4   

 178          /*         读取寄存器ADD处的值          */
 179          /*===================================*/
 180          uchar read_1302_reg(uchar add)
 181          {
 182   1              uchar d;
 183   1              RST=0;
 184   1              SCLK=0;
 185   1              RST=1;
 186   1              write_1302_byte(add);
 187   1              d=read_1302_byte();
 188   1              SCLK=1;
 189   1              RST=0;
 190   1              return (d);
 191   1      }
 192          /*===================================*/
 193          /*    设置时间,TIME[0]-time[6]数据存放为:秒,分,时,日,月,星期,年          */
 194          /*===================================*/
 195          void write_1302_time(uchar *time)
 196          {
 197   1              uchar add=0x80;
 198   1              uchar i;
 199   1              uchar timeBCD[7];
 200   1              bdata uchar l,h;
 201   1              for(i=0;i<7;i++)
 202   1              {
 203   2                      l=time[i]%10;
 204   2                      h=time[i]/10;
 205   2                      timeBCD[i]=h*16+l;
 206   2              }
 207   1              write_1302_reg(0x8e,0x00);
 208   1              for(i=0;i<7;i++)
 209   1              {
 210   2                      write_1302_reg(add,timeBCD[i]);
 211   2                      add+=2;
 212   2              }
 213   1              write_1302_reg(0x8e,0x80);
 214   1      }
 215          /*===================================*/
 216          /*         读取当前时间                 */
 217          /*===================================*/
 218          void read_1302_time(uchar time[])
 219          {
 220   1              uchar i;
 221   1              uchar add=0x81;
 222   1              bdata uchar l,h;
 223   1              write_1302_reg(0x8e,0x00);
 224   1              for(i=0;i<7;i++)
 225   1              {
 226   2                      time[i]=read_1302_reg(add);
 227   2                      l=time[i]&0x0f;
 228   2                      h=(time[i]>>4)&0x0f;
 229   2                      time[i]=h*10+l;
 230   2                      add+=2;
 231   2              }
 232   1      }
 233          

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

⌨️ 快捷键说明

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