51单片机12864显示的电子密码锁源码

发布者:SparklingMelody最新更新时间:2020-02-17 来源: 51hei关键字:51单片机  12864显示  电子密码锁 手机看文章 扫描二维码
随时随地手机看文章

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,"                ");

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ..[17]
关键字:51单片机  12864显示  电子密码锁 引用地址:51单片机12864显示的电子密码锁源码

上一篇:51单片机智能时钟设计
下一篇:CH375_CH376 U盘读写模块在51单片机上的应用

推荐阅读最新更新时间:2024-11-16 21:07

51单片机入门 - 自己动手搭建实验板
前面介绍了几种准备实验板的方案。这里先介绍方案一,我将同大家一起搭建一块简易的单片机实验板,一起感受动手实践的乐趣。 我们有两种自己搭建实验板的方案,一是用面包板,二是用万用焊板。本篇我们介绍面包板搭建电路。 面包板和面包板线 面包板是一种用于电路实验的器材,上面有很多孔,我们可以将元器件和导线插进去,组成我们需要的电路。如果发现电路有错,拔下元件和导线重新插接即可。电路做完后,所有元件还可以拔下来再次使用。 面包板搭建电路简单易行,节省时间和材料。但是缺点在于,面包板只能搭建一些比较简单的电路,而且是对电气连接要求不高的电路。如果电路太复杂,面包板上全是各种导线,出现某些导线或元件松动的情况,不容易找到;有些电
[单片机]
<font color='red'>51单片机</font>入门 - 自己动手搭建实验板
8051单片机DPTR的扩展设计
  单片机的出现是计算机技术发展史上的一个里程碑,它使计算机从海量数值计算进入到控制领域。在单片机中,以8051系列最为经典,至今仍是最普及、广泛使用的8位MCU架构。业界许多技术人员在其基础上不断进行性能扩展,使得8051系列芯片不断完善,从而形成一个庞大的体系。在传统的8051系列单片机中,设置了一组双字节寄存器(数据指针DPTR),用于访问外接的64 KB数据存储器和I/O接口电路;但在现今的8051单片机应用中,特别是在嵌入式系统中,往往涉及大规模的数据转移操作,而传统8051的一组数据指针使用起来则显得捉襟见肘,因此若在8051设计中将数据指针设计为两组或多组,则在执行大规模数据转移操作时会相当简便、迅速。在这种背景下,
[单片机]
80<font color='red'>51单片机</font>DPTR的扩展设计
基于89C51单片机的环境噪声测量仪
   1 引 言      环境噪声监测,是人类提高生活质量,加强环境保护的一个重要环节,在各大城市的繁华街区和居民区,已有大型环境噪声显示器竖立街头。但目前国内的便携式噪声测试仪,多为价格昂贵的进口专用设备,除卫生、计量等环保专业部门拥有外,无法作为民用品推广普及。本文介绍一种以89C51单片机为核心,采用V/F转换技术构成的低成本、便携式数字显示环境噪声测量仪。该仪器工作稳定、性能良好,经校验定标后能满足一般民用需要,可广泛应用于工矿企业、机关、学校等需要对环境噪声进行测量和控制的场合。 2 声压级的测量机理   人耳的听阈一般是20μPa,痛阈一般是200 Pa,其间相差107倍,这样宽广的声压范围很不易测量,
[单片机]
c51单片机中断号及中断向量
1、外部中断 0、 1;分别由引脚/INT0、/INT1的电平信号引起。 2、定时/计数器 0、1;分别由T0、 T1的溢出引起。 3、串行口发送、接收;发送完一个字节或接收到一个字节引起。 上述共5个中断源。 一、中断号 外部中断0 0 定时器T0 1 外部中断1 2 定时器T1 3 串口中断 4 二、 interrupt 和 using 在C51中断中的使用 8051 系列 MCU 的基本结构包括:32 个 I/O 口(4 组8 bit 端口);两个16 位定时计数器;全双工串行通信;6 个中断源(2 个外部中断、2 个定时/计数器中断、1 个
[单片机]
c<font color='red'>51单片机</font>中断号及中断向量
C51单片机 写一个外部中断(入门单片机)
代码部分 void main() { /*---------------EA,IT,EX必须写-------------*/ EA=1; //开启总中断 IT1=1; //中断触发模式 //=0为低电平触发,=1为下降沿触发 EX1=1; //外部中断允许位 while(1) { led1=0; } } void int1() interrupt 0 { led=~led1; } 解释: 1.外部中断(按键中断)最最重要的部分就是EA,IT,EX三条语句,这三条是必不可少的。 2.EA是中断总开关,类似家里电闸的总闸,总闸
[单片机]
C<font color='red'>51单片机</font> 写一个外部中断(入门单片机)
51单片机应用系统软件设计经验
  在进行应用系统的总体设计时,软件设计和硬件设计应统一考虑,相结合进行。当系统的 电路 设计定型后,软件的任务也就明确了 ,系统中的软件是根据系统功能要求设计的。   一般地讲,软件的功能可分为两大类。一类是执行软件,它能完成各种实质性的功能,如测量,计算,显示,打印,输出控制等;另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度角色。由于应用系统种类繁多,程序编制者风格不一,因此应用软件因系统而异。尽管如此,作为优秀的系统软件还是有其共同特点和其规律的。设计人员在进行程序设计时应从以下几个方面加以考虑:   根据软件功能要求,将系统软件分成若干个相对独立的部分,根据它们之间的联系和时间上的
[单片机]
34-基于51单片机的教室智能照明控制设计
具体实现功能 系统由STC89C52单片机+时钟芯片DS1302+液晶屏LCD1602+光敏电阻+红外对管+LED灯模块+按键模块构成。 具体功能: 1、用4个LED灯模拟教室的照明灯,人数小于10人亮一个灯,10-20人亮二个灯,20-30人亮三个灯,大于30人则全亮四个灯; 2、教室使用两个红外对管来检测是否有人进入并进行人数统计,人数可以统计到二位数99人,并实时将人数显示到液晶屏LCD上,液晶屏同时显示实时日期/时间/星期; 3、利用光敏电阻检测教室的光线强弱; 4、系统分自动/手动模式,可以通过按键切换模式,并有LED指示当前所在模式; 5、在自动模式下,可以设定定时时间段,在定时时间段内,当教室
[单片机]
34-基于<font color='red'>51单片机</font>的教室智能照明控制设计
基于8051单片机的远程温度检测系统设计
 在现代社会中温度在航空航天、工业自动化、家用电器、环境保护和安全生产等方面都是最基本的监测参数之一,但是在某些环境下温度检测比较危险。因而需要一个智能检测的监测系统来代替危险的工作,本文设计的系统就可以很好的解决此问题,不仅可以实时的对温度进行远程检测监控,还可以在十分恶劣的环境下工作,测量结果精度高,并且对所测数据可以直接通过无线模块发送出去,在接收方利用无线接收设备接收实时的数据;同时加报警装置,在温度不正常时给予提醒 ,从而将损失减少到最低。   1 系统组成   系统由单片机、温度传感器、串口通信模块和无线传输模块等几部分组成。测温系统将测得的温度通过单片机在数码管上实时显示,同时,通过串口通信部分和无线模块将数据发送给
[工业控制]
基于80<font color='red'>51单片机</font>的远程温度检测系统设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved