单片机原理与接口技术课程设计电子密码锁
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
绪论 ............................................................................................................ 错误!未定义书签。
(1)设计所要实现的目标 (1)
(2)设计方案简介 (1)
一、主要元器件介绍 ................................................................................ 错误!未定义书签。
1.1 PIC单片机 (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.
附录:密码锁程序
list p=16f887 ; list directive to define processor
#include <p16f887.inc> ; processor specific variable definitions
__CONFIG _CONFIG1,
_LVP_OFF&_IESO_OFF&_BOR_OFF&_PWRTE_ON&_WDT_OFF&_XT_OSC
;***** VARIABLE DEFINITIONS
w_temp EQU 0x71
status_temp EQU 0x72
NUM1 EQU 0x20
NUM2 EQU 0x21
GE EQU 0x22
SHI EQU 0x23
BAI EQU 0x24
QIAN EQU 0x25
YUSHU EQU 0x26
SHANG EQU 0x27
KB_TEMP EQU 0x28
S1 EQU 0x29
;地址0X30不可占用!!!!!!!!!!!!!
S2 EQU 0x3A
S3 EQU 0x3B
S4 EQU 0x3C
COUNTER EQU 0x3D
COUNTER1 EQU 0x3E
;********************************************************************** ORG 0x000
clrf PCLATH
goto MAIN
ORG 0x004
movwf w_temp
movf STATUS,w
movwf status_temp
movf status_temp,w
movwf STATUS
swapf w_temp,f
swapf w_temp,w
retfie
MAIN
BSF STATUS,RP1
BSF STATUS,RP0
CLRF A NSEL
CLRF A NSELH
BCF STATUS,RP1
BCF STATUS,RP0
;****************************************************************************** BSF STATUS,RP0
CLRF T RISB ;蜂鸣器,数码管位选设置为输出
CLRF T RISD ;数码管段选,设置为输出
CLRF T RISE ;发光二极管设置为输出
MOVLW b'11110000'
MOVWF TRISC
BCF STATUS,RP0
MOVLW 0xFF
MOVWF PORTB ;位选初始化1(关),蜂鸣器初始化1(关)
MOVWF PORTD ;段选1(关)
MOVWF PORTE ;二极管1(关)
BSF PORTC,0
BSF PORTC,1
BSF PORTC,2
BSF PORTC,3
;--------------------------------------初始化定义-------------------------------
RESET0
MOVLW .14
MOVWF GE
MOVWF SHI
MOVWF BAI
MOVWF QIAN
MOVWF COUNTER1
CLRF C OUNTER
MOVLW .3
MOVWF S4
MOVLW .9
MOVWF S3
MOVLW .4
MOVWF S2
MOVLW .0
MOVWF S1
MOVLW 0XFF
MOVWF PORTE
BSF PORTB,5
;------------------------------------主程序-------------------------------------
ZHU CALL S MXS
;CALL CALC1
;CALL CALC2
CALL K MS1
;CLRF PORTE
;MOVF COUNTER,W
;MOVWF GE
;MOVWF COUNTER1
;MOVF COUNTER1,W
;MOVWF GE
CALL W PD
GOTO ZHU
;-------------------------------------子程序------------------------------------
CHABIAO ADDWF PCL,F
RETLW 0xC0 ;0
RETLW 0xF9 ;1
RETLW 0xA4 ;2
RETLW 0xB0 ;3
RETLW 0x99 ;4
RETLW 0x92 ;5
RETLW 0x82
RETLW 0xF8
RETLW 0x80
RETLW 0x90
RETLW 0x7F
RETLW 0x86
RETLW 0x8E
RETLW 0x89
RETLW 0xFF
SPD MOVF GE,W
SUBWF S1,W
BTFSS STATUS,Z
GOTO SPD2
MOVF SHI,W
SUBWF S2,W
BTFSS STATUS,Z
GOTO SPD2
MOVF BAI,W
SUBWF S3,W
BTFSS STATUS,Z
GOTO SPD2
MOVF QIAN,W
SUBWF S4,W
BTFSS STATUS,Z
GOTO SPD2
CLRF PORTE
CALL SPD1
RETURN
SPD1
MOVLW .14
MOVWF GE
MOVWF SHI
MOVWF BAI
MOVWF QIAN
MOVWF COUNTER1
CLRF C OUNTER
RETURN
SPD2 BCF PORTB,5
CALL S PD1
RETURN
WPD MOVF COUNTER,W
SUBLW .4
BTFSS STATUS,Z
GOTO HEHE1
GOTO GEX
HEHE1 MOVF COUNTER,W
SUBLW .3
BTFSS STATUS,Z
GOTO HEHE2
GOTO SHIX
HEHE2 MOVF COUNTER,W
SUBLW .2
BTFSS STATUS,Z
GOTO HEHE3
GOTO BAIX
HEHE3 MOVF COUNTER,W
SUBLW .1
BTFSS STATUS,Z
RETURN
GOTO QIANX
;CALL RESET0
GEX MOVF COUNTER1,W
MOVWF GE
RETURN
SHIX MOVF COUNTER1,W
MOVWF SHI
RETURN
BAIX MOVF COUNTER1,W
MOVWF BAI
RETURN
QIANX MOVF COUNTER1,W
MOVWF QIAN
RETURN
SMXS MOVF GE,w ;数码管扫描显示程序CALL C HABIAO
MOVWF PORTD
BCF PORTB,1
CALL D ELAY
BSF PORTB,1
MOVF SHI,w
CALL C HABIAO
MOVWF PORTD
BCF PORTB,2
CALL D ELAY
BSF PORTB,2
MOVF BAI,w
CALL C HABIAO
MOVWF PORTD
BCF PORTB,3
CALL D ELAY
BSF PORTB,3
MOVF QIAN,w
CALL C HABIAO
MOVWF PORTD
BCF PORTB,4
CALL D ELAY
BSF PORTB,4
RETURN
KMS1 MOVLW .0
MOVWF PORTC
MOVLW 0xF0
ANDWF PORTC,W
SUBLW 0xF0
BTFSC STATUS,Z
RETURN
CALL D ELAY1
CALL D ELAY1
CALL D ELAY1
MOVLW .0
MOVWF PORTC
MOVLW 0xF0
ANDWF PORTC,W
SUBLW 0xF0
BTFSC STATUS,Z
RETURN
MOVLW 0xFE
MOVWF PORTC RB0 BTFSC PORTC,4
GOTO RB1
call DELAY1
BTFSC PORTC,4
GOTO RB1
PP0 CALL S MXS
BTFSS PORTC,4
GOTO PP0
call DELAY1
BTFSS PORTC,4
GOTO PP0
GOTO JIAN1 RB1 BTFSC PORTC,5
GOTO RB2
call DELAY1
BTFSC PORTC,5
GOTO RB2
PP1 CALL S MXS
BTFSS PORTC,5
GOTO PP1
call DELAY1
BTFSS PORTC,5
GOTO PP1
GOTO JIAN2 RB2 BTFSC PORTC,6
GOTO RB3
call DELAY1
BTFSC PORTC,6
GOTO RB3
PP2 CALL S MXS
BTFSS PORTC,6
GOTO PP2
call DELAY1
BTFSS PORTC,6
GOTO PP2
GOTO JIAN3 RB3 BTFSC PORTC,7
GOTO HEHE
call DELAY1
BTFSC PORTC,7
GOTO HEHE PP3 CALL S MXS
BTFSS PORTC,7
GOTO PP3
call DELAY1
BTFSS PORTC,7
GOTO PP3
GOTO JIAN4
HEHE MOVLW 0xFD
MOVWF PORTC RB5 BTFSC PORTC,4
GOTO RB6
call DELAY1
BTFSC PORTC,4
GOTO RB6
PP5 CALL S MXS
BTFSS PORTC,4
GOTO PP5
call DELAY1
BTFSS PORTC,4
GOTO PP5
GOTO JIAN5
RB6 BTFSC PORTC,5
GOTO RB7
call DELAY1
BTFSC PORTC,5
GOTO RB7
PP6 CALL S MXS
BTFSS PORTC,5
GOTO PP6
call DELAY1
BTFSS PORTC,5
GOTO PP6
GOTO JIAN6 RB7 BTFSC PORTC,6
GOTO RB8
call DELAY1
BTFSC PORTC,6
GOTO RB8
PP7 CALL S MXS
BTFSS PORTC,6
GOTO PP7
call DELAY1
BTFSS PORTC,6
GOTO PP7
GOTO JIAN7
RB8 BTFSC PORTC,7
GOTO HAHA
call DELAY1
BTFSC PORTC,7
GOTO HAHA
PP8 CALL S MXS
BTFSS PORTC,7
GOTO PP8
call DELAY1
BTFSS PORTC,7
GOTO PP8
GOTO JIAN8 HAHA MOVLW 0xFB
MOVWF PORTC
RB9 BTFSC PORTC,4
GOTO RB10
call DELAY1
BTFSC PORTC,4
GOTO RB10
PP9 CALL S MXS
BTFSS PORTC,4
GOTO PP9
call DELAY1
BTFSS PORTC,4
GOTO PP9
GOTO JIAN9
RB10 BTFSC PORTC,5
GOTO RB11
call DELAY1
BTFSC PORTC,5
GOTO RB11
PP10 CALL S MXS
BTFSS PORTC,5
GOTO PP10
call DELAY1
BTFSS PORTC,5
GOTO PP10
GOTO JIAN10
RB11 BTFSC PORTC,6
GOTO RB12
call DELAY1
BTFSC PORTC,6
GOTO RB12 PP11 CALL S MXS
BTFSS PORTC,6
GOTO PP11
call DELAY1
BTFSS PORTC,6
GOTO PP11
GOTO JIAN11 RB12 BTFSC PORTC,7
GOTO HOHO
call DELAY1
BTFSC PORTC,7
GOTO HOHO PP12 CALL S MXS
BTFSS PORTC,7
GOTO PP12
call DELAY1
BTFSS PORTC,7
GOTO PP12
GOTO JIAN12
HOHO MOVLW 0xF7
MOVWF PORTC RB13 BTFSC PORTC,4
GOTO RB14
call DELAY1
BTFSC PORTC,4
GOTO RB14 PP13 CALL S MXS
BTFSS PORTC,4
GOTO PP13
call DELAY1
BTFSS PORTC,4
GOTO PP13
GOTO JIAN13 RB14 BTFSC PORTC,5
GOTO RB15
call DELAY1
BTFSC PORTC,5
GOTO RB15
PP14 CALL S MXS
BTFSS PORTC,5
GOTO PP14
call DELAY1
BTFSS PORTC,5
GOTO PP14
GOTO JIAN14 RB15 BTFSC PORTC,6
GOTO RB16
call DELAY1
BTFSC PORTC,6
GOTO RB16
PP15 CALL S MXS
BTFSS PORTC,6
GOTO PP15
call DELAY1
BTFSS PORTC,6
GOTO PP15
GOTO JIAN15 RB16 BTFSC PORTC,7
RETURN
call DELAY1
BTFSC PORTC,7
RETURN
PP16 CALL S MXS
BTFSS PORTC,7
GOTO PP16
call DELAY1
BTFSS PORTC,7
GOTO PP16
GOTO JIAN16
RETURN
JIAN1 INCF COUNTER
MOVLW .1
MOVWF COUNTER1
RETURN
JIAN2 INCF COUNTER
MOVLW .2
MOVWF COUNTER1
RETURN
JIAN3 INCF COUNTER
MOVLW .3
MOVWF COUNTER1
RETURN
JIAN4 CALL S PD
RETURN
JIAN5 INCF COUNTER
MOVLW .4
MOVWF COUNTER1
RETURN
JIAN6 INCF COUNTER
MOVLW .5
MOVWF COUNTER1
RETURN
JIAN7 INCF COUNTER
MOVLW .6
MOVWF COUNTER1
RETURN
JIAN8 GOTO RESET0
RETURN
JIAN9 ;INCF COUNTER
INCF COUNTER
MOVLW .7
MOVWF COUNTER1
RETURN
JIAN10 INCF COUNTER
;INCF COUNTER
MOVLW .8
MOVWF COUNTER1
RETURN
JIAN11 INCF COUNTER
;INCF COUNTER
MOVLW .9
MOVWF COUNTER1
RETURN
JIAN12 INCF COUNTER
;INCF COUNTER
MOVLW .0
MOVWF COUNTER1
RETURN
JIAN13 INCF COUNTER
MOVLW .10
MOVWF COUNTER1
RETURN
单片机课程设计题目
JIAN14 INCF COUNTER
MOVLW .11
MOVWF COUNTER1
RETURN
JIAN15 INCF COUNTER
MOVLW .12
MOVWF COUNTER1
RETURN
JIAN16 INCF COUNTER
MOVLW .13
MOVWF COUNTER1
RETURN
FM BCF PORTB,5
CALL D ELAY1
BSF PORTB,5
CALL D ELAY1
RETURN
LIGHT1 BCF PORTE,0
CALL D ELAY1
BSF PORTE,0
RETURN
LIGHT2 BCF PORTE,1
CALL D ELAY1
BSF PORTE,1
RETURN
LIGHT3 BCF PORTE,2
CALL D ELAY1
BSF PORTE,2
RETURN
DELAY1 CALL S MXS
CALL S MXS
CALL S MXS
CALL S MXS
CALL S MXS
CALL S MXS
RETURN
DELAY DECFSZ 0x30,F
GOTO DELAY
RETURN
END
;----------------------------------------------------------------------------
20。