历史上的今天
今天是:2025年02月17日(星期一)
2020年02月17日 | 51单片机12864显示的电子密码锁源码
2020-02-17 来源:51hei
1.当要想从标志位中退出来就一定要知道程序当前在哪个标志位中读取,然后就是在这个里面设定退出方可,否则是不能使用的,相当于是没有一样。
单片机源程序如下:
/*************************************************************************************
密码锁,可以改个人密码和管理员密码的一个基于单片机的锁。
按键值码:1 2 3 set
输入密码只能按0~9,10位确定键,11位取消键(输入密码小
4 5 6 ↑ 于8时取消输入的密码),12是时钟功能键,13是时钟“+”,
7 8 9 ↓ 14是时钟“-”,15改密码的时候的确定键
ok 0 c fun
**************************************************************************************/
/******************************头文件****************************************/
#include #include #include #include"lcd.h" #include"ds1302.h" #include"keyboard.h" #include"delay.h" #include"deal.h" #include "i2c.h" #include "uart.h" /*************************宏定义*************************************/ #define uchar unsigned char #define uint unsigned int //========================IO口定义==================================// sbit s = P2^2; //控制背光 sbit k2 = P3^2; // sbit JDQ_key = P3^7; //继电器控制 unsigned char flag4,flag5=0,flag8=1,flag1=0,flag_time=0, flag_time2=0;flag3=0; unsigned char wrongtimes=0,k,p=1,miao=59,t=0,snum=0, c=0,up=0,down=0,a=0; //===========================密码的初始值==========================// unsigned char MIMAword[8]={1,2,3,4,5,6,7,8}; //密码的初始值 unsigned char G_MIMA[8]={8,8,8,8,8,8,8,8}; //管理员密码,可以更改 void MIMA_input(); //EEPROM写 void MIMA_output(); //EEPROM读 //===========================配置定时器============================// void init_conf() { TH0=(65536-50000)/256; // TL0=(65536-50000)%256; EA=1; ET0=1; IT0=1; //跳变沿出发方式(下降沿) EX0=1; //打开INT0的中断允许。 TR1 = 1; ET1 = 1; } //===============================主函数===========================// void main() { unsigned char num,i = 0,j; unsigned char temp[8]; unsigned char Ztemp[8]={'1','2','3','4','5','6','7','8'}; unsigned char Zresponsuccess[4]={0x55,0x11,0x01,0x00}; unsigned char Zresponfail[]="your command is wrong"; unsigned char ch[8]={0},z1=0, Znum[8]={0}; bit Flag; /***********************以下是断电后重启的读出EEPROM的数据*******************************/ //第一次上电先隐去 88888888修改管理员密码 然后取隐用修改后的管理员进入修改个人密码 G_MIMA[0] = EEPROMread_add(11,19); delay(20); G_MIMA[1] = EEPROMread_add(12,20); delay(20); G_MIMA[2] = EEPROMread_add(13,21); delay(20); G_MIMA[3] = EEPROMread_add(14,22); delay(20); G_MIMA[4] = EEPROMread_add(15,23); delay(20); G_MIMA[5] = EEPROMread_add(16,24); delay(20); G_MIMA[6] = EEPROMread_add(17,25); delay(20); G_MIMA[7] = EEPROMread_add(18,26); delay(20); /***********************以上是断电重启后读出EEPROM里面的数据*********************************/ s=0; //背光控制,上电时低电平将三极管导通 JDQ_key=1; //继电器驱动装置,低电平(三极管不导通,则继电器工作,则锁关 //换为J3Y后更改电平 init_conf(); //配置定时器 LCD12864_Init(); //12864初始化 Ds1302Init(); //1302初始化 UartInit(); //串口初始化 LCD12864_SetWindow(0,2,"欢迎光临"); //第一行显示信息 LCD12864_SetWindow(1,1,"华北科技学院"); //第二行显示信息 LCD12864_SetWindow(2,1,"单片机实验室"); //第三行显示信息 LCD12864_SetWindow(3,1,"输入八位密码"); //第四行显示信息 Delay3000ms(); LCD12864_SetWindow(0,0," ");
史海拾趣
|
大家好,我想仿真下MAX485多点通信,通讯网路上连接4个485芯片(编号为1、2、3、4),其中,1和2构成一路主从,3和4构成一路主从,当1和2通讯时,3和4不通讯;反之,3和4 通讯时,1和2 不通讯(此时1和2不加电,作为备份用)。但是有个问题,4个MAX ...… 查看全部问答> |
|
名称:瑞侃RAYCHEM阻燃电线 型号:FLDWC0311-2.50 规格:2.5平方 数量:10000米 单价:6元/米 邮费:买家自理 详细见图: … 查看全部问答> |
|
谁能脱口而出得出答案? 来看看专业解释: 核磁共振成像是利用电子计算机对人体断面进行图像分析诊断的检查方法,它不用X线,而是磁场,其基本原理是人体所含氢原子在强磁场下给予特定的高波后会发生共振现象,产生一种高波数的电磁波。核磁共振 ...… 查看全部问答> |




