当前位置:文档之家› 基于某51单片机地数码管显示4位密码锁

基于某51单片机地数码管显示4位密码锁

基于某51单片机地数码管显示4位密码锁
基于某51单片机地数码管显示4位密码锁

单片机原理课程设计论文

班级: 电气1136班

学号: 1

姓名: 朱焯华

指导老师: 瑛

目录

一、前言。。。。。。。。。。。。。。。。。。。。。。。。。 3

二、选题要求。。。。。。。。。。。。。。。。。。。。。。。 3

三、硬件电路设计。。。。。。。。。。。。。。。。。。。。。。 4

3.1 主控芯片。。。。。。。。。。。。。。。。。。。。4

3.2 矩阵键盘电路。。。。。。。。。。。。。。。。。。5

3.3 数码管电路。。。。。。。。。。。。。。。。。。。6

3.4 138译码器位选电路。。。。。。。。。。。。。。。6

3.5 晶振和复位电路。。。。。。。。。。。。。。。。。7

3.6 蜂鸣器电路。。。。。。。。。。。。。。。。。。。8

四、软件设计。。。。。。。。。。。。。。。。。。。。。。。。8

五、调试结果。。。。。。。。。。。。。。。。。。。。。。。。10

六、总结。。。。。。。。。。。。。。。。。。。。。。。。。。12

前言

随着人们生活水平的提高,如何实现家庭防盗这一问题也变得尤为突出。在

科学技术不断发展的今天,电子密码防盗锁作为防盗卫士的作用显得日趋重

要。本文从经济实用的角度出发,系统由STC89C51作为主控芯片与数据存储

器单元,结合外围的键盘输入、数码管显示、报警、开锁等电路模块。它能完

成以下功能:正确输入密码前提下,开锁,数码管显示“open”;错误输入密码

情况下,报警,数码管显示“err”;密码可以根据用户需要在程序中更改。用C

语言编写的主控芯片控制程序,并用Keil4软件进行编译,设计了一款可以更改

密码的系统,本密码锁具有设计方法合理,简单易行,成本低,安全实用,性

强,灵活性高等特点,具有一定的推广价值。

关键词:电子密码锁、报警、数码管显示

二、选题要求

本文从经济实用的角度出发,设计采用51单片机为主控芯片,结合外围电路,组成电子密码控制系统,密码锁共4位密码(可增加),每位的取值围为0~9,外加“确认”键和“取消”键。用户可以通过修改程序来修改密码,想要打开锁,必先通过提供的键盘输入正确的密码才可以,密码输入错误有提示并报警。4位密码同时输入正确,锁才能打开。性强、灵活性高。其特点:

1) 性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。

2) 密码可变,用户可以更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。

3) 当输入密码错误时,报警系统自动启动。

4) 无活动零件,不会磨损,寿命长。

5) 使用灵活性好,不像机械锁必须佩带钥匙才能开锁。

三、硬件电路设计

下面是整个设计的流程图:

3.1 主控芯片

这次课程设计采用的主控芯片是51系列单片机AT89C51。其外部封装如下:

AT89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32位。

P0口(Pin39~Pin32):8位双向I/O口线,名称为P0.0~P0.7 ;

P1口(Pin1~Pin8):8位准双向I/O口线,名称为P1.0~P1.7 ;

P2口(Pin21~Pin28):8位准双向I/O口线,名称为P2.0~P2.7 ;

P3口(Pin10~Pin17):8位准双向I/O口线,名称为P3.0~P3.7。

3.2 矩阵键盘电路

本次课程设计采用的是行列键盘,C语言程序中有相对应的驱动程序,其硬件电路图和对应数字功能键图如下所示:

注:这里的“取消”键就是电路中的“复位”键。

3.3 数码管电路

采用的是7SEG-MPX4-CA数码管(采用两个数码管的目的为了拓展密码位数)。

3.4 138译码器位选电路

通过138译码器的输出来选择需要显示的数码管,其电路图和功能表如下:

51单片机数码管时钟程序

本人初学51,编写简单时钟程序。仅供参考学习 #include #define uint unsigned int #define uchar unsigned char Uchar code table_d[16] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1 }; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0xef}; void delay(uint); unsigned long i,num,t=1; void main() { TMOD=0X01; TH0=(65536-10000)/256; TL0=(65536-10000)%256; EA=1; ET0=1; TR0=1; while(1) { num=i/20;//i为秒位 if(i==1728000)//一天大概是这个秒吧,,,应该是,呵呵。就是世间到24时就归零。 i=0; //也可用下面这个部分来代替上面的。 /*if(i==20) { i=0; num++; if(num==5184000) num=0; }*/ //num=9; P2=7;//P2口为数码管控制端,我的是38译码器控制,就直接对其赋值来控制时,分,秒的显示; P0=table[i%100%10]; delay(t); P2=6; P0=table[i%100/10]; delay(t); P0=table_d[(num%60)%10]; P2=5; delay(t); P0=table[(num%60)/10]; P2=4;

