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

📄 button.lst

📁 74HC165读按键.rar
💻 LST
字号:
C51 COMPILER V7.10   BUTTON                                                                11/02/2009 22:38:11 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE BUTTON
OBJECT MODULE PLACED IN button.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE button.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*******************************************************************************
   2          *  标题:  学习板的按钮输入 控制对应的继电器输出                               *
   3          *                                                                                                                                                          *
   4          * 连接方法:用8PIN排线将JP5与JP6连接 和 JP11(P2)与JP1(LED灯)连接               *
   5                                                                                                                                                                     *
   6          * 1. 通过本例程了解74HC165(并入串出) 的基本原理和使用                                            *
   7          * 2.了解掌握SPI总线接口的工作原理及一般编程方法。                                                          *
   8          * 3. 懂的74HC165在C语言中是如何操作                                  *             *
   9          *                                     *                                                                            *
  10          ********************************************************************************/
  11           #include <reg52.H>
  12           #include <intrins.h> 
  13          
  14           #define  NOP() _nop_()  /* 定义空指令 */
  15           #define  _Nop()  _nop_()   /*定义空指令*/
  16          
  17          
  18          sbit    CLK    = P3^6;
  19          sbit    IN_PL  = P1^6;    //74HC165  shift load   把数据加载到锁存器中
  20          sbit    IN_Dat = P1^7;    //74HC165  output       数据通过P3.5脚移进单片机内处理
  21          sbit    RELAY  = P1^4;
  22          sbit    BEEP   = P1^5;
  23          
  24           
  25          unsigned long ReHC74165(void);     //函数声名     
  26          unsigned char bdata Key;
  27           unsigned int Output;
  28          sbit K0=Key^0;
  29          sbit K1=Key^1;
  30          sbit K2=Key^2;
  31          sbit K3=Key^3;
  32          sbit K4=Key^4;
  33          sbit K5=Key^5;
  34          sbit K6=Key^6;
  35          sbit K7=Key^7;
  36          
  37          bit K0J,K1J,K2J,K3J;     //位定义
  38          
  39          bit M0,M1,M2,M3;            //位定义
  40          
  41           main()
  42            {       
  43   1              //M0=M1=M2=M3=0;
  44   1        while(1)
  45   1        { 
  46   2          unsigned long  Input=ReHC74165();
  47   2               Key=Input&0xff;
  48   2      
  49   2                //实现脉冲输入
  50   2          if(K0&K0J)M0=~M0;      
  51   2                 K0J=~K0;  
  52   2          if(K1&K1J)M1=~M1; 
  53   2                 K1J=~K1;   
  54   2              if(K2&K2J)M2=~M2; 
  55   2                 K2J=~K2;   
C51 COMPILER V7.10   BUTTON                                                                11/02/2009 22:38:11 PAGE 2   

  56   2              if(K3&K3J)M3=~M3; 
  57   2                 K3J=~K3; 
  58   2      
  59   2                             RELAY = 1;
  60   2                                 BEEP =  1;
  61   2      
  62   2                  if(M0) RELAY = 0;
  63   2                  if(M1) BEEP  = 0;
  64   2                      
  65   2                  P2 = K0;
  66   2         
  67   2         }    
  68   1         
  69   1       }
  70          
  71          
  72           
  73           /*************************此部分为74HC165的驱动程序使用SPI总线连接*************************************/
  74          
  75          
  76          /*********************************************************************************************************
  77          ** 函数名称:  74HC165
  78          ** 功能描述: 
  79          ** 管脚描述:请参考相关的芯片资料(学习光盘中以配)
  80          *********************************************************************************************************/
  81          unsigned long ReHC74165(void)
  82          {  
  83   1        unsigned char i;
  84   1        unsigned long indata;
  85   1                      
  86   1         IN_PL=0;
  87   1         NOP();
  88   1         IN_PL=1;
  89   1         NOP(); 
  90   1                    
  91   1         indata=0;     
  92   1         for(i=0; i<8; i++)
  93   1          { 
  94   2                indata=indata<<1;
  95   2            if(IN_Dat==1)indata=indata+1;
  96   2                CLK=1;
  97   2            NOP();
  98   2            CLK=0;      
  99   2              } 
 100   1         
 101   1         return(~indata);
 102   1       
 103   1      }
 104          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    137    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      8    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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