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

📄 74hc595-165.lst

📁 51单片机实验例程
💻 LST
字号:
C51 COMPILER V7.10   74HC595_165                                                           10/20/2008 22:28:46 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE 74HC595_165
OBJECT MODULE PLACED IN 74hc595-165.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE 74hc595-165.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2           /*************************此部分为74HC595的驱动程序使用SPI总线连接*************************************/
   3          
   4          #include<reg52.h>
   5          #include <intrins.h>
   6          #include <Function.h>
   7          
   8          #define  NOP()   _nop_()   /* 定义空指令 */
   9          #define  _Nop()  _nop_()   /*定义空指令*/
  10          
  11          
  12          //SPI IO
  13          sbit    MOSIO =P1^5;
  14          sbit    R_CLK =P1^6;
  15          sbit    S_CLK =P1^7;
  16          sbit    IN_PL =P3^4;    //74HC165  shift load   把数据加载到锁存器中
  17          sbit    IN_Dat=P3^5;    //74HC165  output       数据移出
  18          sbit    OE    =P3^6;
  19          
  20          
  21          
  22          /*********************************************************************************************************
  23          ** 函数名称: HC595SendData
  24          ** 功能描述: 向SPI总线发送数据
  25          *********************************************************************************************************/
  26          void HC595SendData(unsigned int SendVal)
  27          {  
  28   1        unsigned char i;
  29   1                      
  30   1        for(i=0;i<16;i++) 
  31   1         {
  32   2              if((SendVal<<i)&0x8000) MOSIO=1; // set dataline high
  33   2              else MOSIO=0;
  34   2       
  35   2              S_CLK=0;
  36   2              NOP();
  37   2              NOP();
  38   2              S_CLK=1;        
  39   2         }
  40   1         
  41   1              
  42   1        R_CLK=0; //set dataline low
  43   1        NOP();
  44   1        NOP();
  45   1        R_CLK=1; //片选
  46   1        OE=0;
  47   1      
  48   1      }
  49          
  50          /*********************************************************************************************************
  51          ** 函数名称: ReHC74165
  52          ** 功能描述: 
  53          *********************************************************************************************************/
  54          unsigned long ReHC74165(void)
  55          {  
C51 COMPILER V7.10   74HC595_165                                                           10/20/2008 22:28:46 PAGE 2   

  56   1        unsigned char i;
  57   1        unsigned long indata;
  58   1                      
  59   1         IN_PL=0;
  60   1         NOP();
  61   1         IN_PL=1;
  62   1         NOP();            
  63   1         
  64   1         indata=0;     
  65   1         for(i=0; i<25; i++)
  66   1          { 
  67   2                indata=indata<<1;
  68   2            if(IN_Dat==1)indata=indata+1;
  69   2                S_CLK=1;
  70   2            NOP();
  71   2            S_CLK=0;    
  72   2              } 
  73   1         
  74   1         return(~indata);
  75   1       
  76   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    100    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   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 + -