基于51单片机电子密码锁设计

一、设计目的 1.1课题简介 如何实现防盗是很多人关心的问题,传统的机械锁由于其构造简单,被撬的事件屡见不鲜,使人们的人身及财产安全受到很大威胁。电子密码锁是一种依靠电子电路来控制电磁锁的开和闭的装置,开锁需要输入正确密码,若密码泄露,用户可以随时更改密码。因此其保密性高,使用灵活性好,安全系数高,可以满足广大用户的需要,现在广泛使用的有红外遥控电子密码锁,声控密码锁,按键密码锁等。 1.2课题研究目的 本设计是一种基于单片机的密码锁方案,根据基本要求规划单片机密码锁的硬件电路和软件程序,同时对单片机的型号选择、硬件设计、软件流程图、单片机存储单元的分配等都有注释。现在很多地方都需要密码锁,电子密码锁的性能和安全性大大超过了机械锁,为了提高密码的保密性,必须可以经常更改密码,以便密码被盗时可以修改密码。 本次设计的密码锁具备的功能:LED数码管显示初始状态“——————”,用户通过键盘输入密码,每输入一位密码,LED数码管相应有一位变为“P”,若想重新输入密码,只需按下“CLR”键。密码输入完毕后按确认键“#”,密码锁控制芯片将输入的密码和密码锁控制芯片中存储的密码相比,若密码错误,则不开锁,会有红灯亮提示,同时显示“Error”。若正确,则开锁,会有绿灯亮提示,同时显示“PASS”。用户可以根据实际情况随意改变密码值或密码长度,密码输入正确后可以按下“CHG”修改密码,输入新密码时每输入一位新密码相应有一位变为“H”,以便提示用户此时输入的是新密码,修改新密码时若想重新输入新密码只需按下“CLR”键即可。输入新密码后按确认键即修改成功,新密码写入单片机内部RAM中,以便以后用来确认密码的正确性。按下复位键,系统恢复初始状态,密码也恢复初始密码,本设计中初始密码是“096168”。 本次设计中硬件主要由我完成,软件主要由张振完成。 二、硬件设计 2.1概述 本系统主要由单片机最小系统、电源电路、输入键盘电路、输出显示电路、开锁电路等组成,系统框图如图1所示:

51单片机-数码管

51单片机-数码管 共阴极是指所有发光二极管阴极连接在一起,这个共阴极可以用来做片选。 如图,这里有8个发光二极管,到底哪个亮需要进行片选。段选:8 段数码管 每一段的控制段叫段选位选:就是进行哪个8 段数码管亮的选择TX-1C 使用两 片锁存器74HC573 实现位选和段选这里的D0”7是连在单片机的I/O 口上,当 为高电平时,Q 与D 中的数据一致,遇到负跳变沿时Q 中的数据保持住,D 中 的数据即使变化也不会影响Q。MCUVersion2 使用的是74HC245 和38 译码器 74HC13874HC245 有一个缓冲和驱动的作用,这样可以使led 显示的更加稳定, 数码管显示分动态显示和静态显示,每个数码管的状态都是被不断更新的,利 用的人的视觉暂留,使看上去数值保持在一个固定的位置上,人的视觉是有延 续性的,当一个东西不断变化时,变化的时间小于人眼的视觉暂留时间的话, 人的眼睛会以为这个东西是连续的。静态显示是一幅画面放在那看上去是不动 的而它确实是不动的。动态扫描显示即轮流向各位数码管送出字型码和相应位 选,利用发光管的余晖和视觉暂留作用,使人的感觉好像各位数码管同时都在 显示。静态显示:数码管从左向右依次点亮: #include <reg52.h>void delay(){ int i,j; for(i = 0; i <0xff; i++) for(j = 0; j <0xff; j++) ;} unsigned int code duan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07};unsigned int code wei[]={ 0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff};void main(){ while(1){ int i; P2 = 0x39; for(i = 0; i <8; i++){ P2 = duan[ i]; P1 = wei[ i]; delay(); } } } 想让哪个 数码管亮多少就亮多少:tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!

单片机电子密码锁_(可以修改设置密码)——基于51单片机与AT24C02与LCD1602显示

单片机电子密码锁(可以修改设置密码)——基于51单片机与AT24C02与LCD1602显示 其电路图连接如下:本人已经用硬件实验,程序可用。正确~~ 本程序特点:装载后读者可以自改密码,然后需要再次载入程序时:可以把主程序aa=Sendstring(0xa0,1,table2,6);这一句去掉。然后程序的电子锁密码就是你个人设置的密码。 程序代码为: #include #include #include #define uchar unsigned char #define uint unsigned int #define LCDIO P2 #define delay4us() _nop_();_nop_();_nop_();_nop_(); uchar buffer[6]={0}; sbit sda=P3^7; sbit scl=P3^6; sbit beep=P3^5; bit flag=0,aa; //用户蹲渊义定时溢出标志位 uchar DSY_BUFFER[16]=" ";

