找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 11343|回复: 2
收起左侧

存包柜密码锁设计 硬件电路和程序讲解及操作说明

[复制链接]
ID:161768 发表于 2017-2-11 00:15 | 显示全部楼层 |阅读模式
221232ip5ja51wc588rr8a.png
存包柜设计的完整资料下载(含源码 仿真 ppt教程 论文等等很全):
http://www.51hei.com/bbs/dpj-77166-1.html

存包柜硬件电路讲解


一、硬件概况


总个硬件分成五大部分,分别是:
最小系统 液晶显示 矩阵键盘 继电器电路 LED 电路



二、最小系统
0.png
最小系统分成晶振电路和复位电路,晶振电路的作用就是给单片机提供工作的

时钟频率,相当于人体的心脏,没有它就挂。 复位电路由一个电阻和一个电容构成,学过模电又聪明的的你应该懂得这叫阻容 复位电路,它的输出加载在单片机的复位引脚就是给单片机一个上电的缓冲时 间,保证单片机正常工作。 但是,但是,但是(重要的事情说三遍),上述电路在仿真软件里面是不起作用 的,也就是说你把他们统统删掉,单片机照样飞奔。并且,你看到那个晶振的频 率为11.0592,其实那个也是虚的,真实的单片机晶振在这里(双击单片机本身)



1.003.jpg


三、液晶显示
这里的显示采用的是液晶显示器 LCD1602,该显示器有三类引脚,分别是 数 据引脚,控制引脚和电源引脚
其中的数据引脚有 8 根线,刚好传送一个字节,该数据线是地址和数据共用

0.png 的。 控制引脚有三根:


RS -- 这个是用来选择发送的是地址还是数据的,(因为 1602 的显示是需要 先发送地址,告诉人家我要在哪个地方显示,然后再发送数据,告诉人家我要在 这个地方显示什么内容),所以如果发送地址的时候,RS 就要设为 0;发送数据 时,RS 就要设为 1.

RW -- 这个是用来进行读写控制的,如果要往 LCD 里面写(就是让它显示),
RW 要设为 0

E -- 使能引脚 当该引脚为 1 时,表示 LCD 禁止被写入,为 0 表示允许被写 入;所以如果我们要往里面写数据时,就需要拉低它,写完后,再拉高。



本设计里面,8 位数据口接到了 P1 口(P10-D0......P17-D7),RS 接 P30,RW
接 P31,E 接 P32.

四、矩阵键盘

由于该设计使用的按键较多,拍屁股一想,只能用矩阵键盘,节约 IO 口, 还显得高大上。矩阵键盘最明显的优势就是占用的 IO口少,比如 16 个按键,要 接独立按键就需要 16 个 IO 口,但是如果接成矩阵键盘就只需要 8 个 IO 口。现 在来看一下矩阵键盘的工作原理。在矩阵键盘里面,每一个按键的两端各占一个

IO 口,每一行的所有按键共用一个 IO 口,每一列的所有按键也共用一个 IO 口。
0.png
如上图所示,A,B 各表示一个 IO 口,当 A 口输出为低电平的同时来检测 B 的电

平,如果读到 B 口为高电平,则表示该按键没有按下,如果读到 B 口为低电平, 则表示该按键被按下。

本设计中的矩阵键盘如下所示
0.png


包括 0-9 总共 10 个数字按键,以及 1 个“存包”,1 个“取包”,1 个“清空”
和 1 个“确认”按键,都接在 P0 口的 8 个引脚上。


另外,由于 P0 口的特殊结构,需要接上上拉电阻,否则,它无法输出高电平。

五、继电器电路 这里的继电器用来模拟锁的开关,当从软件库里面拿出来一个继电器是,其默认

开关电压为 12V 的,为了兼容 51 单片机的控制,把它改成了 5V 的。

0.png 在接线上,线圈的一段固定接地,另外一段接 IO 口(P37),当 P37 为高电平时,

线圈导通,继电器吸合。 六、LED电路

LED 电路就很简单了,不过这里面特别要说明的是,LED 的限流电阻大小不能 超过 1K,否则看不到 LED 被点亮,这里面选取的是100 欧姆。


超市存包柜软件程序讲解


如果你想看程序,请你务必安装 KEIL4 软件,这样才能看的心 安理得,切忌懒惰!!!

1、双击【密码锁.uvproj】文件
0.png


就能自然打开如下界面(前提是你安装了 KEIL4 软件)
0.png


看左边红色方框里面的内容,可以知道这个程序分成了 3 个 c 文件(实际上还

是一 个整体)。 每个文件的功能大致如下: Main.c --- 主文件,调用其他文件中的函数 Key.c ---              按键文件,处理矩阵按键 Lcd1602.c --- 显示器文件,处理液晶显示



一、程序入口



