单片机新型电子锁课程设计报告.docx

上传人:b****6 文档编号:7880006 上传时间:2023-01-26 格式:DOCX 页数:18 大小:192.92KB
下载 相关 举报
单片机新型电子锁课程设计报告.docx_第1页
第1页 / 共18页
单片机新型电子锁课程设计报告.docx_第2页
第2页 / 共18页
单片机新型电子锁课程设计报告.docx_第3页
第3页 / 共18页
单片机新型电子锁课程设计报告.docx_第4页
第4页 / 共18页
单片机新型电子锁课程设计报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

单片机新型电子锁课程设计报告.docx

《单片机新型电子锁课程设计报告.docx》由会员分享,可在线阅读,更多相关《单片机新型电子锁课程设计报告.docx(18页珍藏版)》请在冰豆网上搜索。

单片机新型电子锁课程设计报告.docx

单片机新型电子锁课程设计报告

目录

1引言3

2设计任务和要求4

2.1方案设计与论证4

2.2单元电路设计与参数计算4

2.3设计框图、用户界面(四号宋体加粗)4

3总原理图及主要模块的流程图5

3.1总原理图及元器件清单6

3.2主要流程图7

4性能测试与分析7

5结论与心得8

参考文献8

致谢8

电子锁的设计

摘要:

本报告系统地介绍并演示了设计电子锁的整个流程及设计步骤。

这是单片机汇编语言的一个应用实例,本报告还为每个设计步骤作了详细的解说。

本报告分为5个部分,全面详细地介绍了电子锁的设计过程以及编程方法。

首先介绍了这个方案的设计任务要求;接着介绍了电子锁的总原理图和主要模块流程图;然后介绍了电子锁的性能测试与分析;最后是我自己的设计结论与设计心得。

本设计报告内容较全面,结构紧凑,适合51系列单片机的初学者学习如何设计电子锁。

关键字:

单片微型计算机;汇编语言;程序设计;电子锁

1引言

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。

单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:

中央处理器、存储器和I/O接口电路等。

因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。

单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。

8051单片机是当前国内外工业测控领域内使用很广泛的一类8位数控制器,它的特点是使用方便、灵活,外围硬件支持十分丰富,世界许多大的半导体生产厂商,如Atmel、Dallas、TI等公司都推出了具有各自特点的增强型8051系列单片机,使用户有了更大的选择空间。

此外,世界上有许多软件公司致力于8051单片机高级编程语言的开发。

汇编语言具有运算效率高、占用存储空间小、实时性强、执行速度快等优点,能直接管理和控制存储器及硬件接口,充分发挥硬件的作用。

掌握了汇编语言,就可以更好地理解高级编程语言。

本文注重实践和理论相结合,按照单片机初学者的学习过程,由浅入深逐步讲解了设计电子锁的整个设计过程及应用到的编程软件。

整个设计报告工分为5个部分,各部分的安排如下:

第一部分:

是设计电子锁的背景及目的;

第二部分:

介绍了这个方案的设计任务要求;

第三部分:

介绍了电子锁的总原理图和主要模块流程图;

第四部分:

介绍了电子锁的性能测试与分析;

第五部分:

是我自己的设计结论与设计心得。

2设计任务和要求

设计任务是利用开发板设计一个电子锁;

设计要求:

自己在自己电脑上写好要连接的电子锁的程序,再在实验室里将已经调试成功的电子锁的程序下载到开发板上,观察并记录开发板上的等的运行情况;如果不是如预期那样运行,要找出原因并进行调试,最后对自己的实验设计进行验收。

2.1方案设计与论证

本课程设计使用设计电子锁的这个方案的原因是:

这是我们汇编语言的第一次课程设计,而电子锁,这个方案不会很难设计,还能让我们体验软件编程的是如何与实际(开发板)联系的,更能让我们学到并运用汇编语言。

由于其结构简单、传统机械锁常常强迫打开。

有许多种类的电子门锁的性能和安全性已经超过了机械锁。

由于具有较高的机密性和弹性,许多用户使用电子门锁。

对这套方案理解得较为透彻。

所以,我才选择了设计电子锁的这个设计方案。

2.2单元电路设计与参数计算

图2.2-1电子锁的电路图

如图2.2-1所示,这是我设计的电子锁的电路图。

2.3设计框图、用户界面

在这里,我将提供我所设计的电子锁的设计框图如下:

