蓝牙密码锁,程序里面设置好密码直接用,程序已经上传到工程附件里面了,用途自己琢磨。
原理图:
PCB图:
程序运行图:
部分程序:
#include <reg52.h> #include <intrins.h> #include <math.h> #include <12864.h> #define uchar unsigned char #define uint unsigned int uchar receive=0; uchar mima[6]={0x01,0x02,0x03,0x04,0x05,0x06}; uchar receive_LY[6]={0x00,0x02,0x03,0x04,0x05,0x05}; uchar send=0xff; sbit out1=P1^0; sbit out2=P1^1; sbit out3=P1^2; sbit beep =P2^3; int n=0; int kaisuo=0; void Draw_PM(const uchar *ptr); void Delay_1ms(uint i); unsigned char code zhu1[]= //图片代码 void mimashow() { // receive_LY[n]=SBUF; if(n>5) //只能输入6个数 { lcd_pos(3,0); write_string(" "); Delay_1ms(10); lcd_pos(3,1); write_string("--重新输入--"); Delay_1ms(150); n=0; } if(n==0) { lcd_pos(3,0); write_string(" "); Delay_1ms(2); } } void start() //开机 { lcd_wcmd(0x01); lcd_pos(0,1); write_string("智能家居系统"); delay(2); lcd_pos(1,0); write_string("请输入密码:"); delay(2); lcd_pos(2,1); write_string("<YYY U YYY>");
} /******************************************************************** * 名称 : Delay_1ms() * 功能 : 延时子程序,延时时间为 1ms * x * 输入 : x (延时一毫秒的个数) * 输出 : 无 ***********************************************************************/ void Delay_1ms(uint i)//1ms延时 { uchar x,j; for(j=0;j<i;j++) for(x=0;x<=148;x++); }
/******************************************************************** * 名称 : Com_Init() * 功能 : 串口初始化,晶振11.0592,波特率9600,使能了串口中断 * 输入 : 无 * 输出 : 无 ***********************************************************************/ void Com_Init(void) { TMOD = 0x20; PCON = 0x00; SCON = 0x50; TH1 = 0xfd; //设置波特率 9600 TL1 = 0xfd; TR1 = 1; //启动定时器1 ES = 1; //开串口中断 EA = 1; //开总中断 } //开关操作函数,接收到一次数据改变一次状态
void alloff() { P1=0xff; }
void main() { int t=1; Delay_1ms(100); Com_Init();//串口初始化 lcd_init(); start(); Delay_1ms(50); while(1)