标题:
单片机电子密码锁proteus仿真程序都有
[打印本页]
作者:
zysjs138
时间:
2017-5-7 13:24
标题:
单片机电子密码锁proteus仿真程序都有
电子密码锁仿真程序都有
下面是proteus仿真原理图:
0.png
(27.93 KB, 下载次数: 37)
下载附件
2017-5-7 17:00 上传
0.png
(60.26 KB, 下载次数: 71)
下载附件
2017-5-7 16:59 上传
单片机源程序:
#include <reg52.H>
#include<math.h>
#include<stdio.h>
#include<intrins.h>
#include<string.h>
#include "1602.h"
#include "key4x4.h"
#include "uart.h"
sbit LOCK=P2^2; //锁接P3.7; 低电平有效开锁
sbit ALARM=P2^3; //报警接P2.3
unsigned char ShowAddr=0;
#define WELCOME 0 //开机界面
#define PW_PUT 1 //输入密码
#define PW_ERROR 2 //密码错误
#define PW_OK 3 //密码正确
#define PW_SET 4 //密码设定
#define PW_SET_OK 5 //密码设定成功
#define MAX_ERROR_TIMES 3
#define KEYBUFLEN 17
char KeyBuf[KEYBUFLEN],KeyCnt=0;
char KeyBuf1[KEYBUFLEN];
char PW[KEYBUFLEN]="123456"; //密码
unsigned char Error_times;
void LcdShow();
void Timer0Init(void);
void main()
{
unsigned char key_val; //显示缓冲区
LCD1602_Init() ; //液晶初始化
CleanSreen();
Timer0Init();
UartInit();
while(1)
{
key_val=KeyScan(); //查询数据字是否按下
if(RecFlag)
{
RecFlag=0;
key_val=UartDat;
}
if(key_val>='0'&&key_val<='9'&&KeyCnt<KEYBUFLEN&&ShowAddr!=WELCOME)
{
KeyBuf1[KeyCnt]='*';
KeyBuf[KeyCnt++]=key_val;
}
else if(key_val==CANCEL&&KeyCnt>0)
{
KeyCnt--;
KeyBuf[KeyCnt]='\0';
CleanSreen();
}
else if(key_val==PWSET)
{
ShowAddr=PW_SET;
memset(KeyBuf,'\0',KEYBUFLEN);
KeyCnt=0;
CleanSreen();
}
else if(key_val==PWPUT)
{
ShowAddr=PW_PUT;
memset(KeyBuf,'\0',KEYBUFLEN);
KeyCnt=0;
CleanSreen();
}
else if(key_val==OK) //确认键
{
switch(ShowAddr)
{
case PW_PUT: //密码输入
if(strcmp(PW,KeyBuf)==0)
{
ShowAddr=PW_OK;
ALARM=1; //取消报警
CleanSreen();
Error_times=0;
}
else
{
Error_times++;
if(Error_times>MAX_ERROR_TIMES)
ALARM=0; //报警
ShowAddr=PW_ERROR;
CleanSreen();
}
break;
case PW_SET: //密码设定
{
strcpy(PW,KeyBuf);
ShowAddr=PW_SET_OK;
CleanSreen();
}
break;
}
memset(KeyBuf,'\0',KEYBUFLEN);
KeyCnt=0;
}
LcdShow();
//Displaystr(0,1,KeyBuf); //显示按键值
Displaystr(0,1,KeyBuf1); //显示按键值
}
}
void Delay1ms() //@11.0592MHz
{
unsigned char i, j;
_nop_();
i = 2;
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
下载:
程序2.7z
(76.34 KB, 下载次数: 31)
2017-5-7 13:24 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1