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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

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

#include

#define uint unsigned int

#define uchar unsigned char

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

sbit PWMA=P2^0;? ? ? ? //電機(jī)驅(qū)動(dòng)模塊接口

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;? ? ? ?? ?//聲明一個(gè)變量,取名state

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

{

uint i,j;

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

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

}

void turnon()? ? ? ?? ?//開(kāi)門(mén)函數(shù)

{

IN1=0;

IN2=1;

delay(700);

}

void turnoff()? ? ? ?? ?//關(guān)門(mén)函數(shù)

{

IN1=1;

IN2=0;

delay(700);

}

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

{

IN1=1;

IN2=1;

}

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

{

//初始化串口定時(shí)器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;? ? ? ? ? ? ? ?? ? //開(kāi)總中斷

TR1 = 1;? ? ? ?? ? //啟動(dòng)定時(shí)器1

ES = 1;? ? ? ?? ?? ???//打開(kāi)串行口中斷

STBY = 1;? ? ? ?? ? //電機(jī)驅(qū)動(dòng)STBY=1有效,等于1,才能驅(qū)動(dòng)電機(jī)

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

}

void SendOneByte(uchar c) //發(fā)送字符函數(shù)

{

SBUF = c-0x30;

while(!TI);

TI = 0;

}

void keyscan()? ? ? ? ? ? ? ? ? ? ? ?? ?//鍵盤(pán)掃描函數(shù)

{

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

{? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?//延時(shí)10ms,消抖

delay(10);

if(key1 == 0)

{

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

LED2=1;? ? ? ? ? ? ? ?? ?//紅燈關(guān)掉

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

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

beep=1;? ? ? ? ? ? ? ?? ?//關(guān)閉蜂鳴器

turnon();? ???//打開(kāi)門(mén)

turnstop();? ?//停止

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

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

}

}

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

{? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?//延時(shí)10ms,消抖

delay(10);

if(key2 == 0)

{

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

LED1 = 1;? ? ? ?? ?//綠燈關(guān)掉

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

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

beep = 1;? ? ? ?? ?//關(guān)閉蜂鳴器

turnoff();? ? ? ?? ?//關(guān)門(mén)

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

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

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

}

}

}

void main()

{

InitUART();

//r_buf = '2';

while(1)

{

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

if(state == 1)? ?//sate==1,也就是打開(kāi)了門(mén),亮LED1綠燈

{

LED1 = 0;

LED2 = 1;

LED3 = 1;

}

else if(state == 2)? ? ? ???//sate==2,也就是關(guān)閉了門(mén),亮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;? ? ? ?? ?//紅燈關(guān)掉

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

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

beep = 1;? ? ? ?? ?//關(guān)閉蜂鳴器

turnon();? ???//打開(kāi)門(mén)

turnstop();? ?//停止

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

}

}

if(state!=2)

{

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

{

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

LED1 = 1;? ? ? ?? ?//綠燈關(guān)掉

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

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

beep = 1;? ? ? ?? ?//關(guān)閉蜂鳴器

turnoff();? ? ? ?? ?//關(guān)門(mén)

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

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

}

}

else //如果為其它字符

{

LED3 = 1;

}

SendOneByte(r_buf);//向手機(jī)回發(fā)該字符

}

}

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。