500彩票足球完场比分_基于51单片机智能锁原理图PCB+源程序

2019-11-15来源: 51hei关键字:51单片机  智能锁

Altium Designer画的原理图和PCB图如下:

单片机源程序如下:

#include

#include

#include "STC12C5A60S2.h"

#include "main.h"

#include "delay.h"

#include "lcd1602.h"

#include "key.h"

#include "IAPEEPROM.h"



sbit motor=P2^1;

sbit led=P2^2;

sbit buzz=P2^3;


/**********************************************/

uchar code Start[]           ={"==CODED CLOCK== "};

uchar code Pwd[]      ={"Password:       "};

uchar code Ture[]           ={" Password ture! "};

uchar code Err[]            ={"Error try again!"};

uchar code Wait1[]          ={"     Please     "};

uchar code Wait2[]          ={"wait for 5 min! "};

uchar code InputOld[] ={"Input Old:      "};

uchar code InputNew1[]={"Input New 6 Bit:"};

uchar code InputNew2[]={"Input New Again:"};

uchar code Success[]  ={"    SUCCESS!    "};

uchar code Del[]            ={"                "};

uchar code Open[]           ={"======*==*======"};

uchar code Open1[]           ={"*=====OPEN=====*"};



/**********************************************/

uchar idata Password[6];

uchar idata InputData[20];

uchar idata TempPassword[20];        

uchar idata NewPasswordTemp[6];


uchar N=0;                   //更改密码时的状态 0:输入旧密码 1:输入新密码 2:再次输入新密码

uchar ErrorCont=0;                         //输入密码错误次数计数                

uchar State=0;               //0:输入开锁密码状态 1:更改密码状态

uchar Door=0;                                 //0:门锁着 1:门开着



uchar time_1s=0;        //背光                        

uchar keydown_flag=0;                        

uchar time_20ms=0;        




uchar KeyCodeing(uchar keydown)

{

        uchar keyval=0;

                if(keydown==11)        //0~9

                {

                        keyval=0;

                }

                if(keydown==14)

                {

                        keyval=1; 

                }

                if(keydown==10)

                {

                        keyval=2;

                }

                if(keydown==6)

                {

                        keyval=3;

                }

                if(keydown==13)

                {

                        keyval=4;

                }

                if(keydown==9)

                {

                        keyval=5;

                }

                if(keydown==5)

                {

                        keyval=6;

                }

                if(keydown==12)

                {

                        keyval=7;

                }

                if(keydown==8)

                {

                        keyval=8;

                }

                if(keydown==4)

                {

                        keyval=9;

                }

                

                if(keydown==15) //确认

                {

                        keyval=10;

                }

                if(keydown==7) //删除

                {

                        keyval=11;

                }

                if(keydown==3) //清零

                {

                        keyval=12;

                }

                if(keydown==0)  //关门

                {

                        keyval=13;

                }

                if(keydown==2)  //返回

                {

                        keyval=14;

                }


                if(keydown==1) // 更改密码

                {

                        keyval=15;

                }

        return keyval;

}


void Timer0_Init()

{

        TMOD|=0x01;

        TL0 = (65536-20000)%256;                // 20ms

        TH0 = (65536-20000)/256;                //

        TF0 = 0;

        ET0=1;                

        TR0 = 1; //开始计时

}


uchar PwdCompare(uchar *password,uchar *temppassword)

