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语言的简易蓝牙锁代码相关推荐
- c语言设计一个仿真窗口的程序,51单片机C语言实例(350例)Proteus仿真和代码
100-24c02记忆开机次数 101-24c02存储上次使用中状态 102-DS1302 时钟原理 103-DS1302可调时钟 104-DS1302时钟串口自动更新时间 105-1602液晶显示D ...
- 单片机12864电子锁c语言代码,51单片机+LCD12864实现密码锁Proteus仿真和代码
#include // 包含51单片机寄存器定义的头文件 #include //包含_nop_()函数定义的头文件 #include #include <12864.h&g ...
- C语言极速学习开发——51单片机入门编程之使用KeilC51进行代码编译(点亮你心中学习的精神之灯-下)
系列文章目录 提示:本文章为系列文章,系列文章的所有文章的目录后期会时刻更新,喜欢的朋友请收藏好 <第一章 C语言极速学习开发--51单片机入门编程之使用KeilC51进行代码编译(点亮你心中学 ...
- 单片机汉字点阵c语言程序,51单片机C语言多种点阵屏驱动程序(开发软件为keil C...
51单片机C语言多种点阵屏驱动程序(开发软件为keil C 2016-08-23 1 0 0 暂无评分 其他 1 积分下载 如何获取积分? 51单片机C语言多种点阵屏驱动程序(开发软件为keil C ...
- C语言 | 基于51单片机实现MPU6050的卡尔曼滤波算法(代码类2)
github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 之前写过一个博客(代码分享:单片机开发 | ...
- 51单片机c语言工作手册,51单片机C语言编程手册
51单片机C语言编程手册 1 第一章 介绍 这是一本关于Intel 80C51 以及广大的51 系列单片机的书这本书介绍给读者一些 新的技术使你的8051 工程和开发过程变得简单请注意这本书的目的可不 ...
- 51单片机开发系列一-51单片机开发环境搭建以及入门汇编代码
51单片机开发系列一 51单片机开发环境搭建以及入门汇编代码 象棋小子 1048272975 1. 51单片机概述 51单片机是对所有兼容Intel 8031指令系统的单片机的统称.目前教科书基 ...
- 单片机 rs232 c语言,完全手册 51单片机C语言开发详解系列之第8章 串口通讯实战—RS232...
完全手册 51单片机C语言开发详解系列 技术凝聚实力 专业创新出版 第8章 串口通讯实战-RS232接口电路与软件设计 本章主要通过实际的例子讲解AT89S51单片机的RS232串行通讯接口设计. 随 ...
- c语言从入门到精通 当当,51单片机C语言编程从入门到精通
本书立足于单片机的各类型应用技术,采用大量实例和程序逐行解说的方式,详细介绍51单片机和C语言编程开发与应用技术. 内容特点: 1 立足于单片机工程应用:由浅入深,结合丰富的开发实例,介绍51单片机C ...
最新文章
- X3650M3 客户端联不上加密狗!
- CryEngine最新版发布,支持Vulkan API
- Numpy的基本用法
- LeetCode 679. 24 点游戏(回溯)
- 如何升级Linux内核(RHEL/Fedora/CentOS升级内核 Debian/Ubuntu升级内核)
- 自然语言处理——语言模型
- 关于软件测试里面的Fault Error Failure 差别
- CentOS下Redisserver安装配置
- 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---36
- 关于C#操作WPS和office兼容性的问题
- 物联网毕业设计 - 基于单片机的高精度北斗定位控制终端
- xshell 上传文件
- python 图片识别 文字
- Win10环境下完美卸载MySQL
- 天地图2021版正式发布,清晰程度非常了得
- 中国荫罩对准器市场深度研究分析报告
- 广义表的存储结构--头尾链表存储表示/扩展线性链表存储表示
- 转给计算机专业的准大学生!
- 【高通平台】安卓平板,使用QQ 视频通话,视频旋转90度问题修改
- TensorRT文档翻译