《用PIC32单片机实现电子密码锁》由会员分享,可在线阅读,更多相关《用PIC32单片机实现电子密码锁(51页珍藏版)》请在金锄头文库上搜索。
1、 单片机设计实验报告12011 年小学期单片机设计实验报告年小学期单片机设计实验报告题目:题目: 电子密码锁电子密码锁班班 级:级:2010211114班内序号:班内序号:27学生姓名:张丹丹学生姓名:张丹丹学学 号:号:10210430指导教师:葛顺明指导教师:葛顺明单片机设计实验报告2电子密码锁电子密码锁实验摘要实验摘要电子密码锁这个项目实现的功能是:初始系统设置默认密码:“123” ,用户可以根据液晶屏的提示输入密码,若用户输入密码正确,绿灯指示灯亮;然后用户可以修改密码,密码修改成功,绿灯会闪烁下;如果密码输入三次错误,报警系统就会启动,此时红灯、黄灯、绿灯三灯都会闪烁。同时屏幕显示不
2、允许用户再次输入。即用户一旦输入三次错误密码,用户就不能再进入系统了。我们这个项目的主要功能是:1、开锁上锁功能;2、修改密码功能;3、报警功能;4、掉电存储功能;由于时间限制,再加上对单片机的某些引脚的特殊功能不太了解,本来计划好的掉电存储功能没办法实现了。从本质上看,掉电存储与液晶屏的工作原理应该是一样的,但是由于延时问题没设计好,所以导致程序崩溃,所以最终决定把掉电存储功能给舍弃掉。该系统虽然看上去较为简单,但是其可拓展性和应用性都很不错。对代码进行简单的修改,将初始的密码可以进行任意的更改。至于应用性,就比如说银行自动取款机,淘宝网上支付功能等等,与这个电子密码锁的功能本质上一致的。所
3、以,总而言之,电子密码锁的应用真的是无所不在的。关键字关键字单片机设计实验报告3PIC32MX795F512L电子密码锁矩阵键盘输入LCD 液晶显示一系统硬件设计一系统硬件设计1.1.系统模块总体框图如下:系统模块总体框图如下:2.PIC32MX795F512L2.PIC32MX795F512L 介绍介绍PIC32MX795F512L 单片机是具有 USB、CAN 与以太网的 32 位高性能闪存式单 片机,共有引脚 100 个,引脚分布如下:键盘输入模块电源供电模块PIC32MX795 F512L 单片机LCD 显示模块指示灯模块单片机设计实验报告4图中黄色表示已经被单片机内部集成的电路所占用
4、,功能已经固定,不能提供 给开发者使用其他功能。所以当时选用引脚时,就非常注意选用那些未被占用的 引脚,尽量避免不符合要求的引脚的使用。 电子密码锁:引脚 93、94、98、99、100、3、4、5:RE0RE7,用作 LCD 的 8 位数据输入 端;单片机设计实验报告5引脚 90、96: RG0、RG12,用作 LCD 的 RS 与 EN 接口;引脚 72、76、77:RD0、RD1、RD2,已经集成的 3 个 LED 指示灯;引脚 39、40、28、42:RF13、RF12、RA9、RB13,用作矩阵键盘的行数据输 入端;引脚 49、50、81、82:RF4、RF5、RD4、RD5,用作矩
5、阵键盘的列数据输入端。3 3分模块设计介绍分模块设计介绍1)RT1602C 点阵 LCD 显示模块单片机设计实验报告6VO 为显示器对比度调整端,接正电源时对比度最弱,接电源地时对比度最高。为了简化电路以及获得最好的显示效果,将 VO 端口直接接电源地。R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。由于整个项目中只存在对 LCD 进行写入的操作,因此直接将 R/W 端口接电源地。GND 接电源,VDD 接正电源。RS 为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。源代码中 LCD_write_cmd 函数为向 LCD 写入指令的函数,因此会有RS=0;LCD_w
6、rite_data 函数为向 LCD 写入数据的函数,因此会有 RS=1。E 端为使能端,当 E 端由高电平跳变成低电平,也就是下降沿时,LCD 模块进行命令执行。BL1 和 BL2 为设置 LCD 背光,实验中没有使用这两个端口。DOD7 八个为数据 I/O 口,与 PORTE 的 0 至 7 口相连。引脚号引脚名电平输入/输出作用1 VSS电源地2 VCC电源(+5V)3 Vee对比调整电压4 RS0/1输入0-输入指令 1-输入数据5 R/W0/1输入0=向 LCD 写入相应指令或数 据 1=向 LCD 读取信息6 E1,10输入/输出使能信号,1 时读取信息,10(下降沿)执行指令7D
7、B00/1输入/输出数据总线 line0(最低位)8DB10/1输入/输出数据总线 line19DB20/1输入/输出数据总线 line210DB30/1输入/输出数据总线 line311DB40/1输入/输出数据总线 line412DB50/1输入/输出数据总线 line513DB60/1输入/输出数据总线 line614DB70/1输入/输出数据总线 line7(最高位)15A+UCCLCD 背光电源正极16K接地LCD 背光电源负极单片机设计实验报告7DDRAM 就是显示数据 RAM,用来寄存待显示的字符代码,共 80 字节,其地址和屏幕的对用关系如下表:显示位置1 1 1 1 1 1
8、1. 40第一行00H01H02H03H04H05H06H. 27H第二行40H41H42H43H44H45H46H. 67HLCD 共有 11 条指令:1.清屏指令指令编码指令功能RSR/W DB7DB6DB5DB4DB3DB2DB1DB0清屏0000000001功能:清除液晶显示屏,即将 DDRAM 的内容全部填入“空白”的 ASCII 码 20H;光标归位,即将光标撤回液晶显示屏的左上方;将地址计数器(AC)的值设为 0。单片机设计实验报告82.光标归位指令指令编码指令功能RSR/WDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0光标归位0 00000001 能:把光标撤回
9、到显示器的左上方;把地址计数器的(AC)的值设为 0;保持地址 DDRAM 的值不变;3.进入模式设置指令指令编码指令功能RSR/WDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0光标归位0 000000 1I/D S功能:设定每次定入一位数据后光标的移动方向,并且设定每次写入的一个字符是否移动。参数的设定情况如下:位名设置I/D0=写入新数据后光标左移1=写入新数据后光标右移S0=写入新数据后显示屏不移动1=写入新数据后显示屏整体右移 1 个字符4.显示开关控制指令功能:控制显示器开/关、光标显示/关闭 以及光标是否闪烁。参数设定的情况如下:位名设置D 0=显示功能关1=显示功
10、能开C 0=无光标1=有光标B 0=光标闪烁1=光标不闪烁指令编码指令功能RSR/WDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0显示开关控制0 00000 1 D C B单片机设计实验报告95.设定显示屏或光标移动方向指令功能:使光标移位或使整个显示屏移位。参数的设定情况如下:S/CR/L设定情况0 0 光标左移 1 格,且 AC 值减 10 1 光标右移 1 格,且 AC 值加 11 0 显示器上字符全部左移 1 格,但光标不动 1 1 显示器上字符全部右移 1 格,但光标不动 6.功能设定指令功能:设定数据总线位数、显示的行数及字型。参数设定的情况如下:位名设置DL0=数
11、据总线为 4 位1=数据总线为 8 位N0=显示 1 行1=显示 2 行F0=5*7 点阵/每字符1=5*10 点阵/每字符7.设定 CGRAM 地址指令指令编码指令功能RSR/WDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0设定显示屏或光标移动方向0 00001 S/C R/L X X指令编码指令功能RSR/WDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0功能设定0 000 1DL N F X X指令编码指令功能RSR/WDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0设定 CGRAM 地址0 00 1 CGRAM 的地址(6 位)单片机设计实验
12、报告10功功能:设定下一个要存入数据的 CGRAM 的地址。8.设定 DDRAM 地址指令功功能:设定下一个要存入数据的 CGRAM 的地址。9.读取忙信号或 AC 地址功能:读取忙碌信号 BF 的内容,BF=1 表示液晶显示器忙,暂时无法接收单片机送来的数据或指令;当 BF=0 时,液晶显示器可以接收单片机送来的数据或指令;读取地址计数器(AC)的内容。2)4X4 键盘模块示意图如下:指令编码指令功能RSR/WDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0设定 CGRAM 地址0 01 CGRAM 的地址(7 位)指令编码指令功能RSR/WDB7 DB6 DB5 DB4 DB
13、3 DB2 DB1 DB0设定 CGRAM 地址0 1FB AC 的内容(7 位)单片机设计实验报告114X4 矩阵键盘的工作原理是每一条行线与列线的交叉处是否连通,是由交 叉处的按键决定的,采取这种行列式矩阵结构只需要 4 条行线和 4 条列线,即 可组成具有 4X4 个按键的矩阵键盘。 在我们的实验中矩阵键盘中的 16 个按键并没有完全采用,各个按键按照其 键盘序号使用情况如下图: 按键按键键名键名功能功能09 键数字键输入数字A 键确认键对相应操作进行确认指令B 键开关键系统开启与关闭D 键更改密码键对密码进行更改E 键保存键对新输入的密码进行保存F 键清除键删除所有的输入3)指示灯模块
14、指示灯采用 PIC32MX795F512L 单片机内集成的三个 LED 灯构成,通过指示灯 闪烁的种类以及个数来判断系统所处的状态,系统是处于开启状态还是关闭,改 密的成功与否,报警电路是否启动。三个灯的亮灯颜色分别是绿、黄、红: 按键指示灯采用绿灯。当有键按下时,绿灯亮;当按键无效或者无键按下时, 没有现象; 开锁指示灯采用红灯。当三次以内输入密码输入密码正确时,红灯亮; 修改密码时,一旦新密码保存成功,开锁指示灯灭,提示用户重新输入新的 密码; 报警指示:当输入密码三次以上错误时,三个指示灯会同时闪烁,同时提示 “No Allowed!” ,系统会强制关闭,不允许非法用户再进行输入;4)电
15、源模块单片机设计实验报告12系统的电源由实验室的稳压直流电源提供,电压大小为 5V。二系统软件设计二系统软件设计1.1.程序流程图程序流程图开始系统初始化,任意设置六位数存入 number 数组 作为初始密码开启系统LCD 显示: Your Password.单片机设计实验报告13数字键 清除键确认键3次密码输入错误不相等(两次以内)两次以内 密码正确更改密码清除键数字键保存键提示用户重新输入密码(已修改的密码)提示用户输入密 码报警电路启动 绿、黄、红灯闪 烁键盘输入判断存入 save 数组save 和 number 数组进行比较LCD 初始化显示密 码输入LCD 显示 No Allowed
16、!LCD 显示 Wrong 黄灯闪烁LCD 初始化 系统强制关机LCD 显示 Succeed 绿灯闪烁LCD 提示 New Password:键盘输入判断存入 save 数组将 save 数组赋 给number 数组LCD 显示: Password saved! 单片机设计实验报告142.2.模块实现模块实现 1)LCDLCD的初始化过程如下: 1延时15ms2 写指令 0x38(不检测忙信号)3 延时 5ms4 写指令 0x38(不检测忙信号)5 延时 5ms6 写指令 0x38(不检测忙信号)7(以后每次写指令、读/写数据操作之前均需检测忙信号)8 写指令 0x38 显示模式设置:16*2 显示,5*7 点阵,8 位数据接口9 写指令 0x0C 显示及光标设置:显示开,不显示光标,光标不闪烁10 写指令 0x06