单片机课程设计报告电子密码锁.docx
《单片机课程设计报告电子密码锁.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告电子密码锁.docx(27页珍藏版)》请在冰点文库上搜索。
单片机课程设计报告电子密码锁
课程设计报告
课程名称:
单片机原理与接口技术课程设计
设计题目:
电子密码锁
院系:
机电工程学院
班级:
2012级电气工程及其自动化专业
姓名:
学号:
指导教师:
史丽萍张扬王冠然
设计时间:
2014年12月8日
出勤
实物
报告
总分
目录
绪论1
(1)设计所要实现的目标1
(2)设计方案简介1
一、主要元器件介绍2
1.1PIC单片机2
1.2键盘输入电路2
1.3报警电路3
二、设计电子密码锁4
2.1电子密码锁的原理图及工作原理4
2.2结果图片5
三、设计心得及学习体会6
参考文献7
附录:
密码锁程序7
绪论
(1)本设计所要实现的目标
本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误有提示。
(2)设计方案简介
采用以单片机为核心的控制方案
一般来说在选取单片机时从下面几个方面考虑:
性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还有一些最基本的比如:
中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。
在开发过程中单片机还受到:
开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。
基于以上因素本设计选用单片机PIC16F887作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。
在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD显示器用于显示作用。
当用户需要开锁时,先按键盘开锁键之后按键盘的按键。
密码输完后按下确认键,如果密码输入正确则开锁,不正确显示密码错误重新输入密码,直到输入正确密码。
第一章主要元器件介绍
1.1:
PIC单片机
单片机是一块芯片上集成了中央处理器单元,数据存储器,程序存储器、输入输出和定时器/计数器等部件的一台小型计算机。
随着芯片集成度的提高,单片机的功能得以迅速的扩充,特别是PIC单片机,增加了许多强大的外围模块,从而给用户极大地便利。
PIC单片机有如下特点:
1、哈佛总线结构;2、RISC技术;3、指令特色;4、功耗低;5、驱动能力强;6、同步串行数据传送方式;7、应用界面友好、开发方便;8、程序存储器版本及齐全。
简介我们所使用的PIC16F887
PIC16F887的主要功能:
它有2个CCP模块,即捕捉,比较,脉宽调制模块;
1个同步串行接口,SPI与12C
1个通用同步/异步串行通信接口USART;
1个并行从动口;
上电复位(POR);
掉电复位(BOR);
低功耗睡眠工作方式;
14路10位AD转换器;
2个模拟电压比较器;
1个参考电压发生器;
8级硬件堆栈
可擦写10万次的FLASH程序储存器
可擦写100万次的EEPROM,其数据保持40年以上;
可自编程及在线编程
看门狗电路WDT
程序代码保护
1.2:
键盘输入电路
由于本设计所用到的按键数量较多而不适合用独立按键式键盘。
采用的是矩
阵按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。
本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。
键盘的每个按键功能在程序设计中设置。
其大体功能(看键盘按键上的标记)及与单片机引脚接法见图1-1
图1-1键盘输入原理图
1.3:
报警电路
报警部分由陶瓷压电发声装置及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入错误时,单片机的P2.1引脚为低电平,三极管T3导喇叭发出噪鸣声报警。
见图1-2。
图1-2报警电路原理图
第二章设计电子密码锁
2.1:
电子密码锁的原理图及工作原理
如图2-1为主程序流程图,开始接上电源,程序进行初始化设置,然后在键盘上输入密码,按下确定键,此系统进行键盘扫描,密码正确,开锁成功(如图2-2),若输入错误密码,按下确定键,蜂鸣器有蜂鸣,LED灯亮(如图2-3)。
然后启动程序,进行保护,再次在键盘上输入密码,系统进行扫描,如果和之前一样,则执行相同程序,如不是,则执行另一种程序。
图2-1主程序流程
图2-2密码输入正确
图2-3密码输入错误
第三章:
设计心得及学习体会
这次课程设计基本实现了我们预计的设计目标,电子密码锁在输入对的密码的情况下,可以进入。
在输入错误密码的情况下,蜂鸣器响,小灯闪烁。
通过这次课程设计,无论从选题到定稿,从理论到实践都使我学到了很多东西,它不仅巩固了以前我们所学过的知识,而且学到了很多在书本上所没有学到过的知识。
同时也明白了理论与实践相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在整个课程设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。
而且大大提高了动手的能力。
最后,无论如何都要好好的感谢指导老师的帮助,在整个课程设计过程中,几乎每一个程序的设计成功都离不开老师的指导和帮助。
在老师的辛勤指导之下,学到了很多有用的经验和使用的知识。
而且还得感谢身边同学的帮助和交流,在互相帮助和交流的过程中能够学到很多很有创意的编程思想,更加扩宽了自己的思想。
参考文献
1:
李 明,毕万新.单片机原理与接口技术.大连理工大学出版社,2009.
2:
李荣正,刘启中,陈学军.PIC单片机原理及应用.北京航空航天大学出版社,2005.1
3:
周 坚.单片机项目教程.北京航空航天大学出版社,2008.
4:
胡 健.单片机原理与接口技术实践教程.机械工业出版社,2004.
附录:
密码锁程序
listp=16f887;listdirectivetodefineprocessor
#include;processorspecificvariabledefinitions
__CONFIG_CONFIG1,_LVP_OFF&_IESO_OFF&_BOR_OFF&_PWRTE_ON&_WDT_OFF&_XT_OSC
;*****VARIABLEDEFINITIONS
w_tempEQU0x71
status_tempEQU0x72
NUM1EQU0x20
NUM2EQU0x21
GEEQU0x22
SHIEQU0x23
BAIEQU0x24
QIANEQU0x25
YUSHUEQU0x26
SHANGEQU0x27
KB_TEMPEQU0x28
S1EQU0x29
;地址0X30不可占用!
!
!
!
!
!
!
!
!
!
!
!
!
S2EQU0x3A
S3EQU0x3B
S4EQU0x3C
COUNTEREQU0x3D
COUNTER1EQU0x3E
;**********************************************************************
ORG0x000
clrfPCLATH
gotoMAIN
ORG0x004
movwfw_temp
movfSTATUS,w
movwfstatus_temp
movfstatus_temp,w
movwfSTATUS
swapfw_temp,f
swapfw_temp,w
retfie
MAIN
BSFSTATUS,RP1
BSFSTATUS,RP0
CLRFANSEL
CLRFANSELH
BCFSTATUS,RP1
BCFSTATUS,RP0
;******************************************************************************
BSFSTATUS,RP0
CLRFTRISB;蜂鸣器,数码管位选设置为输出
CLRFTRISD;数码管段选,设置为输出
CLRFTRISE;发光二极管设置为输出
MOVLWb'11110000'
MOVWFTRISC
BCFSTATUS,RP0
MOVLW0xFF
MOVWFPORTB;位选初始化1(关),蜂鸣器初始化1(关)
MOVWFPORTD;段选1(关)
MOVWFPORTE;二极管1(关)
BSFPORTC,0
BSFPORTC,1
BSFPORTC,2
BSFPORTC,3
;--------------------------------------初始化定义-------------------------------
RESET0
MOVLW.14
MOVWFGE
MOVWFSHI
MOVWFBAI
MOVWFQIAN
MOVWFCOUNTER1
CLRFCOUNTER
MOVLW.3
MOVWFS4
MOVLW.9
MOVWFS3
MOVLW.4
MOVWFS2
MOVLW.0
MOVWFS1
MOVLW0XFF
MOVWFPORTE
BSFPORTB,5
;------------------------------------主程序-------------------------------------
ZHUCALLSMXS
;CALLCALC1
;CALLCALC2
CALLKMS1
;CLRFPORTE
;MOVFCOUNTER,W
;MOVWFGE
;MOVWFCOUNTER1
;MOVFCOUNTER1,W
;MOVWFGE
CALLWPD
GOTOZHU
;-------------------------------------子程序------------------------------------
CHABIAOADDWFPCL,F
RETLW0xC0;0
RETLW0xF9;1
RETLW0xA4;2
RETLW0xB0;3
RETLW0x99;4
RETLW0x92;5
RETLW0x82
RETLW0xF8
RETLW0x80
RETLW0x90
RETLW0x7F
RETLW0x86
RETLW0x8E
RETLW0x89
RETLW0xFF
SPDMOVFGE,W
SUBWFS1,W
BTFSSSTATUS,Z
GOTOSPD2
MOVFSHI,W
SUBWFS2,W
BTFSSSTATUS,Z
GOTOSPD2
MOVFBAI,W
SUBWFS3,W
BTFSSSTATUS,Z
GOTOSPD2
MOVFQIAN,W
SUBWFS4,W
BTFSSSTATUS,Z
GOTOSPD2
CLRFPORTE
CALLSPD1
RETURN
SPD1
MOVLW.14
MOVWFGE
MOVWFSHI
MOVWFBAI
MOVWFQIAN
MOVWFCOUNTER1
CLRFCOUNTER
RETURN
SPD2BCFPORTB,5
CALLSPD1
RETURN
WPDMOVFCOUNTER,W
SUBLW.4
BTFSSSTATUS,Z
GOTOHEHE1
GOTOGEX
HEHE1MOVFCOUNTER,W
SUBLW.3
BTFSSSTATUS,Z
GOTOHEHE2
GOTOSHIX
HEHE2MOVFCOUNTER,W
SUBLW.2
BTFSSSTATUS,Z
GOTOHEHE3
GOTOBAIX
HEHE3MOVFCOUNTER,W
SUBLW.1
BTFSSSTATUS,Z
RETURN
GOTOQIANX
;CALLRESET0
GEXMOVFCOUNTER1,W
MOVWFGE
RETURN
SHIXMOVFCOUNTER1,W
MOVWFSHI
RETURN
BAIXMOVFCOUNTER1,W
MOVWFBAI
RETURN
QIANXMOVFCOUNTER1,W
MOVWFQIAN
RETURN
SMXSMOVFGE,w;数码管扫描显示程序
CALLCHABIAO
MOVWFPORTD
BCFPORTB,1
CALLDELAY
BSFPORTB,1
MOVFSHI,w
CALLCHABIAO
MOVWFPORTD
BCFPORTB,2
CALLDELAY
BSFPORTB,2
MOVFBAI,w
CALLCHABIAO
MOVWFPORTD
BCFPORTB,3
CALLDELAY
BSFPORTB,3
MOVFQIAN,w
CALLCHABIAO
MOVWFPORTD
BCFPORTB,4
CALLDELAY
BSFPORTB,4
RETURN
KMS1MOVLW.0
MOVWFPORTC
MOVLW0xF0
ANDWFPORTC,W
SUBLW0xF0
BTFSCSTATUS,Z
RETURN
CALLDELAY1
CALLDELAY1
CALLDELAY1
MOVLW.0
MOVWFPORTC
MOVLW0xF0
ANDWFPORTC,W
SUBLW0xF0
BTFSCSTATUS,Z
RETURN
MOVLW0xFE
MOVWFPORTC
RB0BTFSCPORTC,4
GOTORB1
callDELAY1
BTFSCPORTC,4
GOTORB1
PP0CALLSMXS
BTFSSPORTC,4
GOTOPP0
callDELAY1
BTFSSPORTC,4
GOTOPP0
GOTOJIAN1
RB1BTFSCPORTC,5
GOTORB2
callDELAY1
BTFSCPORTC,5
GOTORB2
PP1CALLSMXS
BTFSSPORTC,5
GOTOPP1
callDELAY1
BTFSSPORTC,5
GOTOPP1
GOTOJIAN2
RB2BTFSCPORTC,6
GOTORB3
callDELAY1
BTFSCPORTC,6
GOTORB3
PP2CALLSMXS
BTFSSPORTC,6
GOTOPP2
callDELAY1
BTFSSPORTC,6
GOTOPP2
GOTOJIAN3
RB3BTFSCPORTC,7
GOTOHEHE
callDELAY1
BTFSCPORTC,7
GOTOHEHE
PP3CALLSMXS
BTFSSPORTC,7
GOTOPP3
callDELAY1
BTFSSPORTC,7
GOTOPP3
GOTOJIAN4
HEHEMOVLW0xFD
MOVWFPORTC
RB5BTFSCPORTC,4
GOTORB6
callDELAY1
BTFSCPORTC,4
GOTORB6
PP5CALLSMXS
BTFSSPORTC,4
GOTOPP5
callDELAY1
BTFSSPORTC,4
GOTOPP5
GOTOJIAN5
RB6BTFSCPORTC,5
GOTORB7
callDELAY1
BTFSCPORTC,5
GOTORB7
PP6CALLSMXS
BTFSSPORTC,5
GOTOPP6
callDELAY1
BTFSSPORTC,5
GOTOPP6
GOTOJIAN6
RB7BTFSCPORTC,6
GOTORB8
callDELAY1
BTFSCPORTC,6
GOTORB8
PP7CALLSMXS
BTFSSPORTC,6
GOTOPP7
callDELAY1
BTFSSPORTC,6
GOTOPP7
GOTOJIAN7
RB8BTFSCPORTC,7
GOTOHAHA
callDELAY1
BTFSCPORTC,7
GOTOHAHA
PP8CALLSMXS
BTFSSPORTC,7
GOTOPP8
callDELAY1
BTFSSPORTC,7
GOTOPP8
GOTOJIAN8
HAHAMOVLW0xFB
MOVWFPORTC
RB9BTFSCPORTC,4
GOTORB10
callDELAY1
BTFSCPORTC,4
GOTORB10
PP9CALLSMXS
BTFSSPORTC,4
GOTOPP9
callDELAY1
BTFSSPORTC,4
GOTOPP9
GOTOJIAN9
RB10BTFSCPORTC,5
GOTORB11
callDELAY1
BTFSCPORTC,5
GOTORB11
PP10CALLSMXS
BTFSSPORTC,5
GOTOPP10
callDELAY1
BTFSSPORTC,5
GOTOPP10
GOTOJIAN10
RB11BTFSCPORTC,6
GOTORB12
callDELAY1
BTFSCPORTC,6
GOTORB12
PP11CALLSMXS
BTFSSPORTC,6
GOTOPP11
callDELAY1
BTFSSPORTC,6
GOTOPP11
GOTOJIAN11
RB12BTFSCPORTC,7
GOTOHOHO
callDELAY1
BTFSCPORTC,7
GOTOHOHO
PP12CALLSMXS
BTFSSPORTC,7
GOTOPP12
callDELAY1
BTFSSPORTC,7
GOTOPP12
GOTOJIAN12
HOHOMOVLW0xF7
MOVWFPORTC
RB13BTFSCPORTC,4
GOTORB14
callDELAY1
BTFSCPORTC,4
GOTORB14
PP13CALLSMXS
BTFSSPORTC,4
GOTOPP13
callDELAY1
BTFSSPORTC,4
GOTOPP13
GOTOJIAN13
RB14BTFSCPORTC,5
GOTORB15
callDELAY1
BTFSCPORTC,5
GOTORB15
PP14CALLSMXS
BTFSSPORTC,5
GOTOPP14
callDELAY1
BTFSSPORTC,5
GOTOPP14
GOTOJIAN14
RB15BTFSCPORTC,6
GOTORB16
callDELAY1
BTFSCPORTC,6
GOTORB16
PP15CALLSMXS
BTFSSPORTC,6
GOTOPP15
callDELAY1
BTFSSPORTC,6
GOTOPP15
GOTOJIAN15
RB16BTFSCPORTC,7
RETURN
callDELAY1
BTFSCPORTC,7
RETURN
PP16CALLSMXS
BTFSSPORTC,7
GOTOPP16
callDELAY1
BTFSSPORTC,7
GOTOPP16
GOTOJIAN16
RETURN
JIAN1INCFCOUNTER
MOVLW.1
MOVWFCOUNTER1
RETURN
JIAN2INCFCOUNTER
MOVLW.2
MOVWFCOUNTER1
RETURN
JIAN3INCFCOUNTER
MOVLW.3
MOVWFCOUNTER1
RETURN
JIAN4CALLSPD
RETURN
JIAN5INCFCOUNTER
MOVLW.4
MOVWFCOUNTER1
RETURN
JIAN6INCFCOUNTER
MOVLW.5
MOVWFCOUNTER1
RETURN
JIAN7INCFCOUNTER
MOVLW.6
MOVWFCOUNTER1
RETURN
JIAN8GOTORES