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);//向手机回发该字符

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277302.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

列表嵌套字典,根据字典某一key排序

在返回列表嵌套字典时候,往往需要对数据进行一定的处理:按照字典中某一个key排序 In [87]: a [{"name": "牛郎", "age": 23},{"name":"许仙", "age": 20},{"name":"董永&q…

display: inline-block 布局

三个元素display: inline-block; 布局 ,其中一个元素中存在其他元素也用了display: inline-block; 无法垂直居中,将这个元素设置为display: inline; 转载于:https://www.cnblogs.com/Running00/p/11163751.html

GCC精彩之旅

在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一位Linux程序员面临的首要问题都是如何灵活运用C编译器。目前 Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI…

写出C语言中5种数据类型的名称及其关键字,求C语言中的32个关键字及其意思?...

关键字如下:一、数据类型关键字(12个):(1) char :声明字符型变量或函数(2) double :声明双精度变量或函数(3) enum :声明枚举类型(4) float:声明浮点型变量或函数(5) int: 声明整型变量或函数(6…

想要设计自己的微服务?看这篇文章就对了

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 本文由我就静静地看 发表于云社区专栏 本文通过使用Spring Boot,Spring Cloud和Docker构建的概念验证应用程序的示例,为了解常见的微服务架构模式提供了一个起点。 该代码在Github上…

函数的嵌套调用

在函数的内部调用其他的函数 def index(): func() print("index") def func(): index() # def index():# func()# print("index")## def func():# print("func")# index()#def my_max(x,y): #这个函数的作用就是比大小谁大打印出…

mysql 开发进阶篇系列 41 mysql日志之慢查询日志

一.概述 慢查询日志记录了所有的超过sql语句( 超时参数long_query_time单位 秒),获得表锁定的时间不算作执行时间。慢日志默认写入到参数datadir(数据目录)指定的路径下。默认文件名是[hostname]_slow.log,默认超时是10秒,默认不开…

分数相同名次排名规则C语言,如何给数据排名(相同分数相同名次)-excel篇

使用Rank函数来做数据排名该函数是返回一个数值在一个数字列表中的排名。语法:RANK(number,ref,order)RANK(对象,范围,参数)number(必填参数):是特定单位格中的数据,需要在整个数字列表中排名的单个对象。ref(必填参数):是指需要排名的整体数列。即范围&…

子窗体列表在菜单中的实现

想在菜单中加入子窗体的列表,上网找了半天,都很麻烦,后来看看了菜单的属性,发现里面有个MdiList属性,设置成true,搞定,晕。 转载于:https://www.cnblogs.com/catzhou/articles/258450.html

MySql的连接查询

若一个查询同时涉及到两个或者两个以上的表,则称之为连接查询。常见的包括:等值连接查询,自然连接查询,非等值连接查询,自身连接查询,外连接查询(左右连接)。 1.等值与非等值连接查询…

linux下ssh通过公钥登录服务器

经常会通过ssh登录远程服务器,一种是通过密码方式登录,一种是通过公钥登录。 如何设置通过公钥登录服务器 1. 首先生成自己的公钥和私钥 ssh-keygen 命令用来生成公钥和私钥-t 用来指定密钥类型(dsa | ecdsa | ed25519 | rsa | rsa1&#xff…

qt运行C语言后无显示,qt designer启动后不显示界面问题的原因与解决办法-站长资讯中心...

Qt 5.6.1无论是在vs里双击ui文件还是直接启动designer.exe都一直无法显示界面,但任务管理器中可以看到该进程是存在的。前几天还正常的,但昨天加了一块NVIDIA的显卡(机器自带核显),可能与此有关。幸好还可以通过QtCreator打开ui文件进行编辑。…

OpenSolaris北京用户组的第一次活动

OpenSolaris北京用户组的第一次活动作者: BadcoffeeEmail: blog.olivergmail.comBlog: http://blog.csdn.net/yayong2005年10月10月15号,OpenSolaris北京用户组在北京西郊宾馆会议厅组织了成立以来的第一次活动。尽管OpenSolaris早在2005年6月14日就正式开放源代码&…

. SQL多条件查询存储过程

编辑器加SQL多条件查询存储过程 2010-05-13 17:06:29| 分类: SQL | 标签: |字号大中小 订阅 . 例一、 ALTER proc SelectProduct ProdID varchar(10), ProdName nvarchar(30), CategoryID varchar(5), MinPrice decimal(10,2), MaxPrice decimal(10,2) a…

矩阵转置c语言的思路,矩阵转置 (C语言代码)

解题思路:注意事项:参考代码:#includeint main(){int n,s[100][100];void transposition(int(*p)[100], int n);scanf("%d", &n);for (int i 0; i < n; i){for (int j 0; j < n; j)scanf("%d", *(s i) j);}transposition(s, n);return 0;}vo…

Android PermissionUtils:运行时权限工具类及申请权限的正确姿势

Android PermissionUtils&#xff1a;运行时权限工具类及申请权限的正确姿势 ifadai 关注 2017.06.16 16:22* 字数 318 阅读 3637评论 1喜欢 6PermissionUtil 经常写Android运行时权限申请代码&#xff0c;每次都是复制过来之后&#xff0c;改一下权限字符串就用&#xff0c;把…

实现带下拉菜单的工具栏按钮

在工具栏中使用真彩色图标 实现带下拉菜单的工具栏按钮 20050916转载于:https://www.cnblogs.com/henryzc/archive/2005/11/08/271346.html

文件目录管理与显示c语言,Centos 7 文件和目录管理

查看权限在终端输入:ls -l xxx.xxx (xxx.xxx是文件名)那么就会出现相类似的信息&#xff0c;主要都是这些&#xff1a;-rw-rw-r--其中&#xff1a; 最前面那个 - 代表的是类型中间那三个 rw- 代表的是所有者(user)然后那三个 rw- 代表的是组群(group)最后那三个 r-- 代表的是…

Linux基础监控小工具nmon

nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具&#xff0c; nmon所记录的信息是比较全面的&#xff0c;它能在系统运行过程中实时地捕捉系统资源的使用情况&#xff0c;并且能输出结果到文件中。nmon工具可以帮助在一个屏幕上显示所有重要的性能优化信息&…

vue的配置环境篇

1.电脑已经安装的nodejs和webpack。 2.1&#xff09;打开cmd。winr。可以直接输入node -v查看版本。安装淘宝镜像 npm install -g cnpm --registryhttp://registry.npm.taobao.org &#xff0c;安装成功可以查看下&#xff0c;cnpm -v 3.安装vue脚手架&#xff0c;输入命令&am…