看程序首先要找到入口,不然就是无头苍蝇,相信稍微有点基础的人都知道程 序入口是 main 函数,该函数在 main.c 文件中,如下



1.002.jpg
二、Main 函数框架

0.png

对于 main 函数,其核心思想就是状态机(就是把整个软件分成多个状态,在 不同的触发条件下,切换到不同的状态下运行)。

整个软件分成三个状态:初始化状态,密码生成状态,密码输入状态。 程序里面用一个变量 global_state 来存储各种状态,并且各个状态的用如下数

字来表示:

初始化状态              --- 0 密码生成状态              --- 1 密码输入状态              --- 2

各个状态之间的切换关系如下图所示


三、密码的生成
随机密码的生成是取自与定时器 0 寄存器 TL0

1.006.jpg
四、矩阵键盘的扫描

对于 4*4 的矩阵键盘来说,从逻辑上将其划分成四行四列,然后采用行扫描 法(或列扫描法)来进行键值的采集。



0.png 如上图所示,16 个按键接在了 P0 的 8个口,其中 P00-P03 为四行,P04-P07 为

四列,本设计采用的是行扫描法,也就是说每次给四行当中的一行输出低电平(其 他三行为高电平),然后再读取四列的值,如果发现四列全部为高电平,那么就 表示没有按键按下,如果有某一列为低电平,就表示有按键按下了。 比如我让四行当中的第一行(P00)为0,同时读取四列,发现第一列(P04)为 低电平,那么就说明”1”按键被按下。


五、LCD1602 显示程序

先来普及一下 1602 的基本知识,该液晶显示 2 行,每行显示 16 个字符,并 且它不能显示中文。

对于每个字符来说都有相应的地址,第一行的 16 个字符的地址是 0x80-0x8f, 第二行的 16 个字符的地址是 0xc0-0xcf。如下表所示




0x80
0x81
0x82
0x83
0x84
0x85
0x86
0x87
0x88
0x89
0x8a
0x8b
0x8c
0x8d
0x8e
0x8f
0xc0
0xc1
0xc2
0xc3
0xc4
0xc5
0xc6
0xc7
0xc8
0xc9
0xca
0xcb
0xcc
0xcd
0xce
0xcf


程序控制液晶,想让液晶显示字符时,需要分两步,第一步就是给它输入地

址(告诉它我要在哪里显示),第二部给它输入要显示的字符(告诉它我要在这 里显示什么东西)。并且要注意的是,显示的内容是需要字符形式,比如要显示 数字 1,就不能直接给 1,而是需要将整数 1 换算成字符的‘1’(1+0x30=’1’)才 能正确显示。


现在我们想让液晶在左上角显示字母‘a’,从上表得知,左上角的地址为 0x80。 所以分如下两步,就可以显示

Wr_com(0x80);Wr_dat(‘a’); 上面的两个函数是作者自己编的,具体内容参考程序。



超市存包柜密码锁操作说明


一、功能概述 该设计主要是实现利用密码来开锁的功能。系统主要设置了“存包”和“取包”的功
能,当存包时,系统会生成一个四位的随机数密码,供用户记忆;然后取包时,用户输入刚 才的密码,如果密码正确就开锁,如果错误就不开锁,并做出警告提示。


二、操作步骤

1、双击运行【仿真文件/密码锁.DSN】,并往单片机里面添加程序【密码锁.hex】


2、回到仿真主界面,点击开始按钮, 0.png    ,就会看到液 晶显示    0.png           “welcome”




并且继电器处于闭合状态,表示门是关着的。



3、找到矩阵键盘中的“存包”按键,并按下此键,继电器会断开,表示开 门。然后液晶显示“close door”,表示提示用户存好东西后关门。


1.002.jpg



1.003.jpg



4、大约三秒后,系统自动关门,继电器闭合,并且液晶显示当前生成的四位随机数密码。
大约 3 秒后,系统回到最初的页面。
1.004.jpg

5、找到“取包”按键,并按下它,LCD 就会提示输入密码


此时按下数字按键,输入四位密码,然后按下“确认”按键,如果输入的密码错 误,就会有红色 LED 亮。并且继电器保存关闭状态。三秒后,红灯熄灭,系统返 回主页面。
1.005.jpg



1.006.jpg
如果输入的密码正确,就会有绿色 LED 亮。并且继电器保存开启状态。三秒 后,绿灯灯熄灭,系统返回主页面。
1.007.jpg
在输入密码过程中,可以按下“清除”按键来清掉刚刚输入的密码,而重新输入。
0.png


超市存包柜设计的完整资料下载(含源码 仿真 ppt教程 论文等等很全):
http://www.51hei.com/bbs/dpj-77166-1.html
回复

使用道具 举报

ID:150257 发表于 2017-2-22 18:38 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:288178 发表于 2018-3-6 14:09 | 显示全部楼层
感谢楼主 谢谢楼主的分享!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表