下图是在制作PCB板时所画的电路原理图:

2.3-2电子锁的电路原理图

下图为已完成的PCB板设计:

2.3-3电子锁的PCB板设计

3.1总原理图及元器件清单

图3.1-2硬件连接图

 

如图所示,图3.1-1是总原理图,图3.1-2是根据总原理图连接好的硬件连接图,图3.1-3是设计电子锁的原件清单图。

按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。

AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,具有丰富的内部资源:

4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。

因此,本电子锁实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、开关、电源等电路和必要的软件组成的单个单片机。

其具体硬件组成如图3所示。

3.2主要流程图

图3.2-1电子锁的设计流程图

如图所示,图3.2-1图4是课程设计——电子锁设计的主要流程图。

4性能测试与分析

 单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到电子锁工作的现象,我们还需要告诉单片机怎么来进行工作,即编写程序控制单片机来实现电子锁的功能。

软件编程是单片机应用系统中的一个重要的组成部分,是单片机学习的重点和难点。

下面我们以简单的控制功能即实现电子锁的软件编程方法。

    

程序如下:

RSBITP2.7

RWBITP2.6

EBITP2.5

ENTERBIT22H.0

L1BITP3.0

OPENBITP3.6

SPEAKBITP3.7

PASSBUFEQU40H

KEYNUMBEREQU41H;存放识别后的按键号

ORG0000H

AJMPMAIN

ORG0003H

JMPKEY_INT

ORG000BH

AJMPINTT0

ORG001BH

AJMPINTT1

ORG0030H

MOVA,#01H

MOVP3,A

RET

;==========主程序开始==============

MAIN:

MOV30H,#06H;输入密码为6位最高只可设15位

MOV42H,#200;设定报警的时间,42H单元里的数*50MS

MOV43H,#250;设定开门时间14的倍数(实际上液晶显示器执行指令占用了时间,开门时间会比14*250MS大)

;44H号单元存放输入错误的次数

;45H为定时器0中断次数

;46H为定时器1中断次数

MOV47H,#250;输入密码时间设定,50MS倍数

MOVSP,#60H

CLROPEN

CLRSPEAK;初始化输出设备

CLRENTER;标志位初始化

MOVTMOD,#11H;定时器工作方式2

MOVTH0,#3CH;初值50MS

MOVTL0,#0BH

MOVTH1,#3CH

MOVTL1,#0BH

SETBEA

SETBET0

SETBET1

MOVTCON,#00000000B;电平触发

START:

MOVR0,30H

MOVR1,#31H

SS1:

MOV@R1,#00H

INCR1

DJNZR0,SS1;将输入密码缓冲单元清零

MOVP1,#0FH;初始化按键口

MOVR1,#31H;从31号单元开始存放按建输入的密码

CLR20H;报警标志清零

CLR21H;密码超时标志

MOV46H,#00H;超时后对定时器中断次数清零,便于下一轮重新计时

INIT:

ACALLSELLCD;设定液晶工作方式

ACALLLINE1;在第一行显示

MOVDPTR,#MES_P;显示请输入密码

ACALLDISPLAY

setbEX0;开中断,允许键盘输入

KEYIN:

JB21H,ERR;超时转到错误程序

JNBENTER,KEYIN;等待ENTER按下

CLRENTER

clrEX0;密码输入完后锁定键盘

;当使用边沿触发时用上面的指令为什么禁止不了中断?

?

?

;==========密码判断程序============

COMP:

MOVDPTR,#PASS

MOVR4,30H;密码的长度

MOVA,#0

MOVR1,#31H

LOOP:

MOVR5,A

MOVCA,@A+DPTR

MOVPASSBUF,A;取出系统设定的密码

MOVA,@R1;从31号单元开始取出输入的密码

CJNEA,PASSBUF,ERR;比较

MOVA,R5

INCA

INCR1;取下一位

DJNZR4,LOOP

;正确

MATCH:

MOVA,#01H

ACALLENABLE;清屏,光标复位

ACALLLINE1;从第一行开始显示

MOVDPTR,#MES_C

ACALLDISPLAY;显示"请进"

ACALLLINE2

MOVDPTR,#TAB_1

ACALLDISPLAY

SETBOPEN;开门

MOV44H,#00H;输入错误次数清零

MOVR6,43H

ACALLDELAY

