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

📄 ht1380.lst

📁 时钟ic以及他的应用接口电路应用程序还有线路图
💻 LST
字号:
C51 COMPILER V7.09   HT1380                                                                08/24/2007 09:34:04 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE HT1380
OBJECT MODULE PLACED IN HT1380.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE HT1380.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51.h>
   2          #include "HT1380.h"
   3          
   4          
   5          //极短延时函数:nNop()
   6          void nNop(uchar x)
   7          {
   8   1              for(;x>0;x--);
   9   1              }
  10          
  11          //向SPI写一字节数据函数:SPI_WriteByte()
  12          void SPI_WriteByte(uint x)
  13          {
  14   1              uchar i;
  15   1              uint temp = 0x01;
  16   1              SetPinDIO(0);
  17   1              for(i=0;i<8;i++)
  18   1              {
  19   2                      PinDIO = x & temp;
  20   2                      SetSCLK(1);
  21   2                      temp = temp << 1;
  22   2                      SetSCLK(0);                             
  23   2                      }
  24   1              }
  25                  
  26          //向SPI读一字节数据函数:SPI_ReadByte()
  27          uint SPI_ReadByte(void)
  28          {
  29   1              uchar i;
  30   1              uint temp = 0x00;
  31   1              SetPinDIO(1);
  32   1              for(i=0;i<8;i++)
  33   1              {
  34   2                      SetSCLK(1);
  35   2                      temp = (temp >> 1) | PinDIO; 
  36   2                      SetSCLK(0);             
  37   2                      }
  38   1               return(temp);
  39   1              }
  40          
  41          //写命令加写数据函数:WriteByte()
  42          void WriteByte(uint x, uint y)
  43          {
  44   1              uchar i,j;
  45   1              SetPinDIO(0);
  46   1              for(i=0;i<8;i++)
  47   1              {
  48   2                      PinDIO = x & 0x01;
  49   2                      SetSCLK(1);
  50   2                      x >>= 1;
  51   2                      SetSCLK(0);
  52   2                      }
  53   1              for(j=0;j<8;j++)
  54   1              {
  55   2                      PinDIO = y & 0x01;
C51 COMPILER V7.09   HT1380                                                                08/24/2007 09:34:04 PAGE 2   

  56   2                      SetSCLK(1);
  57   2                      y >>= 1;
  58   2                      SetSCLK(0);
  59   2                      }       
  60   1              }
  61                  
  62          //写命令加读数据函数:ReadByte()
  63          uint ReadByte(uint x)
  64          {
  65   1              uchar i,j;
  66   1              uint temp = 0x00;
  67   1              uint temp1;
  68   1              SetPinDIO(0);
  69   1              for(i=0;i<8;i++)
  70   1              {
  71   2                      PinDIO = x & 0x01;
  72   2                      SetSCLK(1);
  73   2                      x >>= 1;
  74   2                      SetSCLK(0);
  75   2                      }
  76   1              SetPinDIO(1);
  77   1              for(j=0;j<8;j++)
  78   1              {
  79   2                      SetSCLK(1);
  80   2                      temp1 = PinDIO;
  81   2                      temp1 <<= j;
  82   2                      temp = temp | temp1;
  83   2                      SetSCLK(0);
  84   2                      }
  85   1              return(temp);   
  86   1              }
  87          
  88                  
  89          //使能(启动)时钟函数:StartClock()
  90          void StartClock(void)
  91          {
  92   1              SetREST(0);
  93   1              nNop(1);
  94   1              SetREST(1);
  95   1              WriteByte(0x8e,0x00);  //置WP = 0
  96   1              SetREST(0);
  97   1              nNop(1);
  98   1              SetREST(1);
  99   1              WriteByte(0x80,0x00); //置CH = 0
 100   1              SetREST(0);
 101   1              }
 102                  
 103          //单字节模式对HT1380写数据函数:HT1380_Single_Write()
 104          void HT1380_Single_Write(uint RegNum, uint Data)
 105          {
 106   1              uint Cmd;
 107   1              Cmd = 0x80 | (RegNum << 1);
 108   1              //StartClock();
 109   1              SetREST(1);
 110   1              WriteByte(Cmd,Data);
 111   1              SetREST(0);
 112   1              //nNop(10);
 113   1              }
 114          
 115          //单字节模式对HT1380读数据函数:HT1380_Single_Read()
 116          uint HT1380_Single_Read(uint RegNum)
 117          {
C51 COMPILER V7.09   HT1380                                                                08/24/2007 09:34:04 PAGE 3   

 118   1              uint Data;
 119   1              uint Cmd;
 120   1              Cmd = 0x81 | (RegNum << 1);
 121   1              SetREST(1);
 122   1              Data = ReadByte(Cmd);
 123   1              SetREST(0);
 124   1              return(Data);
 125   1              }
 126          
 127          //多字节模式对HT1380写数据函数:HT1380_Burst_Write()
 128          void HT1380_Burst_Write(uint Data_Array[])
 129          {
 130   1              uint i,j,k;
 131   1              uint Cmd = 0xbe;
 132   1              uint temp;
 133   1              SetPinDIO(0);
 134   1              SetREST(1);
 135   1              for(i=0;i<8;i++)
 136   1              {
 137   2                      PinDIO = Cmd & 0x01;
 138   2                      SetSCLK(1);
 139   2                      Cmd >>= 1;
 140   2                      SetSCLK(0);
 141   2                      }
 142   1              for(j=0;j<8;j++)
 143   1              {
 144   2                      temp = Data_Array[j];
 145   2                      for(k=0;k<8;k++)
 146   2                      {
 147   3                              PinDIO = temp & 0x01;
 148   3                              SetSCLK(1);
 149   3                              temp >>= 1;
 150   3                              SetSCLK(0);                     
 151   3                              }
 152   2                      }
 153   1              SetREST(0);
 154   1              }
 155          
 156          
 157          //多字节模式对HT1380读数据函数:HT1380_Burst_Read()
 158          void HT1380_Burst_Read(uint Data_Array[])
 159          {
 160   1              uint i,j,k;
 161   1              uint Cmd = 0xbf;
 162   1              uint temp;
 163   1              SetPinDIO(0);
 164   1              SetREST(1);
 165   1              for(i=0;i<8;i++)
 166   1              {
 167   2                      PinDIO = Cmd & 0x01;
 168   2                      SetSCLK(1);
 169   2                      Cmd >>= 1;
 170   2                      SetSCLK(0);
 171   2                      }
 172   1              SetPinDIO(1);
 173   1              for(j=0;j<8;j++)
 174   1              {
 175   2                      for(k=0;k<8;k++)
 176   2                      {
 177   3                              SetSCLK(1);
 178   3                              temp = PinDIO;
 179   3                              temp >>= k;
C51 COMPILER V7.09   HT1380                                                                08/24/2007 09:34:04 PAGE 4   

 180   3                              Data_Array[j] |= temp; 
 181   3                              SetSCLK(0);                     
 182   3                              }
 183   2                      }
 184   1              SetREST(0);
 185   1              }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    543    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      16
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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