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

📄 relay.lst

📁 EX3_RELAY: (继电器) K1- 吸合键
💻 LST
字号:
C51 COMPILER V8.12   RELAY                                                                 04/06/2009 09:43:18 PAGE 1   


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

line level    source

   1          /*******************************************************************
   2           *                                                                  *
   3           * ME850单片机开发实验仪演示程序 -  键控制继电器                    *
   4           *                                                                  *
   5           * K1- 吸合键,K2- 释放键                                           *
   6           *                                                                  *
   7           * 版本: V1.0 (2008/08/16)                                         *
   8           * 作者: gguoqing (Email: gguoqing@willar.com)                     *
   9           * 作者: gguoqing (gguoqing@willar.com)                            *
  10           * 网站: www.sofi-tech.com(硕飞科技) www.mcusj.com(伟纳单片机世界) *
  11           * 邮箱: sofitech@tom.com                                        *
  12           *                                                                  *
  13           *【版权】Copyright(C)伟纳电子 www.willar.com  All Rights Reserved  *
  14           *【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!        *
  15           *                                                                  *
  16           *******************************************************************/
  17          
  18          #include <reg52.h>
  19          
  20          char code reserve[3]_at_ 0x3b; //保留0x3b开始的3个字节
  21          
  22          sbit K1 = P1 ^ 4;
  23          sbit K2 = P1 ^ 5;
  24          sbit relay = P3 ^ 6;
  25          
  26          unsigned char key_new, key_old;
  27          
  28          /**********************************************************
  29          
  30          延时函数
  31          
  32           **********************************************************/
  33          void delayms(unsigned int ms)
  34          {
  35   1        unsigned char k;
  36   1        while (ms--)
  37   1        {
  38   2          for (k = 0; k < 114; k++)
  39   2            ;
  40   2        }
  41   1      }
  42          
  43          /********************************************************
  44          
  45          扫描健盘函数
  46          
  47           ********************************************************/
  48          unsigned char scan_key()
  49          {
  50   1        key_new = 0x00;
  51   1        key_new |= K2;
  52   1        key_new <<= 1;                   //左移1位
  53   1        key_new |= K1;
  54   1        return key_new;                 //无键按下 key_new=0x03。
  55   1      }
C51 COMPILER V8.12   RELAY                                                                 04/06/2009 09:43:18 PAGE 2   

  56          
  57          /**********************************************************
  58          
  59          主函数
  60          
  61           **********************************************************/
  62          void main(void)
  63          {
  64   1        P0 = 0xff;                        //初始化端口
  65   1        P2 = 0xff;
  66   1        P1 = 0xf0;                        //置P1高四位为输入
  67   1        key_old = 0x03;                   //初始键比较值
  68   1        relay = 1;                        //继电器释放
  69   1      
  70   1        while (1)
  71   1        {
  72   2          scan_key();
  73   2          if (key_new != key_old)
  74   2          {
  75   3            delayms(10);                  //延时去抖动
  76   3            scan_key();                   //再次判健是否按下
  77   3            if (key_new != key_old)
  78   3            {
  79   4              key_old = key_new;           //保存按键状态
  80   4              if ((key_new &0x01) == 0)        //K1键按下
  81   4                relay = 0;                     //继电器吸合
  82   4      
  83   4              if ((key_new &0x02) == 0)    //K2键按下
  84   4                relay = 1;                         //继电器释放                                                                                       
  85   4            }
  86   3          }
  87   2        }
  88   1      }
  89          
  90           /**********************************************************/


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