#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语言的简易蓝牙锁代码相关推荐

  1. c语言设计一个仿真窗口的程序,51单片机C语言实例(350例)Proteus仿真和代码

    100-24c02记忆开机次数 101-24c02存储上次使用中状态 102-DS1302 时钟原理 103-DS1302可调时钟 104-DS1302时钟串口自动更新时间 105-1602液晶显示D ...

  2. 单片机12864电子锁c语言代码,51单片机+LCD12864实现密码锁Proteus仿真和代码

    #include       //  包含51单片机寄存器定义的头文件 #include     //包含_nop_()函数定义的头文件 #include #include <12864.h&g ...

  3. C语言极速学习开发——51单片机入门编程之使用KeilC51进行代码编译(点亮你心中学习的精神之灯-下)

    系列文章目录 提示:本文章为系列文章,系列文章的所有文章的目录后期会时刻更新,喜欢的朋友请收藏好 <第一章 C语言极速学习开发--51单片机入门编程之使用KeilC51进行代码编译(点亮你心中学 ...

  4. 单片机汉字点阵c语言程序,51单片机C语言多种点阵屏驱动程序(开发软件为keil C...

    51单片机C语言多种点阵屏驱动程序(开发软件为keil C 2016-08-23 1 0 0 暂无评分 其他 1 积分下载 如何获取积分? 51单片机C语言多种点阵屏驱动程序(开发软件为keil C ...

  5. C语言 | 基于51单片机实现MPU6050的卡尔曼滤波算法(代码类2)

    github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 之前写过一个博客(代码分享:单片机开发 | ...

  6. 51单片机c语言工作手册,51单片机C语言编程手册

    51单片机C语言编程手册 1 第一章 介绍 这是一本关于Intel 80C51 以及广大的51 系列单片机的书这本书介绍给读者一些 新的技术使你的8051 工程和开发过程变得简单请注意这本书的目的可不 ...

  7. 51单片机开发系列一-51单片机开发环境搭建以及入门汇编代码

    51单片机开发系列一 51单片机开发环境搭建以及入门汇编代码 象棋小子    1048272975 1. 51单片机概述 51单片机是对所有兼容Intel 8031指令系统的单片机的统称.目前教科书基 ...

  8. 单片机 rs232 c语言,完全手册 51单片机C语言开发详解系列之第8章 串口通讯实战—RS232...

    完全手册 51单片机C语言开发详解系列 技术凝聚实力 专业创新出版 第8章 串口通讯实战-RS232接口电路与软件设计 本章主要通过实际的例子讲解AT89S51单片机的RS232串行通讯接口设计. 随 ...

  9. c语言从入门到精通 当当,51单片机C语言编程从入门到精通

    本书立足于单片机的各类型应用技术,采用大量实例和程序逐行解说的方式,详细介绍51单片机和C语言编程开发与应用技术. 内容特点: 1 立足于单片机工程应用:由浅入深,结合丰富的开发实例,介绍51单片机C ...

最新文章

  1. X3650M3 客户端联不上加密狗!
  2. CryEngine最新版发布,支持Vulkan API
  3. Numpy的基本用法
  4. LeetCode 679. 24 点游戏(回溯)
  5. 如何升级Linux内核(RHEL/Fedora/CentOS升级内核 Debian/Ubuntu升级内核)
  6. 自然语言处理——语言模型
  7. 关于软件测试里面的Fault Error Failure 差别
  8. CentOS下Redisserver安装配置
  9. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---36
  10. 关于C#操作WPS和office兼容性的问题
  11. 物联网毕业设计 - 基于单片机的高精度北斗定位控制终端
  12. xshell 上传文件
  13. python 图片识别 文字
  14. Win10环境下完美卸载MySQL
  15. 天地图2021版正式发布,清晰程度非常了得
  16. 中国荫罩对准器市场深度研究分析报告
  17. 广义表的存储结构--头尾链表存储表示/扩展线性链表存储表示
  18. 转给计算机专业的准大学生!
  19. 【高通平台】安卓平板,使用QQ 视频通话,视频旋转90度问题修改
  20. TensorRT文档翻译

热门文章

  1. .Net架构必备工具列表
  2. python程序写完后点哪个运行快_让你的Python运行更快
  3. 智能家居项目开发准备工作
  4. java动态打印_JFreeChart学习(三)——动态打印java内存使用情况
  5. C++ - 进阶 1002
  6. 数据结构 二、向量(接口与实现and可扩容向量)
  7. 产品设计美学案例分析_美学在产品设计中的重要性
  8. 使用nmcli 实现 bond0 网络组 网桥三种模式
  9. 微信小程序之 SideBar(侧栏分类)
  10. left join 和 inner join