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

📄 1602and1302.lst

📁 时钟芯片的操作
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.12  1602AND1302                                                            12/13/2008 23:06:41 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE 1602AND1302
OBJECT MODULE PLACED IN H:\MYPROJ~1\1302AN~1\1602AND1302.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE H:\MYPROJ~1\1302AN~1\1602AND1302.C DB SB OE

stmt level    source

*** WARNING C500 IN LINE 1 OF H:\MYPROJ~1\1302AN~1\1602AND1302.C: MISSING DEVICE (SECURITY KEY NOT FOUND)
   1          #include <reg52.h>
   2          #include <string.h>
   3          #define uchar unsigned char
   4          #define uint unsigned int
   5          sbit lcdrs=P3^2;
   6          sbit lcdrw=P3^3;
   7          sbit lcden=P3^4;
   8          
   9          sbit ds1302_clk=P1^0;
  10          sbit ds1302_dat=P1^1;
  11          sbit ds1302_rst=P1^2;
  12          sbit ACC_0 = ACC^0;
  13          sbit ACC_1 = ACC^1;
  14          sbit ACC_2 = ACC^2;
  15          sbit ACC_3 = ACC^3;
  16          sbit ACC_4 = ACC^4;
  17          sbit ACC_5 = ACC^5;
  18          sbit ACC_6 = ACC^6;
  19          sbit ACC_7 = ACC^7;
  20          
  21          uchar Read(void);        //写DS1302操作
  22          void Write(void);        //读DS1302操作
  23          uchar ReadRam_Byte(uchar address);       //从Ram中读出一个字节
  24          uchar ReadRTC_Byte(uchar address);       //从DS1302中读出一个字节
  25          uchar WriteRam_Byte(uchar address,uchar number);     //向Ram中写入一个字节
  26          uchar WriteRTC_Byte(uchar address,uchar number);     //向DS1302中写入一个字节
  27          
  28          uchar ReadSec(void);          //从DS1302中读出秒字节
  29          uchar ReadMin(void);          //从DS1302中读出分字节
  30          uchar ReadHr(void);          //从DS1302中读出时字节
  31          uchar ReadDay(void);          //从DS1302中读出日字节
  32          uchar ReadMonth(void);         //从DS1302中读出月字节
  33          uchar ReadWeek(void);          //从DS1302中读出星期字节
  34          uchar ReadYear(void);          //从DS1302中读出年字节
  35          void WriteSec(uchar number);         //向DS1302中写入秒字节
  36          void WriteMin(uchar number);        //向DS1302中写入分字节
  37          void WriteHr(uchar number);         //向DS1302中写入时字节
  38          void WriteDay(uchar number);        //向DS1302中写入日字节
  39          void WriteMonth(uchar number);        //向DS1302中写入月字节
  40          void WriteWeek(uchar number);        //向DS1302中写入星期字节
  41          void WriteYear(uchar number);        //向DS1302中写入年字节*/
  42          void WriteControl(uchar number);     //向慢速充电控制寄存器写入控制字节
  43          void EnableWP(void);          //禁止写保护
  44          void DisableWP(void);          //允许写保护
  45          void key(void);           //键盘程序
  46          void key_delay(void);        //延时程序
  47          void dis_mon_day(void);       //显示日 月程序
  48          void dis_hr_min(void);         //显示时,分程序
  49          
  50          //函数名:Write
  51          //入口参数:
  52          //返回值:
  53          //函数功能:写DS1302操作
  54          //******************************************************
