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

📄 ht1380.lst

📁 内容摘要: LHD6000主板主芯片程序 ISD1730时序说明: 参考:void Send_1Byte(uchar ucData_s)和uchar Receive_1Byte(void)的说明.
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   HT1380                                                                05/18/2008 16:43:12 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE HT1380
OBJECT MODULE PLACED IN HT1380.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE HT1380.C LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*******************************************************************************
   2          * 版权所有(C)2005 深圳豪恩科技有线公司
   3          *
   4          * 文件名称: HT1380.C
   5          * 文件标识:
   6          * 内容摘要: 对外围器件HT1380操作的各种子程序
   7          * 其他说明:
   8          * 当前版本:
   9          * 作    者: 涂常亮
  10          * 完成日期:
  11          *
  12          * 修改记录1
  13          *   修改日期:
  14          *   版 本 号:
  15          *   修 改 人:
  16          *   修改内容:
  17          *修改记录2
  18          *******************************************************************************/
  19          
  20          #include <reg54.h>
  21          #include <intrins.h>
  22          
  23          #define RegSec  0
  24          #define RegMint 1
  25          #define RegHr   2
  26          #define RegDate 3
  27          #define RegM    4
  28          #define RegDay  5
  29          #define RegYear 6
  30          #define RegWP   7
  31          
  32          #define REG_SEC     0
  33          #define REG_MIN     1
  34          #define REG_HR      2
  35          #define REG_DATE    3
  36          #define REG_MONTH   4
  37          #define REG_DAY     5
  38          #define REG_YR      6
  39          #define REG_WP      7
  40          
  41          #define YR_INIT     0x00
  42          #define MONTH_INIT  0x01
  43          #define DATE_INIT   0x01
  44          #define HR_INIT     0x00
  45          #define MIN_INIT    0x00
  46          
  47          #define CMD_WRT         0x80
  48          #define CMD_READ        0x81
  49          #define CMD_WRT_SEC     0x80
  50          #define CMD_READ_SEC    0x81
  51          #define CMD_WRT_MINUT   0x82
  52          #define CMD_READ_MINUT  0x83
  53          #define CMD_WRT_HR      0x84
  54          #define CMD_READ_HR     0x85
  55          #define CMD_WRT_DATE    0x86
