找回密码
 注册
关于网站域名变更的通知
查看: 609|回复: 2
打印 上一主题 下一主题

用蓝牙控制小灯亮灭(小灯用单片机P2口控制)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2016-5-11 13:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
为了方便大家阅读,程序就不以附件的形式呈现了,我用的蓝牙是HC05,一开始我一直纠结AT指令,一直搞不好。但听高人一说,模块拿来就是用的,所以像我们这种自学单片机的方向一定得对!要特别注意的是,蓝牙发送数据有两种数据形式,16进制发送或字符发送,而字符发送需要在SBUF后面减去48!! ?. G, c% m5 A2 J9 k
#include<reg52.h>//声明头文件! F, }8 |9 Z, ^/ g7 D' J1 y- u: N' z5 N
#define uchar unsigned char//宏定义
: r# A: g1 Z5 F5 m#define uint unsigned int//宏定义
5 c  b) m+ A! ^1 k: M6 puint a;
) f7 d6 m6 x+ Y# Z+ Wvoid init()//初始化子程序
6 I7 v+ M$ a. `" a{) O/ {  K. L8 M# V! P) E7 X( {7 u
        TMOD=0x20;                          //设置定时器T1为工作方式2, X* B6 Y, O( b. b
        TH1=0xfd;0 o( @6 j9 T1 \4 X& n; J
        TL1=0xfd;                           //T1定时器装初值
2 j0 q! g6 U. |9 U9 I2 F- _2 N% X        TR1=1;                              //启动定时器T1# W+ R: w! B( c7 Z. J
        REN=1;                              //允许串口接收  C) m' Y# r- {
        SM0=0;, \1 P  q( y3 i7 [/ u: F
        SM1=1;                              //设置串口工作方式1! Y* k0 V0 D7 z; m
        EA=1;                               //开总中断
+ ^& [% U' j6 u        ES=1;                               //开串口中断
. y9 t. [2 J6 ^/ L}
' Y0 `3 a3 i  T2 E- C0 N+ d' i* ^2 f- F; i8 ~+ z
+ [& [: H, ]$ A4 O4 b9 J
void main()//主程序
+ i6 W$ I- \4 u- @{
1 t4 @, Z9 z" Y+ \        init();//调用初始化子程序
' q% Z+ ]1 x& t' o* J: t" o        while(1)//死循环
: D: m9 f0 ?( B& B# e) {4 g        {
( `: U7 ~- S4 ~                switch(a)//判断a从串口读取到的数据' ]8 h) ^4 z8 D- O) e
                {
; j' i5 e) D9 A, f/ S                        case 1:
' Q+ n+ T0 P9 b! f                        P2=0X00;0 W0 O1 U0 y$ }
                        break;
0 g% J7 b; w7 ]7 M9 N$ b  f
3 }, [3 j; u3 P                        case 2:* b' Q3 Z, F5 N7 r
                        P2=0X01;
3 g' e) S" Q& r6 L* ]                        break;6 U/ X/ _6 g$ u/ c% w

0 b( {* e$ |5 b1 }6 m4 [                        case 3:/ |7 o5 O* v: D" T7 [  O
                        P2=0X02;
5 k9 {& o* ^- \9 E7 E                        break;
! U3 c; L' `3 t$ g
! C( V( e2 h- c( b! w                        case 4:8 a. q! _. i! m" z2 i" n
                        P2=0X04;
% U: m2 [' _9 u, \+ W                        break;
  [: ^5 E* ?4 F& ]# k6 t$ [, U* D, `- Q6 |: [, V5 b
                        case 5:
4 d& w" ?! i5 S                        P2=0X08;+ N) |" q& n4 r; E% w- n9 Z
                        break;/ N& g/ a8 `% r' X' H
4 m2 |: F& W. K: a, ?0 I; ^6 u3 K
                        case 6:
6 l9 m, v0 L0 _# s% h! f, N8 x4 K                        P2=0X10;/ Z& Y0 q% V( B; b6 y$ e
                        break;- D  f5 l4 i6 Z2 Y

5 p) {/ P# i0 ^$ x                        case 7:" j. M( l/ M. P( c
                        P2=0X20;  ^7 E- x9 Y& y9 z3 D- ~: ?" z0 Z
                        break;
# c$ Q, f/ R3 ?) M/ ]; \* t/ z* D$ @; v& x. S6 w0 H" d
                        case 8:3 g: |9 S7 |' l5 s9 {& [
                        P2=0X40;3 v3 Q( y4 I  q
                        break;
+ g9 a9 X' D2 v3 K+ m+ F- @
( s4 U# [) i( A. a8 L                        case 9:& h: o7 t; Q; P; q+ {
                        P2=0X80;
0 J4 a) o' s3 L6 b7 v                        break;  o7 Y# }8 `2 A/ B) H
+ _/ M4 o6 U' l0 I6 H
                }        
# J8 }  H- a- f/ v        }        
2 @! d! @& S, [5 _5 ?}
! ~; F1 F7 x2 J+ e* h2 j- G* w$ x% T& n" @; Q/ W
void chuan() interrupt 4//串口中断服务程序- n* c4 i2 z( z9 y9 G3 Y
{- h' X* K/ S5 w  L& Y" H: K( i
        RI=0;//软件清除串口响应
" V+ A, k& n* n( O        a=SBUF-48;//读取单片机串口接受的蓝牙模块发送的数据9 ?- n( C- m* }+ \6 X' c9 u
}

串口通信助手.zip

58.44 KB, 下载次数: 2, 下载积分: 威望 -5

该用户从未签到

2#
发表于 2016-5-16 11:43 | 只看该作者
楼主很有心啊!

该用户从未签到

3#
发表于 2017-1-5 13:54 | 只看该作者
谢谢分享,赞一个! Z- j7 ~; ^# \% J2 r7 p
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-6 09:17 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表