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

📄 ds1302.lst

📁 零基础单片机C语言设计全套教程
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V8.08   DS1302                                                                08/29/2008 18:01:54 PAGE 1   


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

line level    source

   1          #include        <reg52.h>                                                               //头文件
   2          #include        <stdio.h>
   3          
   4          #define uchar unsigned char                                             //宏定义
   5          
   6          sbit SCLK = P1^3;                                                               //声明接口引脚
   7          sbit I_O   = P1^4;
   8          sbit RSTB = P1^5;
   9          
  10          void ResetDS1302();                                             //复位子函数
  11          uchar ReadByteDS1302();                                                 //字节读取子函数
  12          void WriteByteDS1302(uchar W_Byte) ;                            //字节写入子函数
  13          void SetYear() ;                                                                        //年设置子函数
  14          void SetMonth();                                                                //月设置子函数
  15          void SetDate();                                                                         //日设置子函数
  16          void SetDay();                                                                  //星期设置子函数
  17          void SetHour();                                                                         //小时设置子函数
  18          void SetMinute ();                                                              //分钟设置子函数
  19          void SetSecond ();                                                              //秒设置子函数
  20          void DisableWrite ();                                                           //写保护子函数
  21          void EnableWrite ();                                                            //写允许子函数
  22          void Charge ();                                                                         //充电控制子函数
  23          void InitDS1302();                                                              //初始化子函数
  24          void WriteRamByte();                                                            //RAM字节写入子函数
  25          void Display(uchar loop);                                                       //时钟显示子函数
  26          void BurstReadRAM();                                                            //多字节突发方式读取RAM子函数
  27          void BurstWriteRAM();                                                     //多字节突发方式写入RAM子函数
  28          
  29          void main (void)                                                                //主函数
  30          {
  31   1      uchar Key, Key1,Key2;
  32   1      SCON  = 0x50;                                                           //设置串行口: 方式 1, 8位UART, 允许接收
  33   1      TMOD  |= 0x20;                                                  //设置定时器T1, 方式 2, 8位自动重装
  34   1      PCON  =0x80;                                                            //设置SMOD=1
  35   1      TL1    =0xF4;                                                           //波特率4800bit/s,初值
  36   1      TH1   =0xF4;
  37   1      
  38   1          TR1   = 1;                                                          //开启定时器1
  39   1          TI     = 1;
  40   1      
  41   1              printf("***********AT89S52 CONTROL DS1302***********\n\n");
  42   1              printf("Initialize the DS1302.\n");
  43   1              InitDS1302();                                                           //初始化DS1302
  44   1              while (1) 
  45   1              { 
  46   2              printf("\nEnter DS1302 Menu Selection:\n");
  47   2              printf("d or D: Display Clock Routine\n");
  48   2              printf("s or S: Set DS1302\n");
  49   2              printf("i or I: Run the Initialize Routine\n");
  50   2              printf("r or R: Run the RAM Routine\n");
  51   2              printf("e or E: Exit\n");
  52   2      
  53   2              Key = _getkey();                                                        //获取输入字符
  54   2              switch(Key) 
  55   2              {
C51 COMPILER V8.08   DS1302                                                                08/29/2008 18:01:54 PAGE 2   

  56   3                      case 'd':                                                               //执行时钟操作
  57   3                      case 'D':
  58   3                              printf("\rRun the Display Clock Routine\n");
  59   3                              Display(1);                     
  60   3                              break;
  61   3      
  62   3                      case 's':                                                               //初始化DS1302
  63   3                      case 'S':       
  64   3                              printf("\rRun Set DS1302\n");
  65   3                              printf("\nEnter DS1302 Time Set Menu Selection:");
  66   3                              printf("y or Y: Set year\n");
  67   3                              printf("M : Set Month\n");
  68   3                              printf("D:Set date\n");
  69   3                              printf("d: Set day\n");
  70   3                              printf("h or H: Set hour\n");
  71   3                              printf("m: Set minute\n");
  72   3                              printf("s or S: Set second\n");
  73   3      
  74   3                              Key1 = _getkey();                                       //获取输入字符
  75   3                              switch(Key1) 
  76   3                              {
  77   4                                      case 'y':                                               //设置年
  78   4                                      case 'Y':
  79   4                                              SetYear();                      
  80   4                                              break;
  81   4                                      case 'M':                                               //设置月
  82   4                                              SetMonth();                     
  83   4                                              break;
  84   4                                      case 'D':                                               //设置星期
  85   4                                              SetDate();                      
  86   4                                              break;
  87   4                                      case 'd':                                               //设置日
  88   4                                              SetDay();                       
  89   4                                              break;
  90   4                                      case 'h':                                               //设置小时
  91   4                                      case 'H':
  92   4                                              SetHour();                      
  93   4                                              break;
  94   4                                      case 'm':                                               //设置分钟示
  95   4                                              SetMinute();                    
  96   4                                              break;
  97   4                                      case 's':                                               //设置秒
  98   4                                      case 'S':
  99   4                                              SetSecond();                    
 100   4                                              break;
 101   4                                      default:
 102   4                                              printf("Please Input the Right Option");
 103   4                              }
 104   3                              break;
 105   3      
 106   3                      case 'i':                                                               //初始化DS1302
 107   3                      case 'I':       
 108   3                              printf("Run the Initialize Routine\n");
 109   3                              InitDS1302();
 110   3                              break;
 111   3      
 112   3                      case 'r':                                                               //RAM操作
 113   3                      case 'R':
 114   3                              printf("\rRun the RAM Routine\n");
 115   3                              printf("\nEnter DS1302 RAM Menu Selection:");
 116   3                              printf("b or B: Write RAM Byte\n");
 117   3                              printf("r or R: Burst Read RAM\n");
C51 COMPILER V8.08   DS1302                                                                08/29/2008 18:01:54 PAGE 3   

 118   3                              printf("w or W: Burst Write RAM \n");
 119   3      
 120   3                              Key2 = _getkey();                                       //获取输入字符
 121   3                              switch(Key2) 
 122   3                              {
 123   4                                      case 'b':                                               //RAM字节写入
 124   4                                      case 'B':       
 125   4                                              WriteRamByte(); 
 126   4                                              break;
 127   4                                      case 'r':                                               //多字节突发方式读取RAM
 128   4                                      case 'R':
 129   4                                              BurstReadRAM(); 
 130   4                                              break;
 131   4                                      case 'w':                                               //多字节突发方式写入RAM
 132   4                                      case 'W':       
 133   4                                              BurstWriteRAM();        
 134   4                                              break;
 135   4                                      default:
 136   4                                              printf("Please Input the Right Option");
 137   4                              }
 138   3                              break;
 139   3      
 140   3                      case 'e':
 141   3                      case 'E':
 142   3                              goto exit;
 143   3                              break;
 144   3      

⌨️ 快捷键说明

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