久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

51單片機(jī)C語(yǔ)言的簡(jiǎn)易藍(lán)牙鎖代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:441210 發(fā)表于 2018-12-6 20:29 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
C語(yǔ)言的簡(jiǎn)易藍(lán)牙鎖

單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. #define uint unsigned int  
  3. #define uchar unsigned char

  4. uchar r_buf; //藍(lán)牙接收到的字符存儲(chǔ)緩沖區(qū)

  5. sbit PWMA=P2^0;        //電機(jī)驅(qū)動(dòng)模塊接口
  6. sbit IN1=P2^2;
  7. sbit IN2=P2^1;
  8. sbit STBY=P2^3;

  9. sbit LED1=P0^0;        //LED燈接口
  10. sbit LED2=P0^1;
  11. sbit LED3=P0^2;

  12. sbit key1=P1^0;         //按鍵接口
  13. sbit key2=P1^1;
  14. sbit key3=P1^2;
  15. sbit key4=P1^3;

  16. sbit beep=P2^4;          //蜂鳴器接口

  17. uchar state;          //聲明一個(gè)變量,取名state

  18. void delay(uint x)        //延時(shí)函數(shù)
  19. {
  20.         uint i,j;
  21.         for(i=x;i>0;i--)
  22.                 for(j=110;j>0;j--);
  23. }
  24. void turnon()          //開(kāi)門(mén)函數(shù)
  25. {
  26.         IN1=0;
  27.         IN2=1;
  28.         delay(700);
  29. }
  30. void turnoff()          //關(guān)門(mén)函數(shù)
  31. {
  32.         IN1=1;
  33.         IN2=0;
  34.         delay(700);
  35. }
  36. void turnstop()         //停止函數(shù)
  37. {
  38.         IN1=1;
  39.         IN2=1;
  40. }
  41. void InitUART()    //串口初始化9600
  42. {
  43.                    //初始化串口定時(shí)器9600
  44.         TMOD = 0x20;   //0x20=0010 0000 TMOD中的M0和M1為控制方式的選擇 M1=1,M0=0 T1,方式2
  45.         PCON = 0x00;   //波特率不倍增
  46.         SCON = 0x50;   //串口模式1,允許接收   
  47.         TH1 = 0xFD;           //波特率9600
  48.         TL1 = 0xFD;           //波特率9600
  49.         EA = 1;                   //開(kāi)總中斷
  50.         TR1 = 1;           //啟動(dòng)定時(shí)器1       
  51.         ES = 1;               //打開(kāi)串行口中斷
  52.         STBY = 1;           //電機(jī)驅(qū)動(dòng)STBY=1有效,等于1,才能驅(qū)動(dòng)電機(jī)
  53.         PWMA = 1;           //
  54. }
  55. void SendOneByte(uchar c) //發(fā)送字符函數(shù)
  56. {
  57.     SBUF = c-0x30;
  58.     while(!TI);
  59.     TI = 0;
  60. }
  61. void keyscan()                          //鍵盤(pán)掃描函數(shù)
  62. {
  63.         if(key1 == 0)                   //掃描按鍵key1
  64.         {                                          //延時(shí)10ms,消抖
  65.                 delay(10);
  66.                 if(key1 == 0)
  67.                 {
  68.                         beep=0;                  //蜂鳴器響
  69.                         LED2=1;                  //紅燈關(guān)掉
  70.                     LED3=0;                  //黃燈亮
  71.                         delay(400);          //延時(shí)400毫秒
  72.                         beep=1;                  //關(guān)閉蜂鳴器
  73.                         turnon();     //打開(kāi)門(mén)
  74.                         turnstop();   //停止
  75.                         state=1;          //將1賦值給state
  76.                         while(!key1); //等待按鍵釋放
  77.                 }
  78.         }
  79.         if(key2==0)                           //掃描按鍵key2
  80.         {                                          //延時(shí)10ms,消抖
  81.                 delay(10);
  82.                 if(key2 == 0)
  83.                 {
  84.                
  85.                         beep = 0;          //蜂鳴器響
  86.                         LED1 = 1;          //綠燈關(guān)掉
  87.                         LED3 = 0;          //黃燈亮
  88.                         delay(400);          //延時(shí)400毫秒
  89.                         beep = 1;          //關(guān)閉蜂鳴器
  90.                         turnoff();          //關(guān)門(mén)
  91.                         turnstop();          //停止
  92.                         state = 2;          //將2賦值給state
  93.                         while(!key2); //等待按鍵釋放
  94.                 }
  95.         }
  96. }

  97. void main()
  98. {
  99.     InitUART();
  100.         //r_buf = '2';
  101.         while(1)
  102.         {

  103.                 keyscan();                 //
  104.                 if(state == 1)   //sate==1,也就是打開(kāi)了門(mén),亮LED1綠燈
  105.                 {
  106.                         LED1 = 0;
  107.                         LED2 = 1;
  108.                         LED3 = 1;   
  109.                 }
  110.                 else if(state == 2)         //sate==2,也就是關(guān)閉了門(mén),亮LED2紅燈燈
  111.                 {
  112.                         LED1 = 1;
  113.                         LED3 = 1;
  114.                         LED2 = 0;   
  115.                 }
  116.                 else
  117.                 {
  118.                         LED1 = 1;
  119.                         LED2 = 1;
  120.                         LED3 = 0;       
  121.                 }
  122.         }
  123. }
  124. void UARTInterrupt(void) interrupt 4 //串口接收字符
  125. {
  126.     if(RI)
  127.     {
  128.         RI = 0;             //
  129.         
  130.         r_buf = SBUF;     //
  131.         if(state!=1)
  132.         {
  133.                 if(r_buf == '0')  //如果為字符‘0’
  134.                 {
  135.                         beep = 0;          //蜂鳴器響
  136.                         LED2 = 1;          //紅燈關(guān)掉
  137.                     LED3 = 0;          //黃燈亮
  138.                         delay(400);          //延時(shí)400毫秒
  139.                         beep = 1;          //關(guān)閉蜂鳴器
  140.                         turnon();     //打開(kāi)門(mén)
  141.                         turnstop();   //停止
  142.                         state = 1;          //將1賦值給state
  143.                 }
  144.         }
  145.         if(state!=2)
  146.         {
  147.                 if(r_buf == '1')  //如果為字符‘1’
  148.                 {
  149.                         beep = 0;          //蜂鳴器響
  150.                         LED1 = 1;          //綠燈關(guān)掉
  151.                         LED3 = 0;          //黃燈亮
  152.                         delay(400);          //延時(shí)400毫秒
  153.                         beep = 1;          //關(guān)閉蜂鳴器
  154.                         turnoff();          //關(guān)門(mén)
  155.                         turnstop();          //停止
  156.                         state = 2;          //將2賦值給state
  157.                 }
  158.         }
  159.         else //如果為其它字符
  160.         {
  161.           LED3 = 1;
  162.         }

  163.    SendOneByte(r_buf);//向手機(jī)回發(fā)該字符
  164.     }
  165. }