CLROPEN;复位

JMPSTART

;错误

ERR:

ACALLBACK

MOVR6,#03H

ACALLDELAY

ACALLBACK;输错提示音,鸣两下

MOVA,#01H

ACALLENABLE

ACALLLINE1

MOVDPTR,#MES_E

ACALLDISPLAY;显示错误

MOVR6,#40H

ACALLDELAY

INC44H

EE0:

JCERROUT;输错不到三次返回

MOV44H,#00H;清零

ACALLWRANING;报警

ERROUT:

JMPSTART

;===========按键中断服务程序==========

KEY_INT:

pushacc

pushpsw

clrex0

acalldelay10ms;延时消抖

SETBTR1;启动定时器

ACALLSMKEY;按键识别

MOVA,KEYNUMBER;返回按键号

ACALLBACK;按键发声

MOVR3,A

CJNER3,#0BH,K1;ENTER是否按下

SETBENTER

clrtr1;按下确认后关毕定时器

mov46h,#00h;对中断次数清零

AJMPKEY_RTN

K1:

ADDA,#30H;将按键号转换为ASCⅡ码

MOV@R1,A;将输入的密码存入缓冲单元

INCR1;修改地址

ACALLWRDATA;输入一位显示一个"*"

KEY_RTN:

poppsw

popacc

setbex0

RETI

;===========按键识别程序==========

SMKEY:

MOVA,P1

ANLA,#0FH

WKEY:

MOVB,A;反转法查询

MOVP1,#0F0H

NOP

MOVA,P1

ANLA,#0F0H

ORLA,B

MOVP1,#0FH;还原P1口初态

CJNEA,#0EEH,WKEY1

MOVKEYNUMBER,#00H

AJMPRETURN

WKEY1:

CJNEA,#0EDH,WKEY2

MOVKEYNUMBER,#01H

AJMPRETURN

WKEY2:

CJNEA,#0EBH,WKEY3

MOVKEYNUMBER,#02H

AJMPRETURN

WKEY3:

CJNEA,#0E7H,WKEY4

MOVKEYNUMBER,#03H

AJMPRETURN

WKEY4:

CJNEA,#0DEH,WKEY5

MOVKEYNUMBER,#04H

AJMPRETURN

WKEY5:

CJNEA,#0DDH,WKEY6

MOVKEYNUMBER,#05H

AJMPRETURN

WKEY6:

CJNEA,#0DBH,WKEY7

MOVKEYNUMBER,#06H

AJMPRETURN

WKEY7:

CJNEA,#0D7H,WKEY8

MOVKEYNUMBER,#07H

AJMPRETURN

WKEY8:

CJNEA,#0BEH,WKEY9

MOVKEYNUMBER,#08H

AJMPRETURN

WKEY9:

CJNEA,#0BdH,WKEY10

MOVKEYNUMBER,#09H

AJMPRETURN

WKEY10:

CJNEA,#0BbH,WKEY11

MOVKEYNUMBER,#0AH

AJMPRETURN

WKEY11:

CJNEA,#0B7H,RETURN

MOVKEYNUMBER,#0BH;判断哪个键按下,返回相应按键号码

RETURN:

MOVP1,#0FH

NOP

NOP

MOVA,P1

CPLA

ANLA,#0FH

JNZRETURN;等待按键松开

SETBOPEN;开门

ACALLDELAY2s

CLROPEN

ACALLDELAY2s

RET

;==========液晶工作方式设置============

SELLCD:

MOVA,#01H;清屏,光标复位

ACALLENABLE

MOVA,#38H;设置显示模式,8位两行,5*7点阵

ACALLENABLE

MOVA,#0DH;显示器开,允许内烁

ACALLENABLE

MOVA,#06H;文字不动,光标右移

ACALLENABLE

RET

;==========液晶执行指令============

ENABLE:

CLRRS

CLRRW;RS,RW同为低电平时写入指令

MOVP0,A

CLRE;E由高变低时执行指令

ACALLWAIT

SETBE

RET

;==========WAIT============

;判断液晶是否忙的子程序

WAIT:

MOVP0,#0FFH

CLRRS

SETBRW;RW为高,RS为低时可读忙信号

CLRE

NOP

SETBE

JBP0.7,WAIT

RET

;==========显示的起始地址============

;在第一行

LINE1:

MOVA,#80H

ACALLENABLE

RET