{

        uchar n=0,m=0,pass=0;

                if(strlen(temppassword)==6)//等长密码判断        

                {

                        for(n=0;n<6;n++)

                        {

                                if(temppassword[n]!=password[n])

                                {

                                        return 0;

                                }        

                        }

                        return 1;

                }

                else if(strlen(temppassword)>6) //虚位密码判断

                {        

                        for(m=0;m

                        {

                                if(temppassword[m]!=password[n])

                                {

                                        n=0;

                                        pass=0;

[1] [2] [3] [4] [5] [6] [7]
关键字:51单片机  智能锁 编辑:什么鱼 引用地址:http://news.socialskive.com/mcu/ic480092.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。500彩票足球完场比分如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过上海快三app赚钱—主页-彩经_彩喜欢子邮件或上海快三app赚钱—主页-彩经_彩喜欢话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:ESP8266+51单片机WIFI控制多路遥控开关程序设计
下一篇:lcd1602显示的单片机子程序 模块化可多次调用

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

avr单片机功能特性介绍
诸多方面取得了优化平衡,是高性价比的单片机。AVR单片机内嵌高质量的Flash程序存储器,擦写方便,支持ISP和IAP,便于产品的调试、开发、生产、更新。内嵌长寿命的EEProm可长期保存关键数据,避免断上海快三app赚钱—主页-彩经_彩喜欢丢失。500彩票足球完场比分片内大容量的RAM不仅能满足一般场合的使用,同时也更有效的支持使用高级语言开发系统程序,并可像MCS-51单片机那样扩展外部RAM。AVR单片机的I/O线全部带可设置的上拉上海快三app赚钱—主页-彩经_彩喜欢阻、可单独设定为输入/输出、可设定(初始)高阻输入、驱动能力强(可省去功率驱动器件)等特性,使的得I/O口资源灵活、功能强大、可充分利用。AVR单片机片内具备多种独立的时钟分频器,分别供URAT、I2C、SPI使用。其中与8/16位定时器配合的具有
发表于 2019-12-14
avr单片机功能特性介绍
AVR系列单片机的主要特性及选型
AVR单片机是ATMEL公司研制开发的一种新型单片机,它与51单片机、PIC单片机相比具有一系列的优点:在相同的系统时钟下AVR运行速度最快;芯片内部的Flsah、EEPROM、SRAM容量较大;所有型号的Flash、EEPROM都可以反复烧写、全部支持在线编程烧写(ISP);多种频率的内部RC振荡器、上上海快三app赚钱—主页-彩经_彩喜欢自动复位、看门狗、启动延时等功能,零外围上海快三app赚钱—主页-彩经_彩喜欢路也可以工作;每个IO口都可以以推换驱动的方式输出高、低上海快三app赚钱—主页-彩经_彩喜欢平,驱动能力强;内部资源丰富,一般都集成AD、DA模数器;PWM;SPI、USART、TWI、I2C通信口;丰富的中断源等。目前支持AVR单片机编译器的语言主要有汇编语言、C语言、BASIC语言等。其中C编译器主要有
发表于 2019-12-14
AVR系列单片机的主要特性及选型
PIC16F87x单片机存储器特点及数据存储器使用规划
,可以像MCS-51等其他系列的单片机一样使用变量了。当然还有一部分特殊寄存器是定义在BANK2~BANK3之间的。对于访问这些非页0内的特殊寄存器,必须进行页选择。访问完这些特殊寄存器,把页选择重新设置为BANK0,同时要注意在访问特殊寄存器过程中必须关闭中断(这与中断现场保护代码实现有关,参见下面中断处理部分)。500彩票足球完场比分在PIC单片机中,一般只是把与设置相关或者与外围相关的寄存器放在BANK1~BANK3。根据经验,除了在系统初始化部分代码中,在其他地方访问这些特殊寄存器是很少见的。至于访问这些特殊寄存器时要关中断,除了考虑下面保护现场的因素外,还有一个原因:这些特殊寄存器多是与外围相关和中断相关的,访问修改它们,从安全可靠角度也是应该要先关闭中断
发表于 2019-12-14
PIC16F87x单片机存储器特点及数据存储器使用规划
51单片机汇编学习例程(1)——KEY篇
1.ASM1_KEY:按键控制LED亮灭,3种情况/*********************************************************************************         @file            asm.asm*         @author          Alex——小白*         @vers
发表于 2019-12-14
51单片机汇编学习例程(1)——KEY篇
天山OLED白光烙铁单片机源码与使用手册V3.1.1
上海快三app赚钱—主页-彩经_彩喜欢容,运放VCC加104上海快三app赚钱—主页-彩经_彩喜欢容。⑤上海快三app赚钱—主页-彩经_彩喜欢容C5设计有误,实际不需要。1.1.2 智萌版硬件介绍①正面三个上海快三app赚钱—主页-彩经_彩喜欢容不需要焊接,否则无法下载程序;②建议MOS更换为AO4413.1.1.3 海绵宝宝版硬件介绍①单片机应改为STC15W2K60S2;1.2 烧录固件1.2.1 烧录步骤固件在Prj文件夹下Objects子文件夹内,文件名为HAKKO.hex。①将CH340模块连接焊台,先只接TX、RX、GND三根线,VCC不接;②按图1-1步骤勾选相关选项; 图1-1 STC-ISP软件操作步骤③将下载器VCC与焊台连接。1.2.2 烧录失败排查①编码器位置不合适,旋转编码器再试(请确保编码器转到位,不要卡在中间);②TX、RX接反
发表于 2019-12-14
天山OLED白光烙铁单片机源码与使用手册V3.1.1
三杯式风速传感器液晶显示单片机程序与实验报告
一、实验目的1.掌握三杯式风速传感器的工作原理;2.将三杯式风速传感器测得的风速(风由风扇提供)实时显示在液晶和上位机上;3.进一步掌握1602液晶的使用以及串口通讯;4.规范C的书写格式。二、实验原理三杯式风速传感器有一个测速码盘,当码盘转动并不断地通过三杯式风速传感器内部的光上海快三app赚钱—主页-彩经_彩喜欢传感器后,就会产生脉冲信号,脉冲信号触发单片机产生外部中断0,外部中断0对脉冲次数进行计数,定时器0中断设定1s的时间,并获取1s内的脉冲次数,然后通过公式:(脉冲次数*7)/80.0+0.1(注意:此处的80.0不能写成80,否则将会丢失风速的小数位,因为除以80得到的是整数)就可以计算出风速,然后就可以通过单片机将风速显示在液晶和上
发表于 2019-12-14
小广播
何立民专栏 单片机及嵌入式宝典

500彩票足球完场比分北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

上海快三app赚钱—主页-彩经_彩喜欢子工程世界版权所有 京ICP证060456号 京ICP备10001474号 上海快三app赚钱—主页-彩经_彩喜欢信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 socialskive.com, Inc. All rights reserved