uchar DSY_BUFFER1[16]=" "; uchar Userpassword[6]={0}; sbit rs=P0^4; sbit rd=P0^3; sbit lcden=P0^2; sbit led=P3^0; uchar code table2[]="123456"; uchar code table[]="Your Password..."; void delayms(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void delay() //短延时,两个机器周期,做总线的延时用{;;} void write_com(uchar com) { rs=0; rd=0; lcden=0; P2=com; delayms(3); lcden=1; delayms(3); lcden=0; } void write_date(uchar date) { rs=1; rd=0; lcden=0; P2=date; delayms(3); lcden=1; delayms(3); lcden=0; } void Display_String(uchar *p,uchar com) { uchar i; write_com(com); for(i=0;i<16;i++) {

51单片机密码锁制作的程序和流程图

51单片码锁制作的程序和流程图(很详细) 一、基本组成: 单片机小系统+4*4矩阵键盘+1602显示+DC电机 基本电路: 键盘和和显示 键盘接P1口,液晶的电源的开、关通过P2.7口控制 电机(控制口P2.4) 二、基本功能描述: 1.验证密码、修改密码 a)锁的初始密码是123456(密码最长为10位,最短为1位)。 2.恢复初始密码 a)系统可以恢复初始密码,否则一旦忘记密码而又不能恢复初始密码,该锁就永远打不开。但是又不能让用户自行修改密码,否则其他人也可以恢复该初始密码,使得锁的安全性大大下降。

3.使系统进入低功耗状态 a)在实际使用中,锁只有在开门时才被使用。因而在大多数的时间里,应该让锁进入休眠状态、以降低功耗,这使系统进入掉电状态,可以大大降低系统功耗。 b)同时将LCD背光灯关闭 4.DC电机模拟开锁动作。 a)DC电机启动时解除开锁把手的锁定,允许通过把手开锁。DC电机不直接开锁,使得DC电机的功率不用太大,系统的组成和维护将变得简单,功耗也降了下来。 三、密码锁特点说明: 1.0 输入将被以字符形式输入,最长为10位。 超过10位时系统将自动截取前10位、但不作密码长度溢出提示。 2.0 开锁10秒后不允许更改密码、并提示修改超时_进入初始态,需要重新输入密码方可再次修改密码。 3.0 系统未使用存储器存储密码故掉电后密码自动恢复为初始密码。 4.0 若2分钟无任何操作,系统自动进入省电模式运行,同时关闭液晶显示,以节省电力。 5.0 输入密码正确后、电机允许开锁时间为5秒, 5秒后需要再次输入密码才可以再次开锁。 6.0 修改密码键和恢复初始密码键最好置于室。 这是Proteus仿真结果: 输入密码123456: 显示结果: 密码正确时电机启动、电机将持续5秒:

8位数码管显示电子时钟c51单片机程序

8位数码管显示电子时钟c51单片机程序 时间:2012-09-10 13:52:26 来源:作者: /* 8位数码管显示时间格式05—50—00 标示05点50分00秒 S1 用于小时加1操作 S2 用于小时减1操作 S3 用于分钟加1操作 S4 用于分钟减1操作 */ #include sbit KEY1=P3^0; //定义端口参数 sbit KEY2=P3^1; sbit KEY3=P3^2; sbit KEY4=P3^3; sbit LED=P1^2; //定义指示灯参数 code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴极数码管0—9 unsigned char StrTab[8]; //定义缓冲区 unsigned char minute=19,hour=23,second; //定义并初始化为12:30:00 void delay(unsigned intt) { while(--cnt); } /******************************************************************/ /* 显示处理函数 */ /******************************************************************/ void Displaypro(void) { StrTab[0]=tab[hour/10]; //显示小时 StrTab[1]=tab[hour%10]; StrTab[2]=0x40; //显示"-" StrTab[3]=tab[minute/10]; //显示分钟 StrTab[4]=tab[minute%10]; StrTab[5]=0x40; //显示"-" StrTab[6]=tab[second/10]; //显示秒 StrTab[7]=tab[second%10]; } main()

基于51单片机的数码管简易计算器

基于51/52单片机的简易计算器制作 11级自动化2班 王栎斐宋为为闫巨东 一、题目利用单片机芯片STC89C52、四位八段共阳数码管及已制作好的电路板等器件设计制作一个计算器。 二、任务与要求要求计算器能实现加减乘除四种运算 具体如下 1. 加法:四位整数加法计算结果若超过八位则显示计算错误 2. 减法:四位整数减法计算结果若超过八位则显示计算错误 3. 乘法:多位整数乘法计算结果若超过四位则显示计算错误 4. 除法:整数除法 5. 有清除功能 三、课程设计简述 总体设计思路简述 1.按照系统设计的功能的要求 初步确定设计系统由主控模块、显示模块、键扫描接口 电路共三个模块组成。主控芯片使用STC89C52单片机。 2.键盘电路采用4*4矩阵键盘电路。 3.显示模块采用共阳极数码管构成。 四、硬件电路 五、软件编程部份 #include

#define uchar unsigned char #define uint unsigned int //uchar code num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40}; //共阴极 // 0 1 2 3 4 5 6 7 8 9 熄灭- //uchar code loc[]={0xff,0xfe,0xfd,0xfb,0xf7}; //uchar code ero[]={0x79,0x50,0x5c}; uchar code num[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0x40}; //共阳极 uchar code loc[]={0x00,0x80,0x40,0x20,0x10}; uchar code ero[]={~0x79,~0x50,~0x5c}; uint n=0,n1=0,n2=0; //赋初值 uchar flag=0; //计算类型选择关键字 void delay(int t); void display(int n); void error(); main() { while(1) { uchar temp; //第一行检测 P3=0xfe; temp=P3; temp=temp&0xf0; if(temp!=0xf0) { delay(10); temp=P3; temp=temp&0xfe; if(temp!=0xfe) { temp=P3; switch(temp) { case 0xee:n1=0;n2=0;n=0;flag=0;break;

51单片机电子密码锁

目录 第1节引言 (1) 1.1 电子密码锁述 (1) 1.2 本设计主要任务 (1) 1.3 系统主要功能 (2) 第2节系统硬件设计 (3) 2.1 系统的硬件构成及功能 (3) 2.2 AT89C2051单片机及其引脚说明 (3) 第3节系统软件设计 (5) 3.1 系统主程序设计(流程图) (5) 3.2 软件设计思想 (5) 3.3 储单元的分配 (5) 3.4 系统源程序 (6) 3.5 系统应用说明 (9) 3.6 小结 (9) 结束语 (10) 参考文献 (11) 附录 (12)

电子密码锁 第1节引言 1.1 电子密码锁概述 随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。而锁自古以来就是把守门的铁将军,人们对它要求甚高,即要求可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。传统的门锁既要备有大量的钥匙,又要担心钥匙丢失后的麻烦。另外,如:宾馆、办公大楼、仓库、保险柜等,由于装修施工等人住时也要把原有的锁胆更换,况且钥匙随身携带也诸多便。随着单片机的问世,出现了带微处理器的密码锁,它除具有电子密码锁的功能外,还引入了智能化、科技化等功能。从而使密码锁具有很高的安全性、可靠性。目前西方发达国家已经大量应用智能门禁系统,可以通过多种的更加安全更加方便可靠的方法来实现大门的管理。但电子密码锁在我国的应用还不广泛,成本还很高,希望通过不断地努力使电子密码锁能够在我国及居民日常生活中得到广泛应用,这也是一个国家生活水平的体现。 很多行业的许多地方都要用到密码锁,随着人们生活水平的提高,如何实现家庭或公司的防盗这一问题也变的尤其突出,传统的机械锁由于其构造简单,被撬的事件屡见不鲜,再者,普通密码锁的密码容易被多次试探而破译,所以,考虑到单片机的优越性,一种基于单片机的电子密码锁应运而生。电子密码锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲睐。 设计本课题时构思的方案:采用以AT89C2051为核心的单片机控制方案;能防止多次试探而不被破译,从而有效地克服了现实生活中存在的许多缺点。 1.2 本设计主要任务 (1)共8位密码,每位的取值范围为1~8。 (2)用户可以自行设定和修改密码。 (3)按每个密码键时都有声、光提示。 (4)若键入的8位开锁密码不完全正确,则报警5秒钟,以提醒他人注意。

基于51单片机的智能密码锁

单片机的电子密码锁 目录 第一章绪论......................................................... . (2) 1.1电子密码锁简介......................................................... .. (2) 1.2电子密码锁设计的背景及意 义............................................................................. . (3) 第2章总体设计............................................................................. . (3) 2.1设计分析............................................................................. (3) 2.2系统结构............................................................................. (4) 第3章硬件电路设计............................................................................. (5) 3.1单片机最小系统设计............................................................................. . (5) 3.1.1时钟电路............................................................................. (5) 3.1.2 复位电 路 ............................................................................ . (6) 3.1.3 最小系 统 ............................................................................

51单片机常用数码管显示程序

51单片机常用数码管显示程序---之汇编篇 2010-07-21 03:35:46| 分类:单片机| 标签:51单片机数码管汇编程序|字号大中小订阅一)显示数据缓存寄存器70H,71H,72H,73H,74H,75H,76H,77H。 START: MOV 70H,#1 MOV 71H,#2 MOV 72H,#3 MOV 73H,#4 MOV 74H,#5 MOV 75H,#6 MOV 76H,#7 MOV 77H,#8 ACALL DISP AJMP START DISP: MOV R1,#70H MOV R5,#0FEH PLAY: MOV P0,#0FFH MOV A,R5 ANL P2,A

MOV A,@R1 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A LCALL DL1MS INC R1 MOV A,P2 JNB ACC.7,ENDOUT RL A MOV R5,A MOV P2,#0FFH AJMP PLAY ENDOUT: MOV P2,#0FFH MOV P0,#0FFH RET TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH;共阳数码管 ; 1MS延时子程序,LED显示用 DL1MS: MOV R6,#14H ; DL1: MOV R7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET END 二)

START:;ORG 00H MOV 70H,#0C0H;0 MOV 71H,#0F9H;1 MOV 72H,#0A4H;2 MOV 73H,#0B0H;3 MOV 74H,#99H ;4 MOV 75H,#92H ;5 MOV 76H,#82H ;6 MOV 77H,#0F8H;7 ACALL DISP AJMP START DISP: MOV P0,70H CLR P2.7 ACALL DL1MS SETB P2.7 MOV P0,71H CLR P2.6 ACALL DL1MS SETB P2.6 MOV P0,72H CLR P2.5 ACALL DL1MS SETB P2.5 MOV P0,73H CLR P2.4 ACALL DL1MS SETB P2.4 MOV P0,74H CLR P2.3 ACALL DL1MS SETB P2.3 MOV P0,75H CLR P2.2 ACALL DL1MS SETB P2.2 MOV P0,76H CLR P2.1 ACALL DL1MS SETB P2.1 MOV P0,77H CLR P2.0 ACALL DL1MS SETB P2.0 RET

51单片机-八段数码管显示

实验一八段数码管显示 1、实验目的: (1)了解数码管动态显示的原理。 (2)了解74LS164扩展端口的方法。 2、实验要求: 利用实验仪提供的显示电路,动态显示一行数据. 3、实验电路图 LED1LED2LED3LED4LED5LED6 4、实验器材: (1)超想-3000TB综合实验仪 1 台 (2)超想3000仿真器 1 台 (3)计算机 1 台

5、实验连线 无 6、实验说明: (1)本实验仪提供了8段码LED 显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。6位位码由8155的PA0口输出,经Ua2003反向驱动后,选择相应显示位。 74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,并且实现移位。向显示位选通地址输出高电平就可以点亮相应的显示位。 本实验仪中数据位输出地址为0e102H ,时钟位输出地址为0e102H ,位选通输出地址为 0e101H 。本实验涉及到了8155 I0/RAM 扩展芯片的工作原理以及74LS164器件的工作原理。 (2)七段数码管的字型代码表 显示字形 g f e d c b a 段码 0 0 1 1 1 1 1 1 3fh 1 0 0 0 0 1 1 0 06h 2 1 0 1 1 0 1 1 6bh 3 1 0 0 1 1 1 1 4fh 4 1 1 0 0 1 1 0 66h 5 1 1 0 1 1 0 1 6dh 6 1 1 1 1 1 0 1 7dh 7 0 0 0 0 1 1 1 07h 8 1 1 1 1 1 1 1 7fh 9 1 1 0 1 1 1 1 6fh A 1 1 1 0 1 1 1 77h B 1 1 1 1 1 0 0 7ch C 0 1 1 1 0 0 1 39h D 1 0 1 1 1 1 0 5eh E 1 1 1 1 0 0 1 79h F 1 1 1 1 71h a b c d e f g dp

基于单片机的密码锁

基于单片机的密码锁 在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开 锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。 随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。 为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。 密码锁具有安全性高、成本低、功耗低、易操作等优点。 在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在 技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是 单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外, 还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、 可靠性,应用日益广泛。 随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只

能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容 易机械损坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子 密码锁是这类电子防盗产品的主流。 基于以上思路,本次设计使用ATMEL公司的AT89C51实现一基于单片机的电子密码锁的设计,其主要具有如下功能: (1)设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。 (2)密码可以由用户自己修改设定(只支持6位密码),锁打开后才能 修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要 二次确认,以防止误操作。 (3)报警、锁定键盘功能。密码输入错误数码显示器会出现错误提示, 若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。 电子密码锁的设计主要由三部分组成:4×4矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。另外系统还有LED提示灯,报警蜂鸣器等。 密码锁设计的关键问题是实现密码的输入、清楚、更改、开锁等功能: (1)密码输入功能:按下一个数字键,一个“-”就显示在最右边的 数码管上,同时将先前输入的所有“-”向左移动一位。 密码清除功能:当按下清除键时,清除前面输入的所有值,并清(2) 除所有显示。 (3)密码更改功能:将输入的值作为新的密码。 (4)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如 果正确锁打开,否则不打开。

51单片机(四位数码管的显示)程序[1]

51单片机(四位数码管的显示)程序 基于单片机V1或V2实验系统,编写一个程序,实现以下功能:1)首先在数码管 上显示P ”个字符;2)等待按键,如按了任何一个键,则将这 4个字符清除, 改为显示0000”个字符(为数字的0)。 E3最佳答案 下面这个程序是4x4距阵键盘丄ED 数码管显示,一共可以到0-F 显示,你可以稍微 改一下就可以实现你的功能了,如还有问题请发信息,希望能帮上你! #i nclude un sig ned char code Dig[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1 ,0x86,0x8e}; //gongyang 数码管 0-F 代码 void key_delay(void) { int t; for(t=0;t<500;t++); } un sig ned char k; //设置全局变量k 为键盘的键值 键盘延时函数 键盘扫描函数 ***************************** */ //延时函数

void keyscan(void) //键盘初始化 //有键按下? //延时 //确认真的有键按下? //使行线 P2.4 为低电平,其余行为高电平 //a 作为缓存 //开始执行行列扫描 { case 0xee:k=15;break; case 0xde:k=11;break; case 0xbe:k=7;break; case 0x7e:k=3;break; default:P2 = 0xfd; //使行线 P2.5 为低电平,其余行为高电平 a = P2; switch (a)//键盘扫描函数 { unsigned char a; P2 = 0xf0; if(P2!=0xf0) { key_delay(); if(P2!=0xf0) { P2 = 0xfe; key_delay(); a = P2; switch (a)

基于51单片机的LED数码管动态显示

基于51单片机的LED数码管动态显示 LED数码管动态显示就是一位一位地轮流点亮各位数码管,对于每一位LED数码管来说,每隔一段时间点亮一次,利用人眼的“视觉暂留"效应,采用循环扫描的方式,分时轮流选通各数码管的公共端,使数码管轮流导通显示。当扫描速度达到一定程度时,人眼就分辨不出来了。尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,认为各数码管是同时发光的。若数码管的位数不大于8位时,只需两个8位I/O口。 1 硬件设计 利用51单片机的P0口输出段码,P2口输出位码,其电路原理图如下所示。 在桌面上双击图标,打开ISIS 7 Professional窗口(本人使用的是v7.4 SP3中文版)。单击菜单命令“文件”→“新建设计”,选择DEFAULT模板,保存文件名为“DT.DSN”。在器件选择按钮中单击

“P”按钮,或执行菜单命令“库”→“拾取元件/符号”,添加如下表所示的元件。 51单片机AT89C51 一片 晶体CRYSTAL 12MHz 一只 瓷片电容CAP 22pF 二只 电解电容CAP-ELEC 10uF 一只 电阻RES 10K 一只 电阻RES 4.7K 四只 双列电阻网络Rx8 300R(Ω) 一只 四位七段数码管7SEG-MPX4-CA 一只 三极管PNP 四只 若用Proteus软件进行仿真,则上图中的晶振和复位电路以及U1的31脚,都可以不画,它们都是默认的。 在ISIS原理图编辑窗口中放置元件,再单击工具箱中元件终端图标,在对象选择器中单击POWER 和GROUND放置电源和地。放置好元件后,布好线。左键双击各元件,设置相应元件参数,完成电路图的设计。 2 软件设计 LED数码管动态显示是一位一位地轮流点亮各位数码管的,因此要考虑每一位点亮的保持时间和间隔时间。保持时间太短,则发光太弱而人眼无法看清;时间太长,则间隔时间也将太长(假设N位,则间隔时间=保持时间X(N-1)),使人眼看到的数字闪烁。在程序中要合理的选择合适的保持时间和间隔时间。而循环次数则正比于显示的变化速度。 LED数码管动态显示的流程如下所示。

基于51单片机的无线电子密码锁课程设计

单片机课程设计报告书 基于89C51单片机 课题名称 无线电子密码锁的设计姓名刘武 学号131220330 学院通信与电子工程学院 专业电子信息工程 指导教师祝秋香讲师 2015年12月20日

基于89C51单片机无线电子密码锁的设计 1 设计目的 (1)了解MCS-51单片机使用方法和熟悉蓝牙模块; (2)掌握AT89C51芯片的使用方法及蓝牙模块的连接与使用; (3)熟悉单片机程序仿真软件Proteus的使用; (4)了解MCS-51单片机开发板工作原理以及芯片的组合; (5)熟悉无线电子密码锁的设计及实现。 2设计思路 2.1 选择设计电路 设计51单片机与蓝牙连接的电路。 2.2 所选设计电路的原因 (1)由于无线电子密码锁的设计需要用到蓝牙模块,用到的单片机资源并不是很多,而51单片机的资源有8位CPU、4KB的ROM、128B的RAM、2个16位定时/计数器、4组8位的I/O、1个串口和5个中断源,可以更有效率的利用到51单片机的资源。 (2)可现实无线功能的模块有:蓝牙模块、无线模块、红外遥控模块,因为相对之下,蓝牙模块更容易实现,更容易操作,最后选择蓝牙模块实现手机远程控制。 (3)为了提高效率,可以利用51单片机开发板的硬件,用LED灯模拟密码锁的开关,当LED灯亮起时代表锁已经开启,熄灭则代表密码锁被关闭。应用在实际中可用继电器替代LED的亮灭去控制强电开关。 3 设计过程 3.1 设计总框图 无线电子密码锁分为两个主要功能模块:51单片机模块,蓝牙实现模块。这两个模块共同工作完成本电路的功能实现。其中利用AT89C51芯片来实现51单片机模块功能,完成数码管、发光二极管的实现,同时利用HC06蓝牙模块来

51单片机密码锁程序

自己做的基于单片机的密码锁设计(c语言设计) 时间:2011-08-16 21:08:01 来源:作者: 自己做的基于单片机的密码锁设计(c语言设计) 系统说明 该系统如图所示使用了80C51单片机、普通键盘、排阻、1602液晶。 该系统的功能: ①该系统输入正确的密码LED灯会亮(其实就是很多操作都可以,用LED只是 代表作用,主要是操作简单,效果明显。) ②系统可以修改密码;(系统断电后重启后必须用初始密码(初始密码是:000000) 重新改密,当然修改的密码可以与掉电前的一样。) 具体操作: ①系统开机时显示请输入密码的提示,直接输入密码#键确认 ②系统会自动提醒密码错误,数秒后系统会再次提醒重新输密码。 ③在系统提醒输入密码的界面可以按*键修改密码,系统会提醒输入两次密码,并 且会检查两次密码是否相同。同则修改成功。否则在数秒后可以重新按*键修改。 ④在改密前(就是按了*键后系统)会提醒身份识别,请输入旧密码,系统判断旧 密码正确方可更改密码。 源程序 #include #define uchar unsigned char #define uint unsigned int sbit lcdrs=P3^0; sbit lcdrw=P3^1; sbit lcden=P3^2; sbit h1=P1^0; sbit h2=P1^1; sbit h3=P1^2; sbit sa=P1^3; sbit sb=P1^4; sbit sc=P1^5; sbit sd=P1^6; sbit kd=P3^7; uchar code table[]=" PLEASE INPUT "; uchar code table1[]="CODE: "; uchar code table2[]=" *****WIN*****"; uchar code table3[]=" PLEASE AFFIRM"; uchar code table4[]=" *****FAIL*****"; uchar code table5[]=" MODIFICATION"; uchar code table6[]=" IDENTITY LIMITS "; uchar unm,M1,M2,M3,M4,M5,M6,sex,k1,k2,k3,k4,k5,k6,flge,flge1; uchar q1,q2,q3,q4,q5,q6,w1,w2,w3,w4,w5,w6,g;

基于51单片机的电子密码锁设计

基于51单片机的电子密码锁设计 摘要:本文设计了一种基于单片机的电子密码锁,由单片机系统、矩阵键盘、LED显示和报警系统组成。系统能完成开锁、超次锁定、报警、修改用户密码基本的密码锁的功能。除上述基本的密码锁功能外,还具有掉电存储、声光提示等功能。本密码锁具有安全性高、成本低、功耗低、易操作、记住密码即可开锁等优点。 关键词:STC89C52;电子密码锁;矩阵键盘 1绪论 1.1 课题背景 随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。这种锁是通过键盘输入一组密码完成开锁过程。研究这种锁的初衷,就是为提高锁的安全性。由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。但较实用的还是按键式电子密码锁。 1.2 课题设计目标 本设计采用STC89C52单片机为主控芯片,通过软件程序组成电子密码锁系统,能够实现: (1) 密码输入错误,蜂鸣器报警。 (2) 密码为6位,可以随意更改, (3) 采用矩阵按键输入。 (4)通过LCD1602液晶显示。 (5) 有开锁指示灯。 (6)查阅有关文献与资料,深入学习单片机硬件原理图及软件编程相关知识。 2系统方案论证 系统将从主控部分和密码输入方式两方面进行论证。

基于单片机数字密码锁的设计要点

摘要 随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。 单片机也被称微控器,是因为它最早被用在工业控制领域。单片机是靠程序运行的,并且可以修改。 本设计系统主机采用8052单片机,MCS-51单片机的程序存储器和数据存储器的地址空间是相互独立的,而且程序存储器一般为ROM或EPROM,只能读出不能写入。扩展用的程序存储器芯片大多采用EPROM芯片,最大可扩展到64K字节。该设计使用矩阵键盘输入。LED数码管显示输入密码,用74HC245驱动数码管发光显示数码,LCD1602控制显示。密码正确,二极管发光。输入密码错误次数超过三次系统报警,蜂鸣器发出报警音。 关键词:单片机软件电路硬件电路

目录 第一章设计要求 (1) 第二章系统组成及工作原理 (2) 第三章硬件电路设计 (3) 3.1 STC89C52单片机的介绍 (3) 3.2单片机最小系统 (5) 3.3键盘电路设计 (6) 3.4 LCD1602显示电路 (8) 3.5开锁电路 (11) 3.6报警电路 (11) 3.7仿真效果图 (12) 第四章软件设计 (13) 4.1 PROTEUS仿真软件 (13) 4.2 KEIL编译设计 (15) 4.3 普中ISP自动下载软件 (16) 4.4程序流程图 (18) 第五章设计、调试和测试结果与分析 (19) 第六章设计小结 (23) 参考文献 (24) 附录 (25)

第一章设计要求 采用单片机、LCD等芯片,设计电子密码锁,能随时修改密码,具有防多次试探功能,连续输入密码达到一定次数,发出光声报警密码输入错误时有报警功能,连续输入3次错误,键盘自锁,等待管理解锁;开锁后或修改密码后可以选择退出,返回开锁前状态。掌握Proteus软件的基本应用,用于设计与仿真,需要用PROTEUS软件绘制电路原理图及局部原理图;掌握单片机编程语言,可选用汇编语言或C语言; 本次课程设计是要设计一个数字密码锁,设计要求如下: 1、设计一个数字式密码锁。 2、密码由4 – 6位数字组成。 3、密码相符开锁,三次不符报警。 4、密码可以更新。

基于51单片机的电子锁

基于51单片机的电子锁 设计说明书 一、概述: 随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。 本设计以单片机AT89C51作为密码锁监控装置的检测和控制核心,分为主机控制和从机执行机构(本设重点介绍主机设计),实现钥匙信息在主机上的初步认证注册、密码信息的加密、钥匙丢失报废等功能。根据51单片机之间的串行通信原理,这便于对密码信息的随机加密和保护。而且采用键盘输入的电子密码锁具有较高的优势。采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;反应速度快、传输效率高、工作稳定可靠等。软件设计采用自上而下的模块化设计思想,以使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。测试结果表明,本系统各项功能已达到本设计的所有要求。 着社会科技的进步,锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像。(如指纹、眼底视网膜等)来控制锁的开启。从而大大提高了锁的安全性,使不法之徒无从下手,人们也就能对自身财产安全有了更多的保障。当今安全信息系统应用越来越广泛,特别在保护机密、维护隐私和财产保护方面起到重大作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义。 二、设计目的和任务: 1.熟悉8051单片机的内部结构和功能,合理使用其内部寄存器 2.能完成相关软件编程设计工作。为实现预期功能,能够对系统进行 快速的调试,并能够对出现的功能故障进行分析,及时修改相关软硬件。 3.对软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方 面得到较全面的锻炼和提高。 4.密码由用户自己设定,在开锁状态下,用户可自行修改密码。 5.具有自动报警功能。自动报警分现场报警和远程报警两种。现场报 警由扬声器发出报警声。 三、方案选择:

基于单片机的电子密码锁设计和实现

河南理工大学万方科技学院课程设计报告 2015— 2016学年第一学期 课程名称单片机原理及应用 设计题目电子密码锁设计 学生姓名杨会毫 学号 1516353019 专业班级计算机15升 指导教师苏百顺 2016 年 1 月 5 日

摘要 近年来,随着改革开放的深入发展,电子电器的飞速发展。人民的生活水平有了很大提高。各种高档家电产品和贵重物品为许多家庭所拥有。然而不法分子也是越来越多,原因在于大部分人防盗意识还不够强,造成偷盗现象屡见不鲜。越来越多的居民家庭对财产安全问题十分担忧。因此,出于安全方便等方面的需求,电子密码锁相继问世。 本设计是以单片机AT89S51为主控芯片,并结合外围液晶显示LCD1602、存储芯片AT24C02、红外遥控HS0038,以及键盘输入、复位、电源等电路组合而成。系统能够完成开锁、报警、修改密码等基本功能,还能够通过红外来控制单片机的开锁,以及掉电储存密码的功能。整个设计在Keil开发环境下,用C语言编写主控芯片的控制程序来实现具有多功能的电子密码锁。 关键词:密码锁 AT89S51 储存显示红外

目录 摘要............................................................ I 引言. (1) 1 概述 (2) 1.1 课题背景和意义 (2) 1.2电子密码锁的发展趋势 (2) 2 系统总体设计思路 (3) 2.1 系统设计要求 (3) 2.2系统设计方案 (3) 3 系统硬件设计与实现 (4) 3.1主控芯片AT89S51 (4) 3.2 存储模块AT24C02 (6) 3.3红外模块HS0038 (9) 3.4 显示模块LCD1602 (10) 3.5 电源电路模块 (11) 3.6 键盘输入模块 (12) 3.7 报警电路 (13) 3.8 开锁电路 (13) 3.9 复位电路 (14) 3.10串行通信电路 (14) 3.11 系统整体原理图 (16) 4系统软件设计 (17) 4.1 主程序设计 (17) 4.2键值判断设计 (18) 4.3开锁设计 (19)

相关主题
文本预览
相关文档 最新文档