单片机课设电子密码锁.docx
- 文档编号:28072071
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:28
- 大小:160.86KB
单片机课设电子密码锁.docx
《单片机课设电子密码锁.docx》由会员分享,可在线阅读,更多相关《单片机课设电子密码锁.docx(28页珍藏版)》请在冰豆网上搜索。
单片机课设电子密码锁
课程设计报告
课程名称:
单片机原理与接口技术课程设计
设计题目:
电子密码锁
院系:
机电工程学院
班级:
2012级电气工程及其自动化专业
姓名:
学号:
指导教师:
设计时间:
2014年12月8日
出勤
实物
报告
总分
目录
前言1
第一章设计构思1
第二章硬件设计1
2.1电路原理图1
2.2硬件图3
第三章一级标题4
3.1二级标题4
3.2程序设计构思5
3.3程序编译5
3.4程序运行实物图6
第四章心得与体会7
参考文献9
附录:
电子密码锁程序10
前言
在这个科技日新月异的时代,电子密码锁已经不是一个陌生的话题。
为了更好的将单片机理论应用于实际,针对本次单片机课程设计,我们小组做了一个简易的电子密码锁。
以下是我们设计的电子密码锁的电路原理图、程序部分以及在实验过程中我的心得与体会。
第一章设计构思
本次单片机课程设计我和我的队友决定做一个简易的密码锁,具体要求如下:
十个数字键输入密码,密码设置为四位,将输入的四位数字与寄存器存放的四位数字(即初始密码)做对比,若两组数字一致,密码正确,红灯亮;若密码错误,则蜂鸣器响报警。
第二章硬件设计
2.1电路原理图
经过我和我的队友的研究,我们所设计的电子密码锁共需要十二个按键,分别是十个数字键、一个“确定”键、一个“取消”键,针对实际情况,我们将原理图做了如下改动:
2.2硬件图
第三章程序编译
3.1程序流程图
3.2程序设计构思
采用汇编语言编写程序,程序由主程序及若干子程序组成。
定义端口及初始化时,RC0、RC1、RC2设置为输出端口,RC3、RC4、RC5、RC7设计为输入端口。
定义好各模块、端口并初始化后,进行数码管显示扫描,按下按键后,判断哪个键按下,数码管显示按下的数字键,只有在四位数字按完后再判断确认键是否按下,如果确认键按下,将输入的四位数字与寄存器存放的四位数字(即初始密码)做对比,若两组数字一致,密码正确,红灯亮;若密码错误,则蜂鸣器响报警。
子程序主要包含键盘扫描程序、比较程序。
延时程序、数码管显示程序、发光二极管程序。
在键盘扫描程序中为了避免因为键盘抖动而造成的输入错误我们特别加入了键盘消除抖动程序。
3.3程序编译
编译的程序见附录。
2.3程序运行实物图
第四章心得与体会
通过此次单片机课程设计的实践,我学到了不少课本上学不到的知识。
首先在设计电路图及焊接电路板方面,我们就遇到了小许问题,例如如何区分三极管的三个极、如何合理美观的排版,经过我们两人的激烈争论及向老师和同学请教终于解决了这些问题。
此时我们满以为硬件没问题了就开始设计程序,程序设计是此次课程设计中最困难的部分。
刚开始我们只是照着书上的程序运用,发现程序根本无法按预料进行。
随后经过XX我们才知道,按键在按下的时候由于存在抖动,所以按下一次之后可能抖动了多次而使按键出现问题,随后我们为程序的键盘扫描部分加入了消除抖动的程序。
通过将输入的四位数字与寄存器存放的四位数字(即设定的密码)作比较,我们设计出来了这个简易的密码锁程序。
但是在烧写程序时,我们又发现了新的问题,按下按键数码管无反应。
因为已经检测过了数码管的焊接没问题,所以我们重点检测了键盘焊接部分。
用万用表检测后我们才发现是RC5端口出现了虚焊现象,排除错误后我们的软件终于能够正常运行。
课程设计刚开始时,我们组经过反复讨论决定选择这个题目。
毕竟课程设计不同于之前的实验课,电路图都要自己设计。
静下心来,仔细分析题目,再加上指导老师的详细的说明与提示,心中才有了谱。
将整个系统根据不同的功能化分成模块,大概画出流程图,再分别进行设计,最后将其整合即可。
回顾起这一次的课程设计,至今我仍感慨颇多。
在这段日子里,从理论到实践,可以说得是苦多于甜,但是我还是可以学到了很多的内容,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从而提高自己的实际动手能力和独立思考的能力。
我在设计的过程中也遇到了不少的问题,可以说得是困难重重,但可喜的是最终都得到了解决。
实验过程中,也对我们组员的合作能力进行了考察果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。
此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。
在此我非常感谢我的指导老师们,感谢老师们从一开始就耐心的安排我们的进度,和之后多次提醒我们一些重要的注意事项,以及让我对单片机原理这门课程有了更深刻的认识,让我对独立做课程设计有了信心,同时我还要感谢我的同组的同学们,感谢他们的努力和配合,这次课程设计才能顺利完成。
参考文献
1、PIC单片机原理及应用(第2版)北京航空航天大学出版社
2、PIC系列单片机接口技术及应用系统设计北京航空航天大学出版社
3、单片机原理及应用重庆大学出版社
附录:
电子密码锁程序
;Filename:
xxx.asm
;Date:
;FileVersion:
;Author:
;Company:
;Filesrequired:
;Notes:
listp=16f887;listdirectivetodefineprocessor
#include
__CONFIG_CONFIG1,_LVP_OFF&_IESO_OFF&_BOR_OFF&_PWRTE_ON&_WDT_OFF&_XT_OSC
;*****VARIABLEDEFINITIONS
w_tempEQU0x71;variableusedforcontextsaving
status_tempEQU0x72;variableusedforcontextsaving
NUM1EQU0x20
NUM2EQU0x21
GEEQU0x22
SHIEQU0x23
BAIEQU0x24
QIANEQU0x25
YUSHUEQU0x26
SHANGEQU0x27
KB_TEMPEQU0x28
S1EQU0x29
;地址0X30不可占用!
!
!
!
!
!
!
!
!
!
!
!
!
S2EQU0x3A
S3EQU0x3B
S4EQU0x3C
COUNTEREQU0x3D
COUNTER1EQU0x3E
ORG0x000;processorresetvector
clrfPCLATH;ensurepagebitsarecleared
gotoMAIN;gotobeginningofprogram
ORG0x004;interruptvectorlocation
movwfw_temp;saveoffcurrentWregistercontents
movfSTATUS,w;movestatusregisterintoWregister
movwfstatus_temp;saveoffcontentsofSTATUSregister
movfstatus_temp,w;retrievecopyofSTATUSregister
movwfSTATUS;restorepre-isrSTATUSregistercontents
swapfw_temp,f
swapfw_temp,w;restorepre-isrWregistercontents
retfie;returnfrominterrupt
MAIN
BSFSTATUS,RP1
BSFSTATUS,RP0
CLRFANSEL
CLRFANSELH
BCFSTATUS,RP1
BCFSTATUS,RP0
BSFSTATUS,RP0
CLRFTRISB;蜂鸣器,数码管位选设置为输出
CLRFTRISD;数码管段选,设置为输出
CLRFTRISE;发光二极管设置为输出
MOVLWb'11111000'
MOVWFTRISC
BCFSTATUS,RP0
MOVLW0xFF
MOVWFPORTB;位选初始化1(关),蜂鸣器初始化1(关)
MOVWFPORTD;段选1(关)
MOVWFPORTE;二极管1(关)
BSFPORTC,0
BSFPORTC,1
BSFPORTC,2
BSFPORTC,3
RESET0
MOVLW.10
MOVWFGE
MOVWFSHI
MOVWFBAI
MOVWFQIAN
MOVWFCOUNTER1
CLRFCOUNTER
MOVLW.2
MOVWFS4
MOVLW.1
MOVWFS3
MOVLW.5
MOVWFS2
MOVLW.3
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
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.10
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
MOVLWb'11111000'
ANDWFPORTC,W
SUBLWb'11111000'
BTFSCSTATUS,Z
RETURN
CALLDELAY1
CALLDELAY1
CALLDELAY1
MOVLW.0
MOVWFPORTC
MOVLWb'11111000'
ANDWFPORTC,W
SUBLWb'11111000'
BTFSCSTATUS,Z
RETURN
MOVLWb'11111110'
MOVWFPORTC
RB0BTFSCPORTC,4
GOTORB1
callDELAY1
BTFSCPORTC,4
GOTORB1
PP0CALLSMXS
BTFSSPORTC,4
GOTOPP0
callDELAY1
BTFSSPORTC,4
GOTOPP0
GOTOJIAN3
RB1BTFSCPORTC,5
GOTORB2
callDELAY1
BTFSCPORTC,5
GOTORB2
PP1CALLSMXS
BTFSSPORTC,5
GOTOPP1
callDELAY1
BTFSSPORTC,5
GOTOPP1
GOTOJIAN2
RB2BTFSCPORTC,3
GOTORB3
callDELAY1
BTFSCPORTC,3
GOTORB3
PP2CALLSMXS
BTFSSPORTC,3
GOTOPP2
callDELAY1
BTFSSPORTC,3
GOTOPP2
GOTOJIAN1
RB3BTFSCPORTC,7
GOTOHEHE
callDELAY1
BTFSCPORTC,7
GOTOHEHE
PP3CALLSMXS
BTFSSPORTC,7
GOTOPP3
callDELAY1
BTFSSPORTC,7
GOTOPP3
GOTOJIAN4
HEHEMOVLWb'11111101'
MOVWFPORTC
RB5BTFSCPORTC,4
GOTORB6
callDELAY1
BTFSCPORTC,4
GOTORB6
PP5CALLSMXS
BTFSSPORTC,4
GOTOPP5
callDELAY1
BTFSSPORTC,4
GOTOPP5
GOTOJIAN7
RB6BTFSCPORTC,5
GOTORB7
callDELAY1
BTFSCPORTC,5
GOTORB7
PP6CALLSMXS
BTFSSPORTC,5
GOTOPP6
callDELAY1
BTFSSPORTC,5
GOTOPP6
GOTOJIAN6
RB7BTFSCPORTC,3
GOTORB8
callDELAY1
BTFSCPORTC,3
GOTORB8
PP7CALLSMXS
BTFSSPORTC,3
GOTOPP7
callDELAY1
BTFSSPORTC,3
GOTOPP7
GOTOJIAN5
RB8BTFSCPORTC,7
GOTOHAHA
callDELAY1
BTFSCPORTC,7
GOTOHAHA
PP8CALLSMXS
BTFSSPORTC,7
GOTOPP8
callDELAY1
BTFSSPORTC,7
GOTOPP8
GOTOJIAN8
HAHAMOVLWb'11111011'
MOVWFPORTC
RB9BTFSCPORTC,4
GOTORB10
callDELAY1
BTFSCPORTC,4
GOTORB10
PP9CALLSMXS
BTFSSPORTC,4
GOTOPP9
callDELAY1
BTFSSPORTC,4
GOTOPP9
GOTOJIAN11
RB10BTFSCPORTC,5
GOTORB11
callDELAY1
BTFSCPORTC,5
GOTORB11
PP10CALLSMXS
BTFSSPORTC,5
GOTOPP10
callDELAY1
BTFSSPORTC,5
GOTOPP10
GOTOJIAN10
RB11BTFSCPORTC,3
GOTORB12
callDELAY1
BTFSCPORTC,3
GOTORB12
PP11CALLSMXS
BTFSSPORTC,3
GOTOPP11
callDELAY1
BTFSSPORTC,3
GOTOPP11
GOTOJIAN9
RB12BTFSCPORTC,7
RETURN
callDELAY1
BTFSCPORTC,7
RETURN
PP12CALLSMXS
BTFSSPORTC,7
GOTOPP12
callDELAY1
BTFSSPORTC,7
GOTOPP12
GOTOJIAN12
RETURN
JIAN1INCFCOUNTER
MOVLW.1
MOVWFCOUNTER1
RETURN
JIAN2INCFCOUNTER
MOVLW.3
MOVWFCOUNTER1
RETURN
JIAN3INCFCOUNTER
MOVLW.2
MOVWFCOUNTER1
RETURN
JIAN4CALLSPD
RETURN
JIAN5INCFCOUNTER
MOVLW.4
MOVWFCOUNTER1
RETURN
JIAN6INCFCOUNTER
MOVLW.6
MOVWFCOUNTER1
RETURN
JIAN7INCFCOUNTER
MOVLW.5
MOVWFCOUNTER1
RETURN
JIAN8GOTORESET0
RETURN
JIAN9;INCFCOUNTER
INCFCOUNTER
MOVLW.7
MOVWFCOUNTER1
RETURN
JIAN10INCFCOUNTER
;INCFCOUNTER
MOVLW.9
MOVWFCOUNTER1
RETURN
JIAN11INCFCOUNTER
;INCFCOUNTER
MOVLW.8
MOVWFCOUNTER1
RETURN
JIAN12INCFCOUNTER
;INCFCOUNTER
MOVLW.0
MOVWFCOUNTER1
RETURN
FMBCFPORTB,5
CALLDELAY1
BSFPORTB,5
CALLDELAY1
RETURN
LIGHT1BCFPORTE,0
CALLDELAY1
BSFPORTE,0
RETURN
LIGHT2BCFPORTE,1
CALLDELAY1
BSFPORTE,1
RETURN
LIGHT3BCFPORTE,2
CALLDELAY1
BSFPORTE,2
RETURN
DELAY1CALLSMXS
CALLSMXS
CALLSMXS
CALL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 电子 密码锁