当前位置:文档之家› 1602pcb及电子密码锁课程设计报告(附图 代码)

1602pcb及电子密码锁课程设计报告(附图 代码)

1602pcb及电子密码锁课程设计报告(附图 代码)
1602pcb及电子密码锁课程设计报告(附图 代码)

西安邮电大学

专业课程设计报告书

系部名称:光电子技术系

学生姓名:张娟娟(05114093)

专业名称:光电信息工程

班级:光电1103班

实习时间:2013年12月16日至2013年12月27日

专业课程设计报告

内容1:驱动电路设计

【一】实验目的

利用Protel 99SE软件为主题,介绍其基础知识、设计流程、设计方法及电子设计的基本技能等问题,并要求掌握电子产品开发的基本技术问题。通过实习可以独立实现电路原理图和电路板的设计,为今后的学习和工作中的实际应用打下较为坚实的基础。用Protel 99 SE软件绘制一个电路图,图有自己决定。先绘制出电路原理图,然后进行电气规则检验,没有错误后,生成网络表,然后根据网络表生成印制电路板图,最后自动布局,手工调整,自动布线,手工调整布线,保存。

【二】实验原理

1:原理图设计

最基本的要求是正确性,其次是布局合理,最后是在正确性和布局合理的前提下力求完美。

(1)启动原理图设计界面,进入Protel99 SE,创建一个数据库,执行菜单File/New 命令,从框中选择原理图服务器(Schematic Document)图标,双击该图标,建立原理设计文档。双击文档图标,进入原理设计服务器界面;

(2)设置原理图设计环境,执行菜单Design/Option和Tool/Preferences,设置图纸大小,捕捉栅格,电器栅格等;

(3)创建自己的元件库,先进入Protel 99 SE的原理图编辑器,新建一个元件,绘制SCH元件以及放入元件的管脚,给新建的元件改名,绘制制元件的外形以及放入说明文字并保存好,画原理图的时候,就可以调用这些元件了;

(4)装入所需的元件库,在设计管理器中选择Browse区域中的下拉框中选择Library,然后单击ADD/Remove按钮,在弹出的窗口中寻找Protel99 SE子目录,在该目录中选择Library\SCH路径,在元件库列表中选择所需的元件库,单击ADD按钮,即可把元件库增加到元件库管理器中;

(5)放置元件,根据实际电路的需要,到元件库中找出所需的元件,然后用元件管理器的Place按钮将原件放置在工作平面上,再根据与按键之间的走线把元件调整好;

(6)原理图布线,利用Protel99 SE所提供的各种工具,指令进行布线,将工作

平面上的器件用具有点其意义的导线,符号连接起来,构成一个完整的电路原理图;

(7)编辑和调整,利用Protel99 SE所提供的各种强大的功能对原理图进一步调整和修改,以保证原理图的美观和正确。同时对元件的编号,封装进行定义和设定等;

(8)检查原理图,使用Protel99 SE的电器规则,及执行菜单命令Tool/ERC对画好的电路原理图进行电气规则检查,若有错误,根据错误情况进行改正。

(9)生成网络表,网络表是电路原理图设计和印刷电路板设计之间的桥梁,执行菜单命令Design/Create Netlist 可以生成具有元件名,元件封装,参数及元件之间连接关系的网络表;

2 :PCB设计

电路设计的最终目的是为了设计出电子产品,而电子产品的物理结构是通过印刷电路板来实现的。Protel99 SE位设计者提供了一个完整电路板设计环境,是电路设计更加方便有效。应用Protel99 SE设计印刷电路板过程如下:

(1)启动印刷电路板设计服务器,执行菜单File/New命令,从框中选择PCB设计服务器(PCB Document)图标,双击该图标,建立PCB设计文档。双击文档图标,进入设计服务器界面;

(2)规划电路板,根据要设计的电路确定电路板的尺寸。选取Keep Out Layer复选框,执行菜单命令Place/Track,绘制电路板的边框。执行菜单Design/Options,在“ Signal Lager”中选择Bottom Lager,把电路板定义为单面板;

(3)设置参数,参数设置是电路板设计的非常重要的步骤,执行菜单命令Design/Rules,左键单击Routing按钮,根据设计要求,在规则类(Rules Classes)中设置参数;

(4)装入元件封装库,执行菜单命令Design/Add/Remove Library,在“添加、删除元件库“对话框中所选取所有元件所对应的元件封装库;

(5)装入网络表,执行菜单Design/Load Nets命令,然后在弹出的窗口中单击Browse按钮,再在弹出的窗口中选择地电路原理图生成的网络表文件(扩展名为Net),如果没有错误,单击Execute。若出现错误提示,必须更改错误;(6)Protel99 SE既可以进行自动布局也可以进行手工布局,执行菜单命令

Tools/Auto Placement/Auto Placer可以自动布局。布局是布线关键性的一步,为了式布局更加合理,最好采用手工布局的方式;

(7)自动布线,Protel99 SE采用世界最先静的无网络,基于形式的对角线自动布线技术。执行菜单命令Auto Routing/All,并在弹出的窗口中单击Route all 按钮,程序即对印刷电路板进行自动布线。只要设置有关参数,元件布局合理,自动布线的成功率几乎为100%;

(8)手工数调整自动布线结束后,可能存在一些令人不满意的地方,手工调整,把电路板设计得尽善尽美。

【三】实验结果

原理图编译结果:

【四】设计中遇到的问题及解决方法

1产生问题原因

(1)连线超过元件器件的断点;

(2)连线的两部分有重复;

(3)原理图中未定义元件的封装形式;

(4)印刷电路板封装的名称不存在,致使在封装库中找不到;

(5)封装可以找到,单元件的管脚名称与印刷电路库中封装的管脚名称不一

致。

2解决方法

(1)在元件端点处连线;

(2)元器件连线尽量一线连通;

(3) 到网络表文档中查找未定义封装的元件,补上元件封装;

(4) 确认印刷电路板元件封装库是否已调入,同时检查原理图中元件封装

名称是否印刷电路板元件封装库中的名称一致;

(5) 将印刷电路板元件封装中的修改成与原理图中定义一致。

内容2驱动程序开发

【一】项目需求分析

题目1: 4×4键盘及1602LCD显示构成的电子密码锁

需求分析:电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁。其特点如下:

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

2) 误码输入保护,当输入密码多次错误时,报警系统自动启动。

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

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

【二】实施方案及本人承担的工作

采用以单片机为核心的控制方案

由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。基于以上因素本设计选用单片机90c52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,EEPROM芯片用于密码的存储,外接LCD1602显示器用于显示作用。当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0-9输入密码。密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,当三次密码错误则发出报警,蜂鸣器蜂鸣,LED灯亮,并锁定屏幕三秒钟,三秒过后可再次输入。

本人承担链接外围电路及写代码的全过程,与搭档一起检查代码的运行效果,根据搭档的意见对代码进行修改,使功能更加完善,更人性化更贴近实际生活。

【三】程序框图

1.总体设计

【四】实验结果

打开单片机开关后,液晶屏幕显示欢迎语句,按复位键后可输入密码,并实现密码的验证,密码正确时开锁显示相关提示,错误时提示所剩输入机会,并在连续输入三次错误时锁屏,三秒后可再次输入。

【五】设计中遇到的问题及解决方法

问题1:输入错误时同时提示错误正确。

问题2:前一次操作产生的相应提示占据了后一次显示提示的空余位置,让人看不清到底是什么。

解决1:检查发现程序逻辑错误少了大括号。

解决2:检查发现分配的字符显示长度不相同,设置为相同并将空余为作空格处理后显示结果很理想。

【六】专业课程设计的心得体会

1.PCB设计体会此次课程设计不仅加深巩固所学内容,同时对所学内

容进行扩展,有一定的深度和广度,我不仅学会了如何使用Protel,并且画出电路的原理图和设计PCB板,而且还在实习中更加深刻的体会了如何

与同学配合,互帮互助的精神。在实习中碰到了一些比较难的问题,自己不怕困难,学会如何独立思考并解决问题。最后解决不了的上网搜集资料,请教老师,大家互帮帮助,体现了良好的团队意识。为将来进入社会前锻炼自己的合作精神,更好的为将来工作打好基础。

2.电子密码锁设计体会Keil软件使用的不熟练造成了一定的阻碍,经

过一段时间的使用和练习克服了该困难。其次,对于模块结构程序.要一个个子程序分别调试。调试时,一定要符合入口条件和出口条件,调试可用单步运行和断点运行方式,通过检查用者系统的CPU现场情况、RAM的内容和I/O口的状态,检测程序执行结果是否符合设计要求,有无循环错误、有无机器码错误以及转移地址的错误,该问题的解决消耗了相当长的时间。同时,还可以发现系统中存在的硬件设计错误和软件算法错误。各程序模块通过后,则可以把相关功能块连在一起进行总调。这个阶段若有故障,可以考虑各子程序运行时是否破坏了现场,缓冲单元、工作寄存器是否发生冲突,标志位的建立和清除是否有误,堆栈区是否有溢出,输入设备的状态是否正常等等,若用者系统是在开发机的监控程序下运行时,还要考虑用者缓冲单元是否和监控程序的工作单元发生冲突。

单步和断点调试后,还应进行连续调试,用以确定定时精度、当全部调试和修改完成后,将程序固化到90C52中。进行整机调试。各功能实现则调试完成。

附录:主要源程序以及电路原理图或PCB版图

图1 电路原理图

图2 PCB版图电子密码锁C程序:

#include

#define uint unsigned int

#define uchar unsigned char

#define KEY P1 //键盘输入端口

#define No_key 20 //无按键时的返回值

#define lcddata P0 //1602的数据输入端口

sbit lcden= P2^6;

sbit lcdrs= P2^4;

sbit lcdrw= P2^5;

sbit light= P2^1;

sbit light1= P2^2;

uchar j ; //用来统计输入个数的全局变量

uchar aa; //用来在定时器中计数的全局变量

uchar code table[]= " Hello! ";

uchar code table1[]=" OK! right! " ;

uchar code table2[]="Enter please! ";

uchar code table3[]=" Two times left ";

uchar code table4[]=" one times left ";

uchar code table5[]=" none times left";

uchar code key_table[16] =

{

1,2,3,10,

4,5,6,11,

7,8,9,12,

0,13,14,15

};

uchar password[]={1,2,3,4,5} ; //设定初始密码

uchar save[6]; //保存输入的数据

uchar conflag ; //确认标志

uchar lockflag; //锁键盘标志

uchar startflag; //开始标志

sbit beep=P2^7;

void delay(uint z); //延时子函数

void wright_com(uchar com); //写指令函数

void wright_data(uchar date) ; //写数据函数

void init(); //初始化

void display_OK();

void display_wrong1();

void display_wrong2();

void display_wrong3();// 显示OK

void delete(); //删除输入的最后一个数

uchar keyscan() ; //带返回值的键盘扫描程序

void enter_code(uchar t); //输入密码函数,把输入的数据存入数组中并在屏幕上显示相应的东西,

void confirm(); //确认密码对不对,把输入的数据与密码逐一对比,完全一样刚正确,void succeed_an(); //输入密码成功时的响应,

void fail_an(); //输入密码失败时响应

void lockkey(); //锁键盘三秒

void alarm(); //发出警报声

void reset(); //复位函数

void display_enter(); //显示输入

void main(void)

{ uchar i=0;

uchar temp;

init();

while(1)

{

uchar i;

if(lockflag)

{

alarm();

// lockflag=0;

temp=keyscan(); // 锁键期间也要进行键盘扫描

if(temp!=No_key) //重新记时三秒

{

aa=0; //重新在定时器中计数

}

}

else

{

temp=keyscan(); //反复扫描输入,等待随时输入

if(temp!=No_key) //有按键按下才进行下面的操作

{

if(temp==10)

{

reset();

startflag=1; //开始标志置位

}

if(startflag)

{

enter_code(temp); //每扫描一次键盘就要进行一次处理,保存输入的数值

if(temp==13) //按下确认键盘就要进行密码确认

{

confirm(); //进行确认判断

if(conflag) //密码确认为正确

{

display_ok(); //密码正确,作出相应的反应

i=0;

}

else

{

i=i+1;

if(i==1)

display_wrong1();

delay(1000);

reset();

if(i==2)

display_wrong2();

delay(1000);

reset();

if(i==3)

{ display_wrong3();

delay(1000);

fail_an(); //密码错误,作相应反应

}

}

}

if(temp==14)

{

delete(); //作删除操作

}

}

}

}

}

}

/****** 显示enter********/

void display_enter()

{

uchar num;

wright_com(0x80);

for(num=0;num<16;num++)

{

wright_data(table2[num]);

}

}

/****** 显示wrong********/

void display_wrong1()

{

uchar num;

wright_com(0x80);

for(num=0;num<16;num++)

{

wright_data(table3[num]);

}

}

void display_wrong2()

{

uchar num;

wright_com(0x80);

for(num=0;num<16;num++)

{

wright_data(table4[num]);

}

}

void display_wrong3()

{

uchar num;

wright_com(0x80);

for(num=0;num<16;num++)

{

wright_data(table5[num]);

}

}

/****** 显示OK********/

void display_OK()

{

uchar num;

wright_com(0x80);

for(num=0;num<13;num++)

{

wright_data(table1[num]);

}

}

/****** 删除最后一个********/

void delete()

{

wright_com(0x80+0x40+j); //确定删除对象

wright_data(' '); //显示空格即为删除

save[--j]=0; //删除后数据清零

wright_com(0x80+0x40+j); //为下次输入数据时写好位置,必须是在最后一个后面}

/****** 对各种变量进行复位********/

void reset()

{

uchar num;

display_enter();

wright_com(0x80+0x40); //擦除屏幕上的显示

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

{

save[num]=0; //对输入的数值进行清零

wright_data(' '); //显示的是空格

}

wright_com(0x80+0x40); //下次再输入时可以又从起始位置输入

lockflag=0; //各种变量要清零回起始状态

conflag=0;

j=0;

}

/****** 输入密码正确进行响应********/

void succeed_an()

{

light=0; //灯亮

display_OK(); //显示成功

delay(1000);

light=1; //灯灭

}

/****** 输入密码错误进行响应********/

void fail_an()

{

lockkey();

alarm();

}

/****** 发出警报声**********/

void alarm() //这个以后再扩展它

{

unsigned int k;

for(k=0;k<50000;k++)

{

beep=1;

}

beep=0;

}

/******锁键盘三秒************/

void lockkey()

{

lockflag =1;

}

/******输入密码并在屏幕上显示星号******/

void enter_code(uchar t)

{

if(t>=0&&t<10)

{

if(j==0)

{

wright_com(0x80+0x40) ; //第一输入时要先写入地址指令,否则无法显示

wright_data('*') ;

}

else

{

wright_data('*') ;//不是第一个输入则不用再写地址

}

save[j++]=t; //保存输入的数据

}

}

/******校对密码以确定是不是正确的**********/

void confirm()

{

uchar k;

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

{

if(password[k]!=save[k]) //对数组中的内容进行逐一比较,一旦有数据不对马上退出循环

{

break;

}

}

if(k==6) //要是条件退出的话说明六个数全对密码

{

conflag=1; // 进行标志密码正确

}

}

/******中断服务程序**********/

void timer0() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256; //重装初值

if(lockflag)

{

aa++;

light1=0;

if(aa>=60) //三秒到了

{

aa=0; //清零可以方便下次再使用

light1=1; //关闭警报

lockflag=0; //标志清零解除键锁,方便下次使用

}

}

}

/******初始化***********/

void init()

{

uchar num;

/*****定时器初始化****/

TMOD=1;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

ET0=1;

EA=1; //开启总中断

TR0=1;//把定时器关闭

/****1602初始化******/

lcdrw=0; //这个必须要置零,否则无法正常显示

lcden=0;

wright_com(0x38) ; //初始化

wright_com(0x0c) ; //打开光标0x0c不显示光标0x0e光标不闪,0x0f光标闪wright_com(0x01) ; //清显示

wright_com(0x80) ;

for(num=0;num<9;num++)

{

wright_data(table[num]);

delay(1);

}

}

/******1602写入指令************/

void wright_com(uchar com)

{

lcdrs=0;

lcddata=com;

delay(1);

lcden=1;

delay(1);

lcden=0;

}

/******1602写入数据***********/

void wright_data(uchar date)

{

lcdrs=1;

lcddata=date;

delay(1);

lcden=1;

delay(1);

lcden=0;

}

/******延时函数************/

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--) ;

}

/**********4x4矩阵键盘扫描函数*********/

uchar keyscan()

{

uchar temp,num=No_key; //num的初值要为无键盘按下时的返回值/*********扫描第一行****************/

KEY=0xfe;

temp=KEY;

temp=temp&0xf0; //读出高四位

while(temp!=0xf0)

{

delay(5); //延时消抖

temp=KEY;

temp=temp&0xf0;

while(temp!=0xf0) //确认确实有按键按下

{

temp=KEY;

switch(temp) //根据这八个电平可以确定是哪个按键按下

{

case 0xee:num=1;

break;

case 0xde:num=2;

break;

case 0xbe:num=3;

break;

case 0x7e:num=10;

break;

}

while(temp!=0xf0) //等待松手

{

temp=KEY;

temp=temp&0xf0;

}

}

}

/*********扫描第二行***************/ KEY=0xfd;

temp=KEY;

temp=temp&0xf0;

while(temp!=0xf0)

{

delay(5);

temp=KEY;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=KEY;

switch(temp)

{

case 0xed:num=4;

break;

case 0xdd:num=5;

break;

case 0xbd:num=6;

break;

case 0x7d:num=11;

break;

}

while(temp!=0xf0)

{

temp=KEY;

temp=temp&0xf0;

}

}

}

/*********扫描第三行****************/ KEY=0xfb;

temp=KEY;

temp=temp&0xf0;

while(temp!=0xf0)

{

delay(5);

temp=KEY;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=KEY;

switch(temp)

{

case 0xeb:num=7;

break;

case 0xdb:num=8 ;

break;

case 0xbb:num=9;

break;

case 0x7b:num=12;

break;

}

while(temp!=0xf0)

{

temp=KEY;

temp=temp&0xf0;

}

}

}

/*********扫描第四行****************/ KEY=0xf7;

temp=KEY;

temp=temp&0xf0;

while(temp!=0xf0)

{

delay(5);

temp=KEY;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=KEY;

switch(temp)

{

case 0xe7:num=0;

break;

case 0xd7:num=13;

break;

case 0xb7:num=14;

break;

case 0x77:num=15;

break;

}

while(temp!=0xf0)

{

temp=KEY;

temp=temp&0xf0;

}

}

}

return num;

}

西安邮电大学光电子技术系专业课程设计过程考核成绩表

基于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蓝牙模块来

电子密码锁报告

基于单片机控制的电子密码锁 设计者:张雪贵 指导老师:李峥 淮北煤炭师范学院物理与电子信息学院 06电子信息工程 2009年6月

基于单片机的电子密码锁 一设计任务 设计一个利用AT89S52单片机控制的电子密码锁,该电子密码功能包括16个密码输入,密码输入过程中清除输入,密码正确和错误分别用蜂鸣器提示,输入错误密码超次锁定,密码修改,12864LCD 显示菜单实现多功能等等。 二总体方案设计与实现 电子密码锁系统核心用AT89S52单片机控制,密码输入按键为4*4矩阵键盘16个按键实现密码输入,外加独立按键实现清除,确定和液晶反白控制。密码存储电路利用AT24C02芯片,该芯片可以实现掉电存储,而且数据可保留时间长,与单片机连接简单。报警电路利用三极管驱动小型蜂鸣器实现,通过给蜂鸣器送不同频率的电平信号实现不同声音报警。LCD用12864字符型液晶实现,通过单行反白实现菜单,加强液晶显示内容及添加系统功能。 另外,电磁锁电路暂时利用发光二极管代替,用发光二极管的亮灭和蜂鸣器的响声来指示电磁锁的开关。 图1 系统原理框图 图2系统总体原理电路图 三硬件电路的功能单元设计 (一)单片机最小系统

其原理图如图1所示 图3 单片机最小系统模块 单片机采用AT89S52单片机, AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器,与工业80C51产品指令各引脚完全兼容。单片机最小系统主要有两块组成,其一为晶振起振电路,其二为复位电路。在此,我们采用按键手动复位,相对来讲,这种复位方式更加方便人性化,不必要切断电源即可对系统进行复位。 (二)开锁电路 通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。其原理如图2 所示。 图4 开锁电路原理 当用户输入的密码正确单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。在此为节省成本考虑,我们用二极管代替电磁锁,将一切在LCD上面显示,并且利用蜂鸣器和二极

密码锁课程设计

课程设计报告 课程设计题目:4位串行数字密码锁 学号 学生姓名:谢渊良 专业:通信工程 班级:1421302 指导教师:钟凯 2017年1月5日 1.摘要 随着科技的发展数字电路的各种产品广泛应用,传统的机械锁由于其构造的简单,安全性不高,电子密码锁其保密性高,使用灵活性好,安全系数高,使用方便,将会是未来使用的趋势。本设计使用EDA设计使设计过程廷到高度自动化,其具有强大的设计功能、测试、仿真分析、管理等功能。使用EDA环境完成电路的系统综合设计和仿真。用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁。本设计基于Verilog HDL 语言来设计密码锁,先介绍设计要求和整体设计思想,随后对所使用各模块分别为键盘模块、连接模块、控制模块进行了介绍,给出各个模块的主要代码,在对各个模块的功能进行仿真。 关键字:密码锁 Verilog HDL 2.设计内容 设计一个4位数字密码锁子系统 1)1.2设计要求开锁密码为4位二进制,当输入密码与锁内给定的密码一致时,方可开锁。否则进入“错误”状态,发出报警信号。 2)锁内的密码可调。 3)串行数字密码锁的报警,直到按下复位开关,才停下。此时,数字密码锁又自动等待下一个开锁状态。 3.系统设计 本设计中,FPGA系统采用硬件描述语言Verilog按模块化方式进行设计,并用modersim软件对各个模块进行编写仿真。 3.1键盘模块 键盘电路理想接口图: Set

本模块采用2×2的扫描键盘电路,对输入信号进行采集,此模块的主要功能是每按下一个按键,flag产生一个矩形波,作为连接模块的触发信号。同时key_value值为所按下键的编码值,与flag一同传入连接模块。 实际设计接口图: 当输出kevalue:11值的时候,flag再次出现上跳沿。实际上,上面的图写的测试文件是有一点错误的,当a扫描到第三个值(01)时,b在实际电路中应该是01而不是11,此时根据程序flag应置为1,当然此时flag本来就是1,不会发生错误。在实际中,时钟频率跳的如此之快,人按一下按键的持续时间还是有的,所以flag应在按键按完后再下降下来。不然多出很多无用的矩形波,这个装置就没用了。 3.2连接模块 连接模块接口图: keyvalue 送入连接模块进行运算,当连续四个0和1键按下时,中,如果按下的是set键,则set置1,如果按下的是0键,则a_led置1,若是1键,则b_led 置1。 这里有一个需要注意的点是,当第一次按了0键后马上按reset键,再按一下1键时,a的值是1,而不是0。每次按了reset或set,a,b,c,d都是要重新赋值的,这才符合实际情况。 3.3控制模块: 因为这个密码锁是循环使用的,就一定有不同的状态。这里采用有限状态机的方法进行设计。所以把开锁过程分为三个部分: 1.等待输入状态; 2.重设密码状态; 3.输出结果状态; 状态转换图如下所示: 控制模块接口图: flag2 ena

电子电路课程设计密码锁(满分实验报告)

密码锁设计报告 摘要: 本系统是由键盘和报警系统所组成的密码锁。系统完成键盘输入、开锁、超时报警、输入位数显示、错误密码报警、复位等数字密码锁的基本功能。 关键字:数字密码锁GAL16V8 28C64 解锁与报警 1

目录: 一、系统结构与技术指标 1、系统功能要求 (4) 2、性能和电气指标 (5) 3、设计条件 (5) 二、整体方案设计 1、密码设定 (6) 2、密码判断 (6) 3、密码录入和判断结果显示 (6) 4、系统工作原理框面 (7) 三、单元电路设计 1、键盘录入和编码电路图 (8) 2、地址计数和存储电路 (12) 3、密码锁存与比较电路 (12) 2

4、判决与结果显示电路 (14) 5、延时电路 (15) 6、复位 (17) 7、整机电路图 (19) 8、元件清单……………………………………………19四、程序清单 1、第一片GAL (21) 2、第二片GAL (23) 五、测试与调整 1、单元电路测试 (25) 2、整体指标测试 (26) 3、测试结果 (26) 六、设计总结 1、设计任务完成情况 (27) 2、问题及改进 (27) 3、心得体会 (28) 3

一、系统结构与技术指标 1.系统功能要求 密码锁:用数字键方式输入开锁密码,输入密码时开锁;如 果输入密码有误或者输入时间过长,则发出警报。 密码锁的系统结构框图如下图所示,其中数字键盘用于输入 密码,密码锁用于判断密码的正误,也可用于修改密码。开锁LED1亮表示输入密码正确并开锁,报警LED2亮表示密码有误或者输入时间超时。 开锁green 键盘密码锁 错误red 4

电子密码锁单片机课程设计

电子密码锁单片机课程设计

单片机原理与应用技术课程设计报告 电子密码锁设计 专业班级:电气 124 姓名: 时间:2015年1月2日 指导教师:秦国庆 2015年1月2日

电子密码锁课程设计任务书 1.设计目的与要求 设计出一个电子密码锁。准确地理解有关要求,独立完成系统设计,要求所设计的电路具有以下功能: (1)状态显示功能:锁定状态时系统用3位数码管显示OFF, 用3位码管显示成功开锁次 数;成功开锁时用3位数码管 显示888,用3位数码管显示 成功开锁次数。 (2)密码设定功能:通过一个4×4的矩阵式键盘可以任意设 置用户密码(1-26位长度), 同时系统掉电后能自动记忆 和存储密码在系统中。(3)报警和加锁功能:密码的输入

时间超过12秒或者连续3次 输入失败,声音报警同时锁定 系统,不让再次输入密码。此 时只有使用管理员密码方能 对系统解锁。 2.设计内容 (1)画出电路原理图,正确使用逻辑关系; (2)确定元器件及元件参数; (3)进行电路模拟仿真; (4)SCH文件生成与打印输出; 3.编写设计报告 写出设计的全过程,附上有关资料和图纸,有心得体会。 4.答辩 在规定时间内,完成叙述并回答问题。 1

电子密码锁 电气124 赵政权 摘要:电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。本设计利用51单片机编程控制原理,采用矩阵键盘、数码管显示、数据存储器和报警系统构成电子密码锁的设计成品。其中数码管使用两组三位一体共阳数码管,数据存储器使用AT24C04芯片通过IIC协议实现数据的传输,矩阵键盘用执行效率极高的代码扫描控制。使用Keil4.6编写程序代码,用Proteus进行仿真,无误后使用Altium制图,最终做成能使用的成品。 关键词: 51单片机 IIC协议矩阵键盘动态显示 Keil Proteus Altium 2

电子密码锁详细报告

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

密码锁-单片机课程设计

1 绪论 随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。电子锁可以在日常生活和现代办公中,住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种场合使用。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性和方便性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点随着人们对安全的重视和科技的发展,对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。具有报警功能的电子密码锁保密性高,使用灵活性好,安全系数高,密码锁设计方法合理,简单易行,成本低,符合住宅、办公室用锁要求,具有推广价值。电子密码锁采取电子电路控制,通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务。 本次设计使用AT89S52单片机构成最小系统,接以键盘,报警系统,液晶显示构成人性化的方便易用的电子密码锁。

2 设计任务、功能要求说明及总体方案介绍 2.1 设计目的与任务 本设计采用AT89S52单片机为主控芯片,结合外围电路矩阵键盘、液晶显示器LCD 1602A等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,组成的电子密码锁系统。 2.2 设计内容及要求 (1)课程设计中,锁体用LED代替(如“绿灯亮”表示开锁,“红灯亮”表示闭锁)。 (2)其密码为方8位十进制代码(代码自设定)。 (3)开锁指令为串行输入码,当开锁密码与存储密码一致时,锁被打开。当开锁密码与存储密码不一致时,电路则报警并实现自锁。(报警动作为响1分钟,停10秒) (4)选择电路方案,完成对确定方案电路的设计。计算电路元件参数与元件选择、并画出总体电路原理图,阐述基本原理。安装调试设计电路,查阅至少5篇参考文献。按《湖南工学院课程设计工作规范》要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规范。 2.3 设计总体方案及工作原理说明 采用以单片机AT89S52为核心的控制方案,总体框图见图1。 单片机作为本装置的核心器件,在系统中起到控制声光报警、以及数码动态显示的作用。一般来说在选择单片机时下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。基于以上因素本设计选用单片机AT89S52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O 端口,以及控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接加

电子密码锁实验报告

电子密码锁实验报告 一,实验目的 1.进一步巩固和加深理论课基本知识的理解,提高综合运用所学知识的能力。 2.能根据需要选择参考书,查阅资料,通过独立思考,深入钻研有关问题。 3.学会自己独立分析问题、解决问题。 4学习定时器时间计时处理、按键扫描及LED数码管显示的设计方法。 5.根据设计任务及要求利用实验平台上单片机及其外围元器件,设计符合 功能的电子密码锁。 二,实验要求 设计要求: 1:用4×4矩阵键盘组成0-9数字键及确认键和删除键。 2:可以自行设定或删除8位密码,能够掉电保存。 3:用5位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色led发光二极管亮一秒钟做为提示,若密码不正确,禁止按键输入3秒,同时用红色led发光二极管亮三秒钟做为提示; 若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。 三,实验基本原理 1.键盘接口必须具有去抖动、按键识别基本功能。 (1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为5—20mm。所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问题可通过软件延时或硬件电路解决。 (2)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方

法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口。 2.利用键盘扫描原理分别设4×4矩阵键盘组成0-9数字键及确认键和删除键,通过0—9数字键设定8位密码和删除键删除密码,利用存储器的永久存储特性将设定的密码存于存储器中,再次重启程序时,能从存储器中读取出来,从而实现掉电保存。 为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。 Led发光二级管低电平发亮,高电平熄灭的特性实现led提示功能。 利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.05s中断一次并当作一个计数,设定定时1秒的中断计数初值为20,每中断一次中断计数初值减1,当减到0时,则表示1s到了,秒变量加1,从而实现led亮1秒或3秒。 四,实验设计分析 针对要实现的功能,采用AT89S52单片机进行设计,AT89S52 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。这样,既能做到经济合理又能实现预期的功能。 在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为按键程序、数码管显示程序、发光二级管程序,存储器程序,密码设定程序、密码删除程序、定时器程序,延时程序等。运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。 首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。第三部分是软件部分:先学习理解C语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。最

数字电子技术课程设计电子密码锁

课程设计说明书 课程名称: 数字电子技术课程设计 题目:电子密码锁 学生姓名: 专业: 班级: 学号: 指导教师: 日期:年月日

电子密码锁 一、设计任务与要求 1.用电子器件设计制作一个密码锁,使之在输入正确的代码时开锁。 2.在锁的控制电路中设一个可以修改的4位代码,当输入的代码和控制电路的代码一致是锁打开。 3.用红灯亮、绿灯灭表示关锁,绿灯亮、红灯灭表示开锁 4.如5s内未将锁打开,则电路自动复位进入自锁状态,并发报警信号. 二、方案设计与论证 1、用按键输入四位十进制数字,输入密码要存储。 2、比较输入密码和原始密码.当输入正确密码时,给出开锁信号,开锁信号用一个绿色指示灯表示,绿灯亮表示密码输入正确;如果输入密码不正确,用红灯表示。 3、锁的开关用红灯和绿灯表示,一次只能亮一盏。红灯亮、绿灯灭表示关锁,绿灯亮、红灯灭表示开锁。 4、设置倒计时电路和自锁电路。如果密码在5s内未能输入正确则发出报警声,并且自锁电路。 5、设置密码设置开关,开关闭合后,允许设置密码,设置好密码后,打开此开关。 6、需要在输入密码开始时识别输入,并由此触发计时电路. 方案一用74LS147译码器来把按键输入转化为二进制。通过8片四位寄存器74LS194实现密码功能,其中四片用来存储预置密码,另四片则用来存储输入的密码。当密码开始输入时开始计时,通过74LS192计数器实现计时功能;然后在密码输入期间,用74LS138数据选择器来选片存储。数据选择器的输入端又一个两位的二进制的加法计数器来控制,当键盘有按键输入时计数器就加1,当一个按键按完后会轮到下一个芯片存储。自锁功能利用74LS138来控制.通过四片74LS85芯片判断原始密码和输入密码是否相同,接着用指示灯来表示密码的输入正确与否,如果密码没有输入正确的话,则红灯亮,否则则绿灯亮。若是没在规定时间输入正确密码,则会发出警报信号(蜂鸣器响).

单片机电子密码锁报告

目录 第1章概述 (1) 第2章系统总体方案设计 (2) 第3章硬件电路设计 (4) 3.1 键盘电路设计 (4) 3.2LED显示电路 (6) 3.3 开锁电路 (8) 3.4报警电路 (9) 第4章软件设计 (9) 4.1软件设计思路 (10) 4.2 各子程序设计 (10) 第5章系统调试 (16) 第6章心得体会 (17) 第7章参考文献 (18) 第8章附录 (19) 8.1源程序清单 (19) 8.2硬件原理图 (26)

第1章概述 随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具。 本文所涉及的是市场占有率最高的是MCS—51系列,因为世界上很多知名的IC生产厂家都生产51兼容的芯片。到目前为止,MCS—51单片机已有数百个品种,还在不断推出功能更强的新产品。 本设计是基于单片机的密码锁设计方案,根据要求,给出了该单片机密码锁的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、单片机存储单元的分配、汇编语言源程序及详细注释等内容。

第2章系统总体方案设计 系统总体设计方案框图2.1: 图2.1系统总体设计方案框 本方案采用一种是用以89S51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。 初步设计思路如下: 1.输入密码用矩形键盘,包括数字键和功能键。 2.LED数码管显示输入密码,用74JS247驱动数码管发光显示数 码,用74LS138控制各位显示器分时进行显示。 3.用发光二极管代替开锁的电路,发光表示开锁。 4.输入密码错误次数超过3次,系统报警。 5.打开电源后,显示器显示“000000”,设原始密码为“123456”, 只要输入此密码便了开门。这样可预防停电后再来电时无密码可用。 6.按“C”键,清除显示器为“000000”。

电子密码锁课程设计

目录 摘要 本次课程设计的题目是电子密码校验设计,由输入密码、设定密码、寄存电路、比较电路、显示电路、修改密码等模块组成。 该电子密码锁利用数字逻辑电路,实现对锁的电子控制,突破了传统的机械锁的单一性、保密性低、易撬性的缺点,数字电子密码锁具有保密性高、使用灵活性好、安全系数高的优点。

主要工作部分是将输入密码与正确密码进行比较,密码正确时绿色发光二极管亮,密码错误则红色发光二极管亮。输入电路将6位密码并行输入,密码是否相等利用与非门将输入的密码和预定密码进行比较,当相等时便触发绿色发光二极管,不相等则作用到红色发光二极管和蜂鸣器。 1.设计目的 本课程为电子、通信类专业的独立实践课,该课程设计建立在电路基础、低频与高频电子线路等课程的基础上,主要让学生加深对电子线路理论知识的掌握,使学生能把所学的知识系统地、高效地贯穿到实践中来,避免理论与实践的脱离,同时提高学生的动手能力,并在实践中不断完善理论基础知识,有助于培养学生综合能力。 2.设计要求 1)要求电子器件设计制作密码锁的控制电路,使之在输入正确的代码时,输出信号以 启动执行机构动作,并且用红、绿LED指示关锁、开锁状态。 2)密码锁控制器中存储一个4位代码,当开锁按钮开关设置9位,其中只有4位有效) 的输入代码等于存储代码时启动开锁控制电路,并且用绿灯亮、红灯灭表示开锁状态。 3)从第一个按钮触动后的5秒内若未能将锁打开,则电路自动复位并由扬声器发出 20秒的报警信号,同时用绿灯灭、红灯亮表示关锁状态。 4)要求性能可靠、操作简便。 5)密码锁控制器中存储的4位密码可以修改。 3.方案选择 第一方案555集成电路构成的密码锁电路 图3-1555时基集成电路组成的电子密码锁电路

简易电子密码锁课程设计

江西理工大学应用科学学院 微机控制系统课程设计报告 题目:简易电子密码锁 姓名: 学号: 专业班级: 指导教师: 完成时间: 设计报告综合测试平时总评 格式(10分) 内容 (10分) 图表 (5分) 功能测试 (35分) 答辩 (20分) 考勤 (20分)指导教师签名:

目录 摘要.................................................... - 1 - 第一章系统概述.. (2) 第二章基本功能设计.................................... - 3 - 2.1 实验任务........................................ - 3 - 2.2 基本设计要求.................................... - 3 - 2.2.1 基本要求.................................. - 3 - 2.2.2发挥部分 .................................. - 3 - 2.3 主要元件介绍 (3) 2.3.1 P89C51芯片 (3) 2.4 系统框图 (5) 第三章硬件设计 (5) 3.1 硬件电路的设计 (5) 3.1.1 硬件工作接线口 (5) 3.1.2 LED显示器结构与原理 (5) 3.1.3 复位电路 (7) 3.1.4 振荡电路 (7) 3.1.5 按键设置 (8) 3.1.6 报警器和发光二极管 (9) 3.2 硬件电路图 (9) 第四章软件设计 (11) 4.1 系统软件设计 (11) 4.1.1密码开锁功能 (12) 第五章系统PROTUSE仿真图 (13) 第六章设计总结 (16) 参考文献 (17) 附录 (18)

单片机密码锁实验报告

二○一六~二○一七学年第一学期 电子信息工程系 电子综合设计II 报告书 班级:电信(产业)1401班 设计时间:2016/12/29 学生姓名:曹子龙 学号:201404135024 指导教师:赵敏

二○一六年十二月

