完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include #include "LCD1602.H"//包含头文件 LCD1602 可以直接用这文件中已经定义好的内容 #include"string.h"//包含头文件 string 可以直接用这文件中已经定义好的内容 #include #define uchar unsigned char 宏定义 使C代码更简洁 #define uint unsigned int 宏定义 使C代码更简洁 #define ulong unsigned long宏定义 使C代码更简洁 /*****端口定义************/ /*端口定义就是单片机的初始设置让C代码可以进行编写*/ #define P_key P1 ***it beep=P3^7;//蜂鸣器引脚 ***it led=P3^4; //P3.4口定义成led unsigned char num=0,Firstflag=0,SetPassflag; // 密码计数 ,第一次输入密码标志 ,设定密码标志 ,设置时间 unsigned int Settime ; // 定义无符号 整形 SetTime unsigned char Rxtemp[10],word[7]={" "},PasW[7]; //密码默认是123456 unsigned char Rxnum=0;//串口接收计数数据 char dat[4]; //定义字符型数组dat长度为4 char data TimeNum[]=" ";//定义字符型数组TimeNum char idata Test1[]=" ",Test2[]=" ";//定义字符型数组Test1,Test2 uchar KeyValue;// 定义无字符型 KeyValue void Disply(void); //显示 uchar GetKey(void);//返回键盘值0--16 void ScanKey(void);//键盘扫描处理 void InputPassword(uint Word);//输入密码 void delayNms(uint z);//延时 void InitTimer0(void);//定时器0初始化 void SetPassword(uint Word);//设置密码 void delay2s(void);//延时 void InitUART(void); void RxBuffer_Strcmp(void); /*****主函数************/ /*主函数就是整个程序运行的入口*/ void main() { uchar i;//定义无符号字符型 i InitTimer0(); //初始化定时器 lcd1602_init(); //初始化显示屏 InitUART(); //初始化串口9600 sprintf(Test1,"Pls In Password");//the first line lcd1602_showStr(0,0,Test1);//屏幕显示字符串 sprintf(TimeNum," Key Is Lock! ");//the first line lcd1602_showStr(0,1,TimeNum);//屏幕显示字符串 num=0; //初始化密码设定位移 Rxnum=0;//初始化接收计数 SetPassflag=0; SetTime=0; for(i=0;i<6;i++) //循环6次按键 PasW[i]=i+0x30; while(1) { ScanKey(); //扫描按键 RxBuffer_Strcmp(); //串口接收蓝牙端数据 } } /*************串口初始化9600*****/ /*串口如果需要工作就需要一些特定的条件下面便是一些条件*/ void InitUART(void) //串口初始化 { TMOD = 0x20; //控制寄存器初始化 SCON = 0x50;//控制寄存器初始化 TH1 = 0xFD;//高八位初始化 高低结合共16位代表多久执行一次 TL1 = TH1;//第八位初始化 PCON = 0x00;//功率控制寄存器初始化 EA = 1;//允许中断 ES = 1;//中断允许位 TR1 = 1;//开启定时器1 } /*************发送单字节数据******************/ /*发送单字节数据就是将数据一个字节一个字节的发送给寄存器*/ void SendOneByte(unsigned char c) { SBUF = c; //写数据 while(!TI);//TI取反 TI = 0;//TI赋为0 } /*******************发送字符串数据*******************/ /*同上*/ void SendStr(unsigned char *s) { while(*s) { SendOneByte(*s);//发送S的直 s++;//S地址加1 } } void RxBuffer_Strcmp(void) //接收蓝牙数据进行开锁比较 /*蓝牙模块,让蓝牙功能可以执行*/ { if(Rxnum>=6)//如果 Rxnum大于等于六 { Rxtemp[6]=' |