標(biāo)題:
藍牙串口控制電路及程序
[打印本頁]
作者:
阿里郎呀嘿
時間:
2016-5-30 23:37
標(biāo)題:
藍牙串口控制電路及程序
基于51單片機的藍牙串口控制電路原理圖
0.png
(87.23 KB, 下載次數(shù): 214)
下載附件
2016-6-3 13:43 上傳
全部資料下載:
藍牙串口控制電路.zip
(15.8 MB, 下載次數(shù): 40)
2016-5-30 23:36 上傳
點擊文件名下載附件
藍牙串口控制電路
下載積分: 黑幣 -5
三按鍵模式控制程序:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
int Time[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共陰極數(shù)碼管0~9段碼
int hour_shi=2,hour_ge=0,min_shi=1,min_ge=6;
int NLh_shi=0,NLh_ge=0,NLm_shi=0,NLm_ge=0;
int star_flag=1;
int kk=4600; //一秒鐘是75,一分鐘是4500(用一個LED燈來做狀態(tài)指示),但是還是有點誤差
char sbuf_in;
sbit jdq=P1^0;
sbit jdq1=P1^1;
sbit jdq2=P1^2;
sbit jdq3=P1^3;
sbit fmq=P1^4;
sbit button4=P2^7;
sbit button3=P2^6;
sbit button2=P2^5;
sbit button1=P2^4;
void delay(uchar i)
{
uchar j;
while(i--)
for(j=0;j<120;j++);
}
void BT_Uart_inti() //單片機串口初始化
{
//SCON=0X50; //串口工作方式1,允許串口接收
SM0=0;
SM1=1;
REN=1;
//RI=1; //接收標(biāo)志位,0:正在接收 1:接收完畢 (如果RI=1就一直執(zhí)行串口中斷)
TMOD=0X20; //定時器T1工作方式2
TH1=0XFD; //9600bit/s下的定時器初值
TL1=0XFD;
TR1=1; //啟動定時器T1
EA=1; //開總中斷
ES=1; //開串行口中斷
}
void smg_init() //數(shù)碼管初始化
{
uint n;
for(n=0;n<4;n++)
{
P2=(0XFE<<n);
P0=0X49;
delay(500);
P0=0X3F;
delay(500);
}
fmq=0; //關(guān)閉蜂鳴器
}
/*void Send_char(uchar dat) //發(fā)送端
{
SBUF=dat; //將字符送入發(fā)送寄存器
while(!TI); //T1為發(fā)送狀態(tài)標(biāo)志位,0:發(fā)送中 1:發(fā)送結(jié)束
TI=0; //手動清零標(biāo)志位
}*/
void Smg_display()
{
P2=0XFE;
P0=Time[hour_shi];
delay(3);
P2=0XFD;
P0=Time[hour_ge];
delay(3); //若延時大于此數(shù)值,則數(shù)碼管閃爍明顯
P2=0XFB;
P0=Time[min_shi];
delay(3);
P2=0XF7;
P0=Time[min_ge];
delay(3); //若延時大于此數(shù)值,則數(shù)碼管閃爍明顯
}
void Time_off()
{
uint k;
for(k=0;k<20;k++) //不知為何只循環(huán)一半次數(shù)
{
Smg_display(); //如果不調(diào)用顯示函數(shù)則無法正常顯示數(shù)值
jdq=~jdq;
jdq1=~jdq1;
jdq2=~jdq2;
jdq3=~jdq3;
fmq=~fmq;
delay(33);
Smg_display();
delay(33);
}
}
void Smg_display2()
{
P2=0XFE;
P0=Time[NLh_shi];
delay(3);
P2=0XFD;
P0=Time[NLh_ge];
delay(3); //若延時大于此數(shù)值,則數(shù)碼管閃爍明顯
P2=0XFB;
P0=Time[NLm_shi];
delay(3);
P2=0XF7;
P0=Time[NLm_ge];
delay(3); //若延時大于此數(shù)值,則數(shù)碼管閃爍明顯
}
void Button4()
{
if(button1==0)
{
delay(15);
if(button1==0)
{
star_flag++;
if(star_flag>3)
star_flag=1;
}
}
if(star_flag==1) //啟動時鐘
{
jdq=0;jdq1=1;jdq2=1;jdq3=0; //用LED來做狀態(tài)顯示,靠邊的兩盞燈常亮表示正在工作
Smg_display(); //調(diào)用數(shù)碼管顯示函數(shù)
kk--;
if(kk<0)
{
kk=4600;
min_ge++;
if(min_ge>9)
{
min_ge=0;
min_shi++;
if(min_shi>5)
{
min_shi=0;
hour_ge++;
if(hour_shi==2&&hour_ge>3)
{
hour_shi=0; hour_ge=0;
min_shi=0; min_ge=0;
}
if(hour_ge>9)
{
hour_ge=0;
hour_shi++;
}
}
}
}
}
if(star_flag==2) //暫停時鐘(用來校準(zhǔn)時間)
{
jdq=0;jdq1=0;jdq2=0;jdq3=0; //四盞燈全亮表示進入暫停狀態(tài)
Smg_display(); //調(diào)用數(shù)碼管顯示函數(shù)
if(button2==0) //時位自增
{
delay(88);
if(button2==0)
{
hour_ge++;
if(hour_shi==2&&hour_ge>3)
{
hour_shi=0;
hour_ge=0;
}
if(hour_ge>9)
{
hour_ge=0;
hour_shi++;
}
}
}
if(button3==0) //分位自減
{
delay(88);
if(button3==0)
{
min_ge--;
if(min_ge<0)
{
min_ge=9;
min_shi--;
if(min_shi<0)
min_shi=5;
}
}
}
}
if(button4==0)
{
delay(88);
if(button4==0)
star_flag=3;
}
if(star_flag==3) //設(shè)置鬧鈴時間
{
jdq=1,jdq1=1;jdq2=1;jdq3=1; //四盞燈全滅表示進入設(shè)置鬧鈴狀態(tài)
Smg_display2();
if(button2==0) //時位自增
{
delay(88);
if(button2==0)
{
NLh_ge++;
if(NLh_shi==2&&NLh_ge>3)
{
NLh_shi=0;
NLh_ge=0;
}
if(NLh_ge>9)
{
NLh_ge=0;
NLh_shi++;
}
}
}
}
if(button3==0) //分位自減
{
delay(88);
if(button3==0)
{
NLm_ge--;
if(NLm_ge<0)
{
NLm_ge=9;
NLm_shi--;
if(NLm_shi<0)
NLm_shi=5;
}
}
}
}
/*void Add_Sub(void)
{
smg_ge--;
if(smg_ge<0)
{smg_shi--;smg_ge=9;}
if(smg_shi<0)
{smg_shi=9;smg_ge=9;}
}*/
void main()
{
BT_Uart_inti();
Time_off();
smg_init();
while(1)
{
Button4();
if(hour_shi==NLh_shi&&hour_ge==NLh_ge&&min_shi==NLm_shi&&min_ge==NLm_ge)
Time_off();
}
}
void BT_serial_smg() interrupt 4 //中斷編號4為串行口中斷
{
//Smg_display();
if(RI) //接收標(biāo)志位,0:正在接收 1:接收完畢 (如果RI=1就一直執(zhí)行中斷)
{//Smg_display();k--;if(k==0){Add_Sub();k=66;}
RI=0; //同樣需要手動清零
sbuf_in=SBUF; //將接收緩沖器接收的字符送入變量中
}
}
復(fù)制代碼
作者:
知足123
時間:
2016-10-1 15:56
感謝樓主的分享�。。。。。。。。。。�
作者:
hou1232
時間:
2017-2-23 12:02
51單片機的藍牙串口控制電路原理圖
作者:
美猴王HLM
時間:
2017-4-14 18:03
感謝分享
作者:
1240683710
時間:
2017-5-10 15:35
看看,學(xué)習(xí)學(xué)習(xí)
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1