一、设计要求. 题目内容: 设计一个基于51单片机的电子密码锁: 1.可以使用4*4的矩阵键盘与红外遥控器输入密码。 2.可以通过按特殊组合键重设开锁密码。 3.显示通过1602液晶屏显示电子密码锁界面,输入密码时显示输入个数显 示为‘*’,如果密码正确,进入欢迎界面。 4.密码连续输入3次错误报警,LCD显示报警,倒计时十秒后重新进入密码 输入界面。 5.可以通过特殊的按键组合跳过输入界面直接进入欢迎界面。 实现方法: 1.通过红外接收头,连接单片机的P3.2外部中断INT0口,可以实现单片 机接收遥控器的信号输入。 2.通过矩阵键盘扫描函数,可以实现对键盘输入的响应。 3.通过引脚的高低电平变化频率,控制蜂鸣器的输入占空比和频率(低电 平时间固定,通过输入给函数值的不同改变高电平时间,固定响300个周期),对不同按键实现不同声音响应。 4.1602显示屏有16*2个单元格,每个单元格由5*8个像素点组成,可以很 好的显示数字,符号,英文字符。 功能需求分析: 液晶屏显示: 根据题意,需要设计并显示输入密码界面、修改密码界面、欢迎界面、错误警告界面 密码输入: 根据题意,每次输入一个数字,则显示一个‘*’符号代替,只能看出输入的位数,若输入密码位数达到六位,则与正确密码比较,若正确,进入系统。根据日常的手机使用习惯,默认长度为6位,且第六位输入之后立即判断,正确则进入,错误则清空重输。

数字逻辑电路课程设计电子密码锁

数字逻辑电路课程设计 课题:电子密码锁设计 姓名: 班级:13通信 学号: 成绩: 指导教师: 开课时间:

目录 摘要 (1) 一课程设计目的内容及安排 (2) 1.1设计目的 (2) 1.2设计内容 (2) 1.3设计安排 (2) 1.4设计内容 (2) 二电子密码锁设计要求及总框图 (3) 2.1设计要求 (3) 2.2总框图 (4) 三各模块电路设计 (5) 3.1密码输入存储比较模块 (5) 3.2五秒计时电路 (6) 3.3二十秒计时电路 (8) 3.4报警电路 (10) 3.5总电路 (11) 四设计心得 (12) 五参考文献 (13)

电子密码锁 摘要:设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁;在锁的控制电路中储存一个可以修改的4位代码,当开锁按钮开关(可设置成6位至8位,其中实际有效为4位,其余为虚设)的输入代码等于储存代码时,开锁;从第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号。密码输入存储及比较部分使用芯片74LS194及74LS85。五秒及时部分采用芯片74LS161和数码显示管。二十秒报警电路由74LS160,555定时器组成的多谐振荡器,LED灯和蜂鸣器组成。利用multisim对电路进行仿真可以得到结果。 关键词:电子密码锁,计时电路,报警电路

一课程设计目的内容及安排 1.1设计目的 1 根据设计要求,完成对交通信号灯的设计。 2 加强对Multisim10仿真软件的应用。 3 掌握交通信号灯的主要功能与在仿真软件中的实现方法。 4 掌握74LS160,74LS192等功能。 1.2 设计内容 设计一个密码锁的控制电路,当输入正确代码时,输出开锁信号以推动执行机构工作,用红灯亮、绿灯熄灭表示关锁,用绿灯亮、红灯熄灭表示开锁; 在锁的控制电路中储存一个可以修改的4位代码,当开锁按钮开关(可设置成6位至8位,其中实际有效为4位,其余为虚设)的输入代码等于储存代码时,开锁; 从第一个按钮触动后的5秒内若未将锁打开,则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号。 1.3设计安排

电子密码锁毕业设计开题报告

湖北理工学院 毕业设计(论文) 开题报告 题目:基于单片机的超市储物柜密码锁的设计 学院:电气与电子信息工程学院 专业名称:电子信息工程 学号:201140210122 学生姓名:叶文 指导教师:章磊 2015 年 1 月8 日

1、课题来源 2、研究目的和意义

3、国内外研究现状和发展趋势综述

4、本课题的主要研究内容及方案

方案阐述: 本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分、红外部分组成,软件部分对应的由主程序、初始化程序、12864显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置 程序、EEPROM读写程序和延时程序,红外线程序等组成。用单片机灵活的编 程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接12864液晶显示器用于显示作用。 超市存物柜密码锁设计原理: 本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。密码锁工作的主要过程是12864液晶显示提示开始输入密码,通过键盘输入密码,同时12864液晶显示密码输入情况,其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。 主要的设计实施过程: 1、选用ATMEL公司的单片机AT89C52,以及选购其他电子元器件。 2、使用PROTEUS软件设计硬件电路原理图, 3、使用Keil uVision2软件编写单片机的C语言程序、仿真、软件调试。 4、使用PROTEUS软件进行模拟软、硬件调试。

课程设计-密码锁

课程设计课程名称: 设计题目: 专业: 姓名: 学号:

一、设计内容和要求 题目:密码锁 该锁有4个密码拨动开关(设定0和1)来设置密码,一个开箱钥匙孔(能接通电池)。当用钥匙开箱时,如果输入的4位密码正确,箱被打开;否则,电路将发出警报(发光二极管亮表示)。要求锁的密码在第一次使用时能由用户自行进行一次性设定(机械方式)。 具体要求: 1)写出该组合逻辑电路的分析和设计方法; 2)画出电路原理图,标明要使用的芯片。 二、电路设计 1.题目分析 从题目要求来看,该密码锁必须具备以下几个条件: (1).所设置的密码必须为4位,例如1000。 (2).密码错误时,必须发出警报,此时二极管亮。 (3).可以进行密码设定。 2.设计思路 因为每一位密码只有两个状态,即0和1,因此可以用单刀双掷开关结合高低电平来实现密码的设定以及输入,而设定密码与输入密码的比对可以通过异或门来实现。具体可以是4个异或门连接输入端,然后与反向器相连接,再连接4输入与非门,最后连接一个开关,一个500欧姆的限流电阻,一个发光二极管。 3.具体电路 总电路图如下图所示:

