2021-11-23 13:06:20 索炜达电子 872
项目编号:E2415
文件大小:14M
源码说明:带中文注释
开发环境:C编译器
简要概述
一、功能介绍:
1、输入6位密码,即可开锁。
2、输入7次纯数字,系统会自动恢复初始状态。
3、没有输入完6位密码,按下确认键,系统不会应答。
4、密码输入错误三次,锁定键盘并且蜂鸣器提醒10秒。
5、输入错误可以退格、清零。
6、开机后12864模块会有60秒定时显示,没操作键盘60秒后,清除数据并且恢复初始状态。如果在记时期间有按键按下,这停止倒计时,并且在没有操作键盘8秒左右,重新开启倒计时12864休眠功能。
7、在功能模式下可以修改密码,也可以做其他功能选择(其他功能你们根据自身能力添加)。
8、程序有密码数值存储在数组,可用于显示等操作。(修改密码时可以显示)
9、有人体感应模块,感应到有人吗,并且12864处于关屏休眠模式下,即可打开12864屏幕。
10、有外部存储器24C02,支持修改密码,密码断电不丢失。
11、步进电机模块。
12、继电器模块。
13、温度模块,倒计时期间可以测量7805和1117芯片温度或者外部温度,并实时显示。
二、资料展示
1.原理图
2.PCB印制电路板
因为自己做的板,所以在布线的时候那那么专业,能用就好。
3.实物图
外观大概就这样,工作状态
4、说明
我是用的KT板面上贴了一层贴纸,把这些弄到了一起,自己准备在包装一下,做一个密码箱完全没有问题。可以用来放放自己的小秘密,哈哈哈 。
5、代码
代码太多了,我就不写出来咯,自行可以去程序里面看。在资料里有单独的DS18B20、24c02、定时器的一些单一代码,直接修改一下就能移植。有些代码的注释没有修改到,是错误的。看的时候注意一下就好。
三、最后说几句
1、有电子相关专业的同学们,可以用这个作为设计,可以去掉步进电机,再添加一个指纹模块后,应该能行。
2、我原本想用指纹模块来控制步进电机来打开老式的拉锁,现在我还没有试,不知道能不能成功。
3、因为我的按键模块、12864模块、DS18B20之间的gpio口有点干扰,因为矩阵键盘的列需要输入探测是用了一整个GPIO的操作函数,所以用了它后,另外两个它也会受到影响。
4、资料里包含了四个文件夹,PCB设计、程序、串口调试工具、资料(相关芯片,外设的资料)
实物图:
目录│文件列表:
├ PCB设计
│ ├ History
│ │ │ STM32项目.~(1).PcbDoc.Zip
│ │ │ STM32项目.~(2).PcbDoc.Zip
│ │ └ STM32项目.~(3).PcbDoc.Zip
│ ├ 工程
│ │ │ STM32改.PcbDoc
│ │ │ STM32改.PcbDocPreview
│ │ │ STM32项目.PrjPcb
│ │ │ STM32项目.SchDoc
│ │ │ STM32项目.SchDocPreview
│ │ └ History
│ │ │ STM32改.~(1).PcbDoc.Zip
│ │ │ STM32改.~(12).PcbDoc.Zip
│ │ │ STM32改.~(13).PcbDoc.Zip
│ │ │ STM32改.~(14).PcbDoc.Zip
│ │ │ STM32改.~(2).PcbDoc.Zip
│ │ │ STM32改.~(3).PcbDoc.Zip
│ │ │ STM32改.~(4).PcbDoc.Zip
│ │ │ STM32改.~(5).PcbDoc.Zip
│ │ │ STM32改.~(6).PcbDoc.Zip
│ │ │ STM32改.~(7).PcbDoc.Zip
│ │ │ STM32改.~(8).PcbDoc.Zip
│ │ │ STM32改.~(9).PcbDoc.Zip
│ │ │ STM32项目.~(1).PcbDoc.Zip
│ │ │ STM32项目.~(1).PrjPcb.Zip
│ │ │ STM32项目.~(1).SchDoc.Zip
│ │ │ STM32项目.~(12).PcbDoc.Zip
│ │ │ STM32项目.~(13).PcbDoc.Zip
│ │ │ STM32项目.~(14).PcbDoc.Zip
│ │ │ STM32项目.~(14).PrjPcb.Zip
│ │ │ STM32项目.~(15).PcbDoc.Zip
│ │ │ STM32项目.~(15).PrjPcb.Zip
│ │ │ STM32项目.~(16).PcbDoc.Zip
│ │ │ STM32项目.~(16).PrjPcb.Zip
│ │ │ STM32项目.~(17).PcbDoc.Zip
│ │ │ STM32项目.~(17).PrjPcb.Zip
│ │ │ STM32项目.~(18).PcbDoc.Zip
│ │ │ STM32项目.~(19).PcbDoc.Zip
│ │ │ STM32项目.~(2).PcbDoc.Zip
│ │ │ STM32项目.~(2).PrjPcb.Zip
│ │ │ STM32项目.~(20).PcbDoc.Zip
│ │ │ STM32项目.~(21).PcbDoc.Zip
│ │ │ STM32项目.~(26).SchDoc.Zip
│ │ │ STM32项目.~(27).SchDoc.Zip
│ │ │ STM32项目.~(28).SchDoc.Zip
│ │ │ STM32项目.~(29).SchDoc.Zip
│ │ │ STM32项目.~(3).PcbDoc.Zip
│ │ │ STM32项目.~(3).PrjPcb.Zip
│ │ │ STM32项目.~(30).SchDoc.Zip
│ │ │ STM32项目.~(31).SchDoc.Zip
│ │ │ STM32项目.~(32).SchDoc.Zip
│ │ │ STM32项目.~(33).SchDoc.Zip
│ │ │ STM32项目.~(34).SchDoc.Zip
│ │ │ STM32项目.~(35).SchDoc.Zip
│ │ │ STM32项目.~(36).SchDoc.Zip
│ │ │ STM32项目.~(37).SchDoc.Zip
│ │ │ STM32项目.~(38).SchDoc.Zip
│ │ │ STM32项目.~(39).SchDoc.Zip
│ │ │ STM32项目.~(4).PcbDoc.Zip
│ │ │ STM32项目.~(4).PrjPcb.Zip
│ │ │ STM32项目.~(40).SchDoc.Zip
│ │ │ STM32项目.~(41).SchDoc.Zip
│ │ │ STM32项目.~(42).SchDoc.Zip
│ │ │ STM32项目.~(43).SchDoc.Zip
│ │ │ STM32项目.~(44).SchDoc.Zip
│ │ │ STM32项目.~(45).SchDoc.Zip
│ │ │ STM32项目.~(46).SchDoc.Zip
│ │ │ STM32项目.~(47).SchDoc.Zip
│ │ │ STM32项目.~(48).SchDoc.Zip
│ │ │ STM32项目.~(49).SchDoc.Zip
│ │ │ STM32项目.~(5).PcbDoc.Zip
│ │ │ STM32项目.~(5).PrjPcb.Zip
│ │ │ STM32项目.~(50).SchDoc.Zip
│ │ │ STM32项目.~(51).SchDoc.Zip
│ │ │ STM32项目.~(52).SchDoc.Zip
│ │ │ STM32项目.~(53).SchDoc.Zip
│ │ │ STM32项目.~(54).SchDoc.Zip
│ │ │ STM32项目.~(55).SchDoc.Zip
│ │ │ STM32项目.~(56).SchDoc.Zip
│ │ │ STM32项目.~(57).SchDoc.Zip
│ │ │ STM32项目.~(58).SchDoc.Zip
│ │ │ STM32项目.~(59).SchDoc.Zip
│ │ │ STM32项目.~(6).PcbDoc.Zip
│ │ │ STM32项目.~(6).PrjPcb.Zip
│ │ │ STM32项目.~(60).SchDoc.Zip
│ │ │ STM32项目.~(61).SchDoc.Zip
│ │ │ STM32项目.~(7).PcbDoc.Zip
│ │ │ STM32项目.~(7).PrjPcb.Zip
│ │ │ STM32项目.~(8).PcbDoc.Zip
│ │ │ STM32项目.~(8).PrjPcb.Zip
│ │ │ STM32项目.~(9).PcbDoc.Zip
│ │ └ STM32项目.~(9).PrjPcb.Zip
│ └ 库
│ │ 按键和显示组合.ERR
│ │ 按键和显示组合.ERRPreview
│ │ 按键和显示组合.LibPkg
│ │ 按键和显示组合.PcbLib
│ │ 按键和显示组合.SchLib
│ ├ History
│ │ │ 按键和显示组合.~(1).LibPkg.Zip
│ │ │ 按键和显示组合.~(1).PcbLib.Zip
│ │ │ 按键和显示组合.~(1).SchLib.Zip
│ │ │ 按键和显示组合.~(2).LibPkg.Zip
│ │ │ 按键和显示组合.~(28).PcbLib.Zip
│ │ │ 按键和显示组合.~(29).PcbLib.Zip
│ │ │ 按键和显示组合.~(30).PcbLib.Zip
│ │ │ 按键和显示组合.~(31).PcbLib.Zip
│ │ │ 按键和显示组合.~(32).PcbLib.Zip
│ │ │ 按键和显示组合.~(33).PcbLib.Zip
│ │ │ 按键和显示组合.~(34).PcbLib.Zip
│ │ │ 按键和显示组合.~(35).PcbLib.Zip
│ │ │ 按键和显示组合.~(36).PcbLib.Zip
│ │ │ 按键和显示组合.~(37).PcbLib.Zip
│ │ │ 按键和显示组合.~(38).PcbLib.Zip
│ │ │ 按键和显示组合.~(55).SchLib.Zip
│ │ │ 按键和显示组合.~(56).SchLib.Zip
│ │ │ 按键和显示组合.~(57).SchLib.Zip
│ │ │ 按键和显示组合.~(58).SchLib.Zip
│ │ │ 按键和显示组合.~(59).SchLib.Zip
│ │ │ 按键和显示组合.~(60).SchLib.Zip
│ │ │ 按键和显示组合.~(61).SchLib.Zip
│ │ │ 按键和显示组合.~(62).SchLib.Zip
│ │ │ 按键和显示组合.~(63).SchLib.Zip
│ │ │ 按键和显示组合.~(64).SchLib.Zip
│ │ │ 按键和显示组合.~(65).SchLib.Zip
│ │ │ 按键和显示组合.~(66).SchLib.Zip
│ │ │ 按键和显示组合.~(67).SchLib.Zip
│ │ │ 按键和显示组合.~(68).SchLib.Zip
│ │ │ 按键和显示组合.~(69).SchLib.Zip
│ │ │ 按键和显示组合.~(8).PcbLib.Zip
│ │ └ 按键和显示组合.~(9).PcbLib.Zip
│ └ Project Outputs for 按键和显示组合
│ └ 按键和显示组合.IntLib
└ 程序
└ LCD12864
├ CONTROL
│ │ 12864.c
│ │ 12864.h
│ │ 18B20.c
│ │ 18b20.h
│ │ 24c02.c
│ │ 24C02.h
│ │ buzzer.c
│ │ buzzer.h
│ │ ds18b20.c
│ │ ds18b20.h
│ │ Infrared.c
│ │ Infrared.h
│ │ KEY.c
│ │ KEY.h
│ │ key_control.c
│ │ key_control.h
│ │ led.c
│ │ led.h
│ │ Relay.c
│ │ Relay.h
│ │ ULN2003.c
│ └ ULN2003.h
├ CORE
│ │ core_cm3.c
│ │ core_cm3.h
│ └ startup_stm32f10x_hd.s
├ OBJ
│ └ LCD12864.hex
├ STM3210x_FWLIB
│ ├ inc
│ │ │ misc.h
│ │ │ stm32f10x_adc.h
│ │ │ stm32f10x_bkp.h
│ │ │ stm32f10x_can.h
│ │ │ stm32f10x_cec.h
│ │ │ stm32f10x_crc.h
│ │ │ stm32f10x_dac.h
│ │ │ stm32f10x_dbgmcu.h
│ │ │ stm32f10x_dma.h
│ │ │ stm32f10x_exti.h
│ │ │ stm32f10x_flash.h
│ │ │ stm32f10x_fsmc.h
│ │ │ stm32f10x_gpio.h
│ │ │ stm32f10x_i2c.h
│ │ │ stm32f10x_iwdg.h
│ │ │ stm32f10x_pwr.h
│ │ │ stm32f10x_rcc.h
│ │ │ stm32f10x_rtc.h
│ │ │ stm32f10x_sdio.h
│ │ │ stm32f10x_spi.h
│ │ │ stm32f10x_tim.h
│ │ │ stm32f10x_usart.h
│ │ └ stm32f10x_wwdg.h
│ └ src
│ │ misc.c
│ │ stm32f10x_adc.c
│ │ stm32f10x_bkp.c
│ │ stm32f10x_can.c
│ │ stm32f10x_cec.c
│ │ stm32f10x_crc.c
│ │ stm32f10x_dac.c
│ │ stm32f10x_dbgmcu.c
│ │ stm32f10x_dma.c
│ │ stm32f10x_exti.c
│ │ stm32f10x_flash.c
│ │ stm32f10x_fsmc.c
│ │ stm32f10x_gpio.c
│ │ stm32f10x_i2c.c
│ │ stm32f10x_iwdg.c
│ │ stm32f10x_pwr.c
│ │ stm32f10x_rcc.c
│ │ stm32f10x_rtc.c
│ │ stm32f10x_sdio.c
│ │ stm32f10x_spi.c
│ │ stm32f10x_tim.c
│ │ stm32f10x_usart.c
│ └ stm32f10x_wwdg.c
├ SYSTEM
│ ├ delay
│ │ │ delay.c
│ │ └ delay.h
│ ├ sys
│ │ │ sys.c
│ │ └ sys.h
│ ├ time
│ │ │ time.c
│ │ └ time.h
│ └ usart
│ │ usart.c
│ └ usart.h
└ USER
│ icc.c
│ icc.h
│ LCD12864.uvguix.admin
│ LCD12864.uvguix.Coolguyisme
│ LCD12864.uvoptx
│ LCD12864.uvprojx
│ main.c
│ stm32f10x.h
│ stm32f10x_conf.h
│ stm32f10x_it.c
│ stm32f10x_it.h
│ system_stm32f10x.c
│ system_stm32f10x.h
├ DebugConfig
│ │ Target_1_STM32F103C8.dbgconf
│ └ Target_1_STM32F103C8_1.0.0.dbgconf