日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言编手机蓝牙软件的代码,51单片机C语言的简易蓝牙锁代码

發布時間:2023/12/9 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言编手机蓝牙软件的代码,51单片机C语言的简易蓝牙锁代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#include

#define uint unsigned int

#define uchar unsigned char

uchar r_buf; //藍牙接收到的字符存儲緩沖區

sbit PWMA=P2^0;? ? ? ? //電機驅動模塊接口

sbit IN1=P2^2;

sbit IN2=P2^1;

sbit STBY=P2^3;

sbit LED1=P0^0;? ? ? ? //LED燈接口

sbit LED2=P0^1;

sbit LED3=P0^2;

sbit key1=P1^0;? ? ? ???//按鍵接口

sbit key2=P1^1;

sbit key3=P1^2;

sbit key4=P1^3;

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

uchar state;? ? ? ?? ?//聲明一個變量,取名state

void delay(uint x)? ? ? ? //延時函數

{

uint i,j;

for(i=x;i>0;i--)

for(j=110;j>0;j--);

}

void turnon()? ? ? ?? ?//開門函數

{

IN1=0;

IN2=1;

delay(700);

}

void turnoff()? ? ? ?? ?//關門函數

{

IN1=1;

IN2=0;

delay(700);

}

void turnstop()? ? ? ???//停止函數

{

IN1=1;

IN2=1;

}

void InitUART()? ? //串口初始化9600

{

//初始化串口定時器9600

TMOD = 0x20;? ?//0x20=0010 0000 TMOD中的M0和M1為控制方式的選擇 M1=1,M0=0 T1,方式2

PCON = 0x00;? ?//波特率不倍增

SCON = 0x50;? ?//串口模式1,允許接收

TH1 = 0xFD;? ? ? ?? ? //波特率9600

TL1 = 0xFD;? ? ? ?? ? //波特率9600

EA = 1;? ? ? ? ? ? ? ?? ? //開總中斷

TR1 = 1;? ? ? ?? ? //啟動定時器1

ES = 1;? ? ? ?? ?? ???//打開串行口中斷

STBY = 1;? ? ? ?? ? //電機驅動STBY=1有效,等于1,才能驅動電機

PWMA = 1;? ? ? ?? ? //

}

void SendOneByte(uchar c) //發送字符函數

{

SBUF = c-0x30;

while(!TI);

TI = 0;

}

void keyscan()? ? ? ? ? ? ? ? ? ? ? ?? ?//鍵盤掃描函數

{

if(key1 == 0)? ? ? ???? ? ? ?? ?//掃描按鍵key1

{? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?//延時10ms,消抖

delay(10);

if(key1 == 0)

{

beep=0;? ? ? ? ? ? ? ?? ?//蜂鳴器響

LED2=1;? ? ? ? ? ? ? ?? ?//紅燈關掉

LED3=0;? ? ? ? ? ? ? ?? ?//黃燈亮

delay(400);? ? ? ?? ?//延時400毫秒

beep=1;? ? ? ? ? ? ? ?? ?//關閉蜂鳴器

turnon();? ???//打開門

turnstop();? ?//停止

state=1;? ? ? ?? ?//將1賦值給state

while(!key1); //等待按鍵釋放

}

}

if(key2==0)? ? ? ???? ? ? ? ? ? ? ?? ?//掃描按鍵key2

{? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?//延時10ms,消抖

delay(10);

if(key2 == 0)

{

beep = 0;? ? ? ?? ?//蜂鳴器響

LED1 = 1;? ? ? ?? ?//綠燈關掉

LED3 = 0;? ? ? ?? ?//黃燈亮

delay(400);? ? ? ?? ?//延時400毫秒

beep = 1;? ? ? ?? ?//關閉蜂鳴器

turnoff();? ? ? ?? ?//關門

turnstop();? ? ? ?? ?//停止

state = 2;? ? ? ?? ?//將2賦值給state

while(!key2); //等待按鍵釋放

}

}

}

void main()

{

InitUART();

//r_buf = '2';

while(1)

{

keyscan();? ? ? ? ? ? ? ???//

if(state == 1)? ?//sate==1,也就是打開了門,亮LED1綠燈

{

LED1 = 0;

LED2 = 1;

LED3 = 1;

}

else if(state == 2)? ? ? ???//sate==2,也就是關閉了門,亮LED2紅燈燈

{

LED1 = 1;

LED3 = 1;

LED2 = 0;

}

else

{

LED1 = 1;

LED2 = 1;

LED3 = 0;

}

}

}

void UARTInterrupt(void) interrupt 4 //串口接收字符

{

if(RI)

{

RI = 0;? ?? ? ? ?? ?//

r_buf = SBUF;? ???//

if(state!=1)

{

if(r_buf == '0')??//如果為字符‘0’

{

beep = 0;? ? ? ?? ?//蜂鳴器響

LED2 = 1;? ? ? ?? ?//紅燈關掉

LED3 = 0;? ? ? ?? ?//黃燈亮

delay(400);? ? ? ?? ?//延時400毫秒

beep = 1;? ? ? ?? ?//關閉蜂鳴器

turnon();? ???//打開門

turnstop();? ?//停止

state = 1;? ? ? ?? ?//將1賦值給state

}

}

if(state!=2)

{

if(r_buf == '1')??//如果為字符‘1’

{

beep = 0;? ? ? ?? ?//蜂鳴器響

LED1 = 1;? ? ? ?? ?//綠燈關掉

LED3 = 0;? ? ? ?? ?//黃燈亮

delay(400);? ? ? ?? ?//延時400毫秒

beep = 1;? ? ? ?? ?//關閉蜂鳴器

turnoff();? ? ? ?? ?//關門

turnstop();? ? ? ?? ?//停止

state = 2;? ? ? ?? ?//將2賦值給state

}

}

else //如果為其它字符

{

LED3 = 1;

}

SendOneByte(r_buf);//向手機回發該字符

}

}

總結

以上是生活随笔為你收集整理的c语言编手机蓝牙软件的代码,51单片机C语言的简易蓝牙锁代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。