C51 COMPILER V8.02   HT1380                                                                05/18/2008 16:43:12 PAGE 2   

  56          #define CMD_READ_DATA   0x87
  57          #define CMD_WRT_MON     0x88
  58          #define CMD_READ_MON    0x89
  59          #define CMD_WRT_DAY     0x8A
  60          #define CMD_READ_DAY    0x8B
  61          #define CMD_WRT_YR      0x8C
  62          #define CMD_READ_YR     0x8D
  63          #define CMD_WRT_WP      0x8E
  64          #define CMD_READ_WP     0x8F
  65          
  66          #define CMD_READ_H  0x85
  67          #define CMD_WRT_HR  0x84
  68          
  69          sbit pin_SCLK   = P1^0;
  70          sbit pin_SIO    = P1^1;
  71          sbit pin_RESET  = P1^2;
  72          
  73          
  74          void    InitHT1380(void);
  75          void    ComuStart(void);
  76          void    ComuStop(void);
  77          void    SendByte(unsigned char ucData);
  78          unsigned char ReceiByte(void);
  79          //unsigned char ReadReg(unsigned char ucRegAdd);
  80          unsigned char ReadTime(unsigned char ucRegAdd);
  81          //void WriteReg(unsigned char ucRegAdd, unsigned char ucData);
  82          void WriteTime(unsigned char ucRegAdd, unsigned char ucData);
  83          bit  ResetHT1380(void);
  84          //下面两个函数LHD6000的主程序中有实现部分,后面本文件中的实现部分被转成注释
  85          unsigned char BCD_Hex(unsigned char ucNumBCD);
  86          bit IsBCD(unsigned char ucNum_IsBCD);
  87          
  88          /*******************************************************************************
  89          * 函数名称: void InitHT1380(void);
  90          * 功能描述: 初始化HT1380,使其起振。
  91          * 输入参数: 无
  92          * 输出参数: 无
  93          * 返 回 值: 无
  94          * 其他说明:
  95          * 修改日期      版 本 号        修 改 人        修改内容
  96          *-------------------------------------------------------------------------------
  97          *
  98          *******************************************************************************/
  99          void    InitHT1380(void)
 100          {
 101   1          unsigned char ucTmp_Init;
 102   1          //bit FlagReadOk = 1;
 103   1          //去除写保护
 104   1          /*ComuStart();  //原来的读写操作没有去除写保护的部分,现不需这段程序
 105   1          SendByte(0x8E);
 106   1          SendByte(0x00);
 107   1          pin_RESET = 0;*/
 108   1      
 109   1          //写允许晶振启动,秒钟寄存器最高位清零
 110   1          ucTmp_Init = ReadTime(REG_SEC);
 111   1          if (0 != (ucTmp_Init & 0x80))   //已经允许,不再重写
 112   1          {
 113   2              WriteTime(REG_SEC, ucTmp_Init & 0x7F);
 114   2          }
 115   1          //WriteTime(REG_SEC, ReadTime(REG_SEC) & 0x7F);
 116   1          ucTmp_Init = ReadTime(REG_HR);
 117   1          if (0 != (ucTmp_Init & 0x80))   //0 表示使用24小时制
C51 COMPILER V8.02   HT1380                                                                05/18/2008 16:43:12 PAGE 3   

 118   1          {
 119   2              WriteTime(REG_HR, ucTmp_Init & 0x7F);
 120   2          }
 121   1      
 122   1          //IsBCD()和BCD_Hex()在LHD6000的主程序中有实现部分,后面本文件中的实现部分被转成注释
 123   1          /*FlagReadOk &= IsBCD(ReadTime(REG_YR)); //暂不用
 124   1          ucTmp_Init = BCD_Hex(ReadTime(REG_MONTH));
 125   1          FlagReadOk &= ((0 != ucTmp_Init) && (12 >= ucTmp_Init));
 126   1          ucTmp_Init = BCD_Hex(ReadTime(REG_DATE));
 127   1          FlagReadOk &= ((0 != ucTmp_Init) && (31 >= ucTmp_Init));
 128   1          ucTmp_Init = ReadTime(REG_HR);
 129   1          FlagReadOk &= ((0x23 >= ucTmp_Init) && (IsBCD(ucTmp_Init)));
 130   1          ucTmp_Init = ReadTime(REG_MIN);
 131   1          FlagReadOk &= ((0x59 >= ucTmp_Init) && (IsBCD(ucTmp_Init)));
 132   1          if (FlagReadOk)
 133   1          {
 134   1              return;
 135   1          }
 136   1          else
 137   1          {
 138   1              ResetHT1380();
 139   1          }*/
 140   1      }
 141          
 142          /*******************************************************************************
 143          * 函数名称: void ComuStart(void);
 144          * 功能描述: 通讯开始
 145          * 输入参数: 无
 146          * 输出参数: 无
 147          * 返 回 值: 无
 148          * 其他说明:
 149          * 修改日期      版 本 号        修 改 人        修改内容
 150          *-------------------------------------------------------------------------------
 151          *
 152          *******************************************************************************/
 153          /*bit  ResetHT1380(void)
 154          {
 155              unsigned char ucTimesTry = 3;
 156              bit FlagResetOK = 0;
 157              while (!FlagResetOK && (0 != ucTimesTry))
 158              {
 159                  WriteTime(REG_YR, YR_INIT);
 160                  WriteTime(REG_MONTH, MONTH_INIT);
 161                  WriteTime(REG_DATE, DATE_INIT);
 162                  WriteTime(REG_HR, HR_INIT);
 163                  WriteTime(REG_MIN, MIN_INIT);
 164                  FlagResetOK = ( (YR_INIT == ReadTime(REG_YR))
 165                                  && (MONTH_INIT == ReadTime(REG_MONTH))
 166                                  && (DATE_INIT == ReadTime(REG_DATE))
 167                                  && (HR_INIT == ReadTime(REG_HR))
 168                                  && (MIN_INIT == ReadTime(REG_MIN))
 169                                );
 170                  ucTimesTry--;
 171              }
 172              if (0 == ucTimesTry)
 173              {
 174                  return 0;
 175              }
 176              else
 177              {
 178                  return 1;
 179              }
C51 COMPILER V8.02   HT1380                                                                05/18/2008 16:43:12 PAGE 4   

 180          }*/
 181          
 182          /*******************************************************************************
 183          * 函数名称: void ComuStart(void);
 184          * 功能描述: 通讯开始
 185          * 输入参数: 无
 186          * 输出参数: 无
 187          * 返 回 值: 无
 188          * 其他说明:
 189          * 修改日期      版 本 号        修 改 人        修改内容
 190          *-------------------------------------------------------------------------------
 191          *
 192          *******************************************************************************/
 193          void    ComuStart(void)
 194          {
 195   1          pin_RESET = 0;
 196   1          _nop_();
 197   1          pin_SCLK  = 0;
 198   1          _nop_();
 199   1          pin_SIO   = 0;
 200   1          _nop_();
 201   1          _nop_();
 202   1          _nop_();
 203   1          pin_RESET =1;
 204   1      }
 205          
 206          /*******************************************************************************
 207          * 函数名称: void ComuStart(void);
 208          * 功能描述: 通讯停止
 209          * 输入参数: 无
 210          * 输出参数: 无
 211          * 返 回 值: 无
 212          * 其他说明:
 213          * 修改日期      版 本 号        修 改 人        修改内容
 214          *-------------------------------------------------------------------------------

⌨️ 快捷键说明

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