C51 COMPILER V6.12  1602AND1302                                                            12/13/2008 23:06:41 PAGE 2   

  55          void Write(void)     //写DS1302操作
  56          {
  57   1       ds1302_dat = ACC_0;    //写DS1302
  58   1       ds1302_clk = 1;     //时钟上升沿,发送数据有效
  59   1       ds1302_clk = 0;    //清零时钟总线
  60   1          ds1302_dat = ACC_1;
  61   1       ds1302_clk = 1; ds1302_clk = 0;
  62   1          ds1302_dat = ACC_2;
  63   1       ds1302_clk = 1; ds1302_clk = 0;
  64   1          ds1302_dat = ACC_3;
  65   1       ds1302_clk = 1; ds1302_clk = 0;
  66   1          ds1302_dat = ACC_4;
  67   1       ds1302_clk = 1; ds1302_clk = 0;
  68   1          ds1302_dat = ACC_5;
  69   1       ds1302_clk = 1; ds1302_clk = 0;
  70   1          ds1302_dat = ACC_6;
  71   1       ds1302_clk = 1; ds1302_clk = 0;
  72   1          ds1302_dat = ACC_7;
  73   1       ds1302_clk = 1; ds1302_clk = 0;
  74   1      }
  75          
  76          //函数名:Read
  77          //入口参数:
  78          //返回:ACC
  79          //函数功能:读DS1302操
  80          //******************************************************
  81          uchar Read(void)     //读DS1302操作
  82          {
  83   1          ACC_0 = ds1302_dat;    //读取DS1302数据
  84   1       ds1302_clk = 1;     //时钟下降沿,发送数据有效
  85   1       ds1302_clk = 0;     //清零时钟总线
  86   1          ACC_1 = ds1302_dat;
  87   1       ds1302_clk = 1; ds1302_clk = 0;
  88   1          ACC_2 = ds1302_dat;
  89   1       ds1302_clk = 1; ds1302_clk = 0;
  90   1          ACC_3 = ds1302_dat;
  91   1       ds1302_clk = 1; ds1302_clk = 0;
  92   1          ACC_4 = ds1302_dat;
  93   1       ds1302_clk = 1;ds1302_clk = 0;
  94   1          ACC_5 = ds1302_dat;
  95   1       ds1302_clk = 1; ds1302_clk = 0;
  96   1          ACC_6 = ds1302_dat;
  97   1       ds1302_clk = 1; ds1302_clk = 0;
  98   1          ACC_7 = ds1302_dat;
  99   1       ds1302_rst = 0; ds1302_clk = 1;
 100   1      
 101   1       return ACC;
 102   1      }
 103          
 104          //函数名:ReadRam_Byte
 105          //入口参数:address
 106          //返回:ACC
 107          //函数功能:从RAM中读出一字节
 108          //******************************************************
 109          uchar ReadRam_Byte(uchar address)    //从RAM中读出一个字节
 110          {
 111   1          ds1302_rst = 0;     //复位引脚为低电平,所有数据传送中止
 112   1          ds1302_clk = 0;     //清零时钟总线
 113   1         ds1302_rst = 1;    //复位引脚为高电平,逻辑控制有效
 114   1         ACC = address;
 115   1          Write();    //写DS1302操作
 116   1          ds1302_dat = 1;
C51 COMPILER V6.12  1602AND1302                                                            12/13/2008 23:06:41 PAGE 3   

 117   1          Read();    //读DS1302操作
 118   1          ds1302_rst = 0;
 119   1          return ACC;
 120   1      }
 121          
 122          //函数名:ReadRTC_Byte
 123          //入口参数:address
 124          //返回:ACC
 125          //函数功能:从时钟寄存器中读一字节
 126          //******************************************************
 127          uchar ReadRTC_Byte(uchar address)       //从DS1302中读出一个字节
 128          {
 129   1          ds1302_rst = 0;     //复位引脚为低电平,所有数据传送中止
 130   1          ds1302_clk = 0;     //清零时钟总线
 131   1          ds1302_rst = 1;    //复位引脚为高电平,逻辑控制有效
 132   1          ACC = address;
 133   1          Write();    //对DS1302写命令字和地址
 134   1       ds1302_dat = 1;
 135   1       Read();    //读DS1302操作
 136   1          return ACC;     //返回读取的数据
 137   1      }
 138          
 139          //函数名:WriteRam_Byte
 140          //入口参数:address,number
 141          //返回:ACC
 142          //函数功能:向RAM中写入一个字节
 143          //******************************************************
 144          uchar WriteRam_Byte(uchar address,uchar number)    //向RAM中写入一个字节
 145          {
 146   1          ds1302_rst = 0;ds1302_clk = 0; ds1302_rst = 1;
 147   1          ACC = address;
 148   1       Write();    //对DS1302写命令字和地址
 149   1          ACC = number;
 150   1       Write();    //对DS1302写命令字和数据
 151   1          ds1302_rst = 0;
 152   1       ds1302_clk = 1;
 153   1          return ACC;
 154   1      }
 155          
 156          //函数名:WriteRTC_Byte
 157          //入口参数:address,number
 158          //返回:ACC
 159          //函数功能:向DS1302中写入一个字节
 160          //******************************************************
 161          uchar WriteRTC_Byte(uchar address,uchar number)    //向DS1302中写入一个字节
 162          {
 163   1          ds1302_clk = 0;
 164   1          ds1302_rst = 0;ds1302_rst = 1;
 165   1          ACC = address;
 166   1          ACC |= 0x80;
 167   1          Write();    //对DS1302写命令字和地址
 168   1          ACC = number;
 169   1         Write();    //对DS1302写命令字和数据
 170   1          ds1302_rst = 0; ds1302_clk = 1;
 171   1          return ACC;
 172   1      }
 173          //函数名:ReadSec
 174          //入口参数:
 175          //返回:ReadRTC_Byte(0x81);
 176          //函数功能:从DS1302中读出秒字节
 177          //******************************************************
 178          
C51 COMPILER V6.12  1602AND1302                                                            12/13/2008 23:06:41 PAGE 4   

⌨️ 快捷键说明

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