;在第二行

LINE2:

MOVA,#0C0H

ACALLENABLE

RET

;===========显示程序============

DISPLAY:

MOVR7,#00H

NEXT:

MOVA,R7

MOVCA,@A+DPTR

CJNEA,#10H,DSP

RET

DSP:

ACALLWRDATA

INCR7

AJMPNEXT

;==========将A里面的数据写入液晶============

WRDATA:

SETBRS

CLRRW

MOVP0,A

CLRE

ACALLWAIT

SETBE

RET

;===========报警程序============

WRANING:

SETBTR0

ACALLBACK

MOVR4,#00H

ACALLD2

JNB20H,WRANING

RET

;===========发声程序============

BACK:

MOVR0,#100

KK1:

CPLSPEAK

LCALLDELAY2MS

DJNZR0,KK1;不断取反P2.0使其产生一定频率的方波推动扬声器

RET;延时的长短可以改变输出的频率

;===========INTT0============

;报警时间设定

INTT0:

PUSHACC

PUSHPSW

MOVTH0,#3CH

MOVTL0,#0BH

INC45H

MOVA,45H

CJNEA,42H,INTT0OUT

MOV45H,#00H

SETB20H;置标志位

CLRTR0;关闭定时器

INTT0OUT:

POPPSW

POPACC

RETI

;===========INTT1============

;输入超时

INTT1:

PUSHACC

PUSHPSW

INC46H

MOVA,46H

CJNEA,47H,INTT1OUT

CLRTR1;关闭定时器

SETB21H;时间到置标志位

MOV47H,#00H;中断次数清零

INTT1OUT:

POPPSW

POPACC

RETI

;===========延时程序============

DELAY:

MOVR4,#38H

D1:

MOVR5,#0F9H

DJNZR5,$

DJNZR4,D1

DJNZR6,DELAY;14R6毫秒

RET

DELAY2MS:

MOVR4,#02H

D2:

MOVR5,#0F0H

DJNZR5,$

DJNZR4,D2

RET

DELAY10ms:

MOVR4,#20

D3:

MOVR5,#248

DJNZR5,$

DJNZR4,D3

RET

DELAY2s:

MOVR4,#100

D4:

MOVR5,#248

DJNZR5,$

DJNZR4,D4

RET

PASS:

DB"233228"

MES_P:

DB"Password?

",10H

MES_C:

DB"welcome!

",10H

MES_E:

DB"Error!

",10H

TAB_1:

DB"bo-booffice",10h

END

5结论与心得

当上述程序编写好以后,我们需要使用编译软件对其编译,得到单片机所能识别的二进制代码,然后再用编程器将二进制代码烧写到AT89C51单片机中,最后连接好电路通电,我们就看到LED1~LED8的“电子锁”效果了。

这次数电课程设计,虽然短暂但是让我得到多方面的提高:

1、提高了我们的逻辑思维能力,使我们在逻辑电路的分析与设计上有了很大的进步。

加深了我们对组合逻辑电路与时序逻辑电路的认识,进一步增进了对一些常见逻辑器件的了解。

另外,我们还更加充分的认识到,数字电路这门课程在科学发展中的至关重要性2,查阅参考书的独立思考的能力以及培养非常重要,我们在设计电路时,遇到很多不理解的东西,有的我们通过查阅参考书弄明白,有的通过网络查到,但由于时间和资料有限我们更多的还是独立思考。

3,相互讨论共同研究也是很重要的,经常出现一些问题,比如电路设计中的键盘电路的设计,开始并不理解键盘电路的原理,但是和其他的专业同学讨论后,理解了分键盘电路的基本原理后,很快的设计了电路原理图。

 

参考文献

[1]何立民.MCS-51系列单片机应用系统设计.北京:

北京航空航天大学出版社,1990.

《单片机课程设计指导》北京航天航空大学出版社2002

《基于MCS-51系列的单片机原理的应用设计》国防工业出版社1999

致谢

在这次课程设计的撰写过程中,我得到了许多人的帮助。

首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。

在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。

其次,我要感谢帮助过我的同学,他们也为我解决了不少我不太明白的设计商的难题。

同时也感谢学院为我提供良好的做课程设计的环境。

虽然一开始是说独立完成设计,可是我发现,最后个人还是离不开集体,最后再一次感谢所有在设计中曾经帮助过我的良师益友。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1