找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機(jī)模擬電動牙刷程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:849826 發(fā)表于 2021-7-12 20:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
        /*-----------------------------------------------
  名稱:按鍵震動程序,按下不同的按鍵,改變輸出端的震動頻率
  日期:2021-7-12

  內(nèi)容:改變P2口的1個LED燈閃爍頻率,接手機(jī)震動馬達(dá),模擬電動牙刷
    需要修改地方有兩處:1,多個按鍵改成一個按鍵來控制不同震動頻率。
   2:按下按鍵1怎么讓他一直循環(huán),而不是循環(huán)10次,
    直到按下按鍵2切換到第二種頻率。
    不使用PWM控制。
    希望大師給修改一下程序
------------------------------------------------*/
#include<reg52.h> //包含頭文件
                            //頭文件包含特殊功能寄存器的定義
#define uint unsigned int
#define uchar unsigned char

sbit key1  = P1^0; //按鍵1
sbit key2   = P1^1; //按鍵2       
sbit LED0=P2^0;// 定義 輸出到P2.0端口,


int i;

void delay(uint xms)  //延時
{
        int i,j;
        for(i=xms;i>0;i--)
                for(j=110;j>0;j--) ;
}

/*------------------------------------------------
                    主函數(shù)
------------------------------------------------*/
void main (){



while (1)         //主循環(huán)
  {
if(key1 == 0){
          //延時20ms 消除抖動
          delay(15);
          //第二次判斷
          if(key1 == 0){
for(i=0;i<10;i++)   //不按按鍵應(yīng)該讓他一直循環(huán),現(xiàn)在是循環(huán)執(zhí)行10次        ,怎么才能讓他一直循環(huán)?
  {
  LED0=0;            //將P1.0口賦值 0,對外輸出低電平
  delay(250);       //調(diào)用延時程序;更改延時數(shù)字可以更改延時長度;
                     //用于改變閃爍頻率
  LED0=1;            //將P1.0口賦值 1,對外輸出高電平
  delay(250);
  }
  }
          while(!key1);   //當(dāng)按鍵未松開時,key為0,執(zhí)行該死循環(huán)。
         //等待按鍵被松開
         }


if(key2 == 0){
          //延時20ms 消除抖動
          delay(15);
          //第二次判斷
          if(key2 == 0){
                       

for(i=0;i<10;i++)
  {
  LED0=0;            //將P1.0口賦值 0,對外輸出低電平
  delay(450);      //調(diào)用延時程序;更改延時數(shù)字可以更改延時長度;
                     //用于改變閃爍頻率
  LED0=1;            //將P1.0口賦值 1,對外輸出高電平
  delay(500);      
   }
   }
          
          
         //等待按鍵被松開

          while(!key2);  //當(dāng)按鍵未松開時,key為0,執(zhí)行該死循環(huán)。
        }
                     //主循環(huán)中添加其他需要一直工作的程序
        }
        }

        按鍵反應(yīng)有點遲鈍,也需要修改一下。   
                  
         


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規(guī)則

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

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

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