找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1046|回复: 0
收起左侧

单片机独立按键程序

[复制链接]
ID:848128 发表于 2020-11-25 22:22 | 显示全部楼层 |阅读模式
1          /*************************************************************************************
   2         
   3          *
   4          实验现象:下载程序后按下K1按键可以对D1小灯状态取反
   5          接线说明: (具体接线图可见开发攻略对应实验的“实验现象”章节)
   6                     
   7          注意事项:                    
   8         
   9                                
  10          **************************************************************************************
  11         
  12          */
  13         
  14          #include "reg52.h"       //此文件中定义了单片机的一些特殊功能寄存器
  15         
  16          typedef unsigned int u16;   //对数据类型进行声明定义
  17          typedef unsigned char u8;
  18         
  19          sbit k1=P3^1;  //定义P31口是k1
  20          sbit led=P2^0;   //定义P20口是led
  21         
  22          /*******************************************************************************
  23          * 函 数 名         : delay
  24          * 函数功能       : 延时函数,i=1时,大约延时10us
  25          *******************************************************************************/
  26          void delay(u16 i)
  27          {
  28   1        while(i--);
  29   1      }
  30         
  31          /*******************************************************************************
  32          * 函 数 名         : keypros
  33          * 函数功能       : 按键处理函数,判断按键K1是否按下
  34          *******************************************************************************/
  35          void keypros()
  36          {
  37   1        if(k1==0)     //检测按键K1是否按下
  38   1        {
  39   2          delay(1000);   //消除抖动 一般大约10ms
  40   2          if(k1==0)  //再次判断按键是否按下
  41   2          {
  42   3            led=~led;   //led状态取反
  43   3          }
  44   2          while(!k1);  //检测按键是否松开
  45   2        }   
  46   1      }
  47         
  48          /*******************************************************************************
  49          * 函 数 名       : main
  50          * 函数功能     : 主函数
  51          * 输    入       : 无
  52          * 输    出       : 无
  53          *******************************************************************************/
  54          void main()
  55          {
C51 COMPILER V9.01   MAIN                                                                  04/10/2019 10:55:27 PAGE 2   

  56   1        led=1;
  57   1        while(1)
  58   1        {
  59   2          keypros();  //按键处理函数  
  60   2        }   
  61   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =     37    ----
   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)


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表