找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1289|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機獨立按鍵程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:848128 發(fā)表于 2020-11-25 22:22 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
1          /*************************************************************************************
   2         
   3          *
   4          實驗現(xiàn)象:下載程序后按下K1按鍵可以對D1小燈狀態(tài)取反
   5          接線說明: (具體接線圖可見開發(fā)攻略對應(yīng)實驗的“實驗現(xiàn)象”章節(jié))
   6                     
   7          注意事項:                    
   8         
   9                                
  10          **************************************************************************************
  11         
  12          */
  13         
  14          #include "reg52.h"       //此文件中定義了單片機的一些特殊功能寄存器
  15         
  16          typedef unsigned int u16;   //對數(shù)據(jù)類型進行聲明定義
  17          typedef unsigned char u8;
  18         
  19          sbit k1=P3^1;  //定義P31口是k1
  20          sbit led=P2^0;   //定義P20口是led
  21         
  22          /*******************************************************************************
  23          * 函 數(shù) 名         : delay
  24          * 函數(shù)功能       : 延時函數(shù),i=1時,大約延時10us
  25          *******************************************************************************/
  26          void delay(u16 i)
  27          {
  28   1        while(i--);
  29   1      }
  30         
  31          /*******************************************************************************
  32          * 函 數(shù) 名         : keypros
  33          * 函數(shù)功能       : 按鍵處理函數(shù),判斷按鍵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狀態(tài)取反
  43   3          }
  44   2          while(!k1);  //檢測按鍵是否松開
  45   2        }   
  46   1      }
  47         
  48          /*******************************************************************************
  49          * 函 數(shù) 名       : main
  50          * 函數(shù)功能     : 主函數(shù)
  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();  //按鍵處理函數(shù)  
  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)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表