开始的8个单刀双掷开关和VCC以及GND部分是密码的设定以及输入部分,期中J2-J5是密码的设定,J6-J9是密码的输入。开关拨到上输入1,开关拨到下输入为0。上图的设定密码为1010,此时输入密码也为1010,密码正确,因此发光二极管不亮。如果输入密码为1011,此时与设定密码不相符,就会发出警报,表现为二极管发光,如下图: 从图可以看出,二极管发出绿光,说明密码错误,需要重新输入。 开关J1与开箱钥匙孔相连接。当用钥匙开箱时,开关J1闭合,电路接通。 如果密码错误二极管就会发光。 4.电路分析 异或门电路的性质:两个引脚输入相同时输出为0,输入相异时输出为1。由此可知,如果设置密码与输入密码相同时,U9A的输出电平为低电平,因此发光二极管不发光。如果设置密码与输入密码不同,则U9A的输出电平为高电平,此时二极管发光。如果J1断开,即不用钥匙开箱,则无论输入是什么,都不可能发光。如果J1接通,即用钥匙开箱,则需要满足输入与设定不同是才会发光。 5.芯片需求 54LS86是一个有4二输入异或门的芯片,引脚图如下:

单片机密码锁实验报告

单片机系统 设计实训报告 专业:生产过程自动化 姓名:李某 班级学号:。。。。。。。。。。。 指导教师:。。。。。。。。 实训期间:。。。。。。。。。。。。。。

目录 一.实验目的: (3) 二.实验要求: (3) 三.实验基本原理: (3) 四.实验设计分析: (4) 1.设计思想: (4) 五.实验要求实现: (5) 1. 电路设计: (5) 2.主流程图: (7) 3.4x4键盘行列式键盘原理电路图: (8) 4. 显示模块 (9) 五.总电路设计如下 (9) 六.程序 (11) 七.实验心得 (16)

一.实验目的: 1.熟悉单片机定时器的编程方法。 2.灵活运用单片机C语言程序中的字符串、数组、指针。 3.熟悉数码显示、LCM1602液晶显示器、YJD12864液晶显示器的编程方法。4.熟悉掌握4x4矩阵键盘的C语言编程。 二.实验要求: 1:用4×4矩阵键盘组成0-f数字键及。 2:可以自行设定或删除8位密码, 3:用8位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则显示PASS,若密码显示错误时,显示ERR. 4:自由发挥其他功能. 5:要求有单片机硬件系统框图,电路原理图,软件流程图。 三.实验基本原理: 这个密码锁的功能是使用矩阵键盘中的十六个键输入密码0到F还有,输入的同时在八位数码管上显示用户所输入的密码,未输入的位置用横杆填补表述未输入。当输入的密码超出设置的位数时,数据溢出,清零。 用8位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码

单片机电子密码锁课程设计

单片机电子密码锁 课程设计 1

基于单片机的电子密码锁设计 一、设计要求和条件 1.1 设计要求 根据单片机开发板所提供的元件特性和硬件电路, 编写相关的程序, 经过实验开发板实现电子密码锁在LCD1602上显示的功能。 1.搭建proteus仿真电路图平台, 模拟单片机要实现的功能; 2.焊接单片机系统开发板; 3.编写程序, 实现密码锁相关功能; 4.下载并调试程序, 实现密码锁的具体功能。 1.2 设计目的 1.熟练掌握KEIL软件的使用方法; 2.熟练掌握PROTEUS软件的使用方法; 3.掌握单片机I/O接口的工作原理; 4.掌握中断系统的工作原理; 5.掌握液晶LCD1602的工作原理及编程方法; 6.掌握蜂鸣器的编程使用; 2

7.掌握行列式键盘的工作原理及编程使用方法; 8.掌握单片机的ISP下载使用方法。 1.3 功能概述 本设计是基于单片机的密码锁设计方案, 根据要求, 给出了该单片机密码锁的硬件电路和软件程序, 同时给出了硬件设计方案、软件流程图、C语言源程序及详细注释等内容, 由于单片机实验板上的矩阵键盘为3*3的, 则规定0-5号键为数字键, 6-8号键为功能键, 其中该密码锁的具体功能介绍如下: (1)按”8”号键则输入密码, 初始密码为012345, 在LCD1602上显示密码值为”******”( 密码是保密的) , 输完6位后键盘就锁定, 在LCD1602上显示密码是否正确, 若输入的密码长度小于6位, 则1602等待密码输入。 (2)若密码输入正确后, 则绿色的发光二极管亮表示开锁, 而且1602上显示”you are right!”, 等待是否修改密码。 (3)密码输入错误时显示”code is wrong”, 接着会给你第二、第三次机会输入密码, 如果三次密码都错误时, 发出”叮咚”的报警声, 且红色报警指示灯不停闪烁, 按复位键清除报警。 3

电子密码锁课程设计报告书

渝州科技职业学院 电子密码锁 院系:电子信息工程学院 专业班级: 11 电管2班 学生:任龙龙 学号: 1102120208 指导教师:何健 指导教师职称:讲师 二O一三年十一月

目录 1 绪论 (3) 1.1电子密码锁简介 (3) 1.2本设计所要实现的目标 (3) 1.3设计方案简介 (3) 2 系统总体方案设计 (4) 2.1设计框图 (4) 2.2设计原理 (4) 3 硬件系统构成 (4) 3.1主要源器件 (4) 3.2电路总体构成 (5) 3.3电源输入电路 (5) 3.4键盘输入电路 (5) 3.5密码存储电路 (6) 3.6复位电路 (6) 3.7晶振电路 (7) 3.8显示电路 (8) 3.9报警电路 (8) 3.10开锁电路 (9) 4 软件系统设计 (10) 4.1主程序流程图 (10) 4.2按键软件设计 (11) 4.3密码设置软件设计 (12) 4.4开锁软件设计 (13) 结论 (15) 参考文献 (15) 附录 (15) 附录1硬件原理图 (15) 附录2 C语言程序 (15)

1 绪论 1.1 电子密码锁简介 电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁。其特点如下: 1) 性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。 2) 密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因 人员的更替而使锁的密级下降。 3) 误码输入保护,当输入密码多次错误时,报警系统自动启动。 4) 无活动零件,不会磨损,寿命长。 5) 使用灵活性好,不像机械锁必须佩带钥匙才能开锁。 1.2 本设计所要实现的目标 本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。密码可以有用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入就的密码,在输入新密码的时候要二次确认,以防止误操作。 1.3 设计方案简介 采用以单片机为核心的控制方案 由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、性,除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度围、有没有低电压检测功能、单片机有无时钟振荡器、有无上电复位功能等。在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。基于以上因素本设计选用单片机80C51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接AT24C02芯片用于密码的存储,外接LCD1602显示器用于显示作用。当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0-9输入密码。密码输完后按下确认键,如果密码输入正确

相关主题
相关文档 最新文档