復(fù)制代碼

所有資料51hei提供下載:
藍(lán)牙鎖.zip (30.74 KB, 下載次數(shù): 26)


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

使用道具 舉報(bào)

沙發(fā)
ID:568474 發(fā)表于 2019-6-21 20:48 | 只看該作者
有電路圖嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品视频一区在线 | 成人h免费观看视频 | 久久高清 | 日韩欧美精品在线 | 久久国内 | 天天拍天天操 | 色婷婷综合久久久久中文一区二区 | 国产精品国产馆在线真实露脸 | 亚洲最新在线 | 国产一区二区三区四区在线观看 | 91.xxx.高清在线 | 日韩成人一区 | 黄色精品| 亚洲欧美日韩系列 | 一区二区三区四区在线视频 | 亚洲一二三区免费 | 国产精品久久久久久久久久 | 夜夜骑首页 | 亚洲国产精品久久久久婷婷老年 | 成人精品久久日伦片大全免费 | 亚洲国产精品久久久久 | 精品国产一区探花在线观看 | 一区二区三区四区av | 一区二区国产精品 | 久久小视频 | 91免费视频 | 亚洲免费精品一区 | 一区二区中文字幕 | 成人免费三级电影 | 精品视频一区二区三区四区 | 久久毛片| 日韩免费 | 成人av免费在线观看 | 成人综合伊人 | 欧美日韩亚洲三区 | 国产午夜三级一区二区三 | 欧美成人一级 | 成人精品一区二区三区四区 | 中文成人在线 | 久久国产亚洲 | 中文字幕在线剧情 |