你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32矩阵电子密码锁(源码+仿真+原理图+PCB)

[复制链接]
STMCU小助手 发布时间:2022-5-30 10:53
本设计
) y7 @. Q0 `5 d1 |) c$ s8 A
基于STM32的矩阵电子密码锁protues仿真设计
资料包含:源码+仿真+原理图+PCB(具体看下文资料清单)
原理图:Altium Designer
仿真:protues 8.9
程序编译器:keil 5
编程语言:C语言
设计编号:C0034
主要功能:
1. 液晶屏幕实时显示矩阵键盘输入的密码;
2. 4x4矩阵键盘可输入6位密码并支持循环覆盖;
3. 有密码输入正确或错误的声光提示;
4. 带重新输入功能。
# A  e6 {3 y  h: X' Q
仿真图(提供源文件):
640 (5).png

3 b8 f6 u8 D0 e+ k+ l& K
640 (4).png

8 t# p$ r* v$ f; y
640 (3).png
) Z0 L; m; ?0 n! f8 ~4 L. i
原理图(提供源文件):
640 (2).png
6 m7 A& c9 w; ^& w* n& ~4 k  k
PCB(提供源文件):
640 (1).png
程序(提供源文件源码):
640.png
以下为部分程序:
  1. void main()* t. b! n# C' Q4 m/ W, R5 ?* i
  2. {
    3 }) J, Y% k. ^0 J% d" C& g* P4 `, w
  3.   init_eeprom();  //开始初始化保存的数据
      Z! C8 |0 \  M4 @$ g7 ~
  4.   Init_LCD1602();                  //初始化LCD1602  K/ Z0 w5 _/ l& o* [1 E
  5.    EA = 0;
    9 h$ w0 a& C" M% f
  6.    Data_Init();3 ]& V4 S5 @' R# |% T. p, J0 E) c
  7.    Timer0_Init();5 z3 |) i% [' l1 i; p4 E8 l
  8.    //初中始化完成,开断
    ) F7 I4 [! m6 V9 v5 x
  9.    EA = 1;7 i, F) s0 X$ R- h- J& N. B+ }
  10.   - `* O: W+ k0 `3 p$ P1 r0 x
  11. //  Get_Maopi();
    # m1 [9 ^* S; f) X/ S, I
  12.   LCD1602_write_com(0x80);            //指针设置
    5 j: B1 D. f- e7 D- A( V
  13.    LCD1602_write_word(" Welcome To Use ");  //  
    " d/ `" f8 F) T( w# X( F
  14.    LCD1602_write_com(0x80+0x40);            //指针设置
    1 P7 s( f6 y& a5 p5 D# O: f6 s
  15.    LCD1602_write_word("Electronic Scale");
    8 |% ]& R5 v' M0 Z# ]( S
  16. //   Delay_ms(2000);% a1 Z1 E9 Q9 n
  17.    Get_Maopi();3 P& U' h7 M% h6 W- {
  18.    LCD1602_write_com(0x80);            //指针设置/ j* V! _' _- s! C! c1 Q
  19.    LCD1602_write_word("WE:0.000 PR:00.0");
    ) v) L7 N: y9 b# D8 u/ n6 C' f5 T  d
  20.    LCD1602_write_com(0x80+0x40);        //指针设置1 G) O6 L9 g& n! c
  21.    LCD1602_write_word("MONEY:  0.00    ");9 A) j+ q# R7 c& D
  22.    Display_Price();" D' K# Z' P# [1 D: m7 {
  23. //  Get_Maopi();        //称毛皮重量
    + }) Q% @8 e' t
  24. 8 e6 ~7 |8 i1 m  i0 U" h' b4 m9 y
  25.   while(1)
    8 v: C- ~% i" w1 T4 l
  26.   {
    3 S2 a% @0 H/ C* H' Y
  27. //每0.5秒称重一次! [7 Y( b; J1 Z/ v3 ^1 c% |  u" s' j
  28.     if (FlagTest==1)1 b2 |6 O9 J0 C: F. Z. d
  29.     {+ W5 m% ]; @8 S4 j8 V% Z. h1 `
  30.       Get_Weight();
    8 @, F* W/ W/ ~. U
  31.       FlagTest = 0;
    8 F% G: \$ u% U" X
  32.     }      
    * j" h' S+ v, i, H" p! c# K5 }
  33.       2 K! i* d! P7 {/ V9 N
  34.     keycode = Getkeyboard();
    : I- o$ w) t2 ~5 ]" A3 |
  35.     //有效键值0-15
    % e/ u1 T( ^; T! K1 I) v* J3 _( ?
  36.     if (keycode<16)
    1 h) C) t, A- f1 P/ |1 t9 s, E
  37.     {, L& h/ o0 }- {: X/ T0 I
  38.      KeyPress(keycode);& }! E& N" v9 Q
  39.      Buzzer=0;
    ' x6 n. c9 M: k/ k) M
  40.      Delay_ms(100);
    . ?7 ?  g8 L( a
  41.      Buzzer=1;
    $ e! ~$ u& _3 p: y: E( |+ [, \: b# |# G
  42.      while(keycode<16)0 J: h8 w& Q8 m! O6 p
  43.      {* i" `+ A( W1 _2 T' y" Z$ X
  44.       if(keycode==12||keycode==13)% K) w8 j+ K5 }5 _/ H' s
  45.       {
    # Q! ^, g5 n$ d  ?3 _
  46.         Buzzer=0;
    + ^) ]- t, p* S( x& D: S
  47.          Delay_ms(10);) C2 T' D6 A3 H, b! J, H
  48.          Buzzer=1;! _, T0 Z& v; v% C/ y7 x: Q$ l
  49.          KeyPress(keycode);
    9 H" A0 f0 [0 r: B4 K% c
  50.          Get_Weight();
    . k' h' ^0 K6 x& P9 u9 |6 J
  51.          flag_key=1;
    , e; Z; @( E4 Z  a2 u( c$ z
  52.       }
    & h1 C$ f3 k3 @5 Y- p
  53.       keycode = Getkeyboard();
    $ O* W# \! Y' l7 M; K5 m
  54.      }1 F1 ?% n" ?/ ]  v! c/ V
  55.      write_eeprom();         //保存数据5 v" Q+ J* {; ?
  56.     }
    & ?" L8 B6 y5 {& D5 h) a3 [
  57.   }
    8 j9 O% P& S. u/ W/ L9 T9 J0 s
  58. }
复制代码
( V8 J- B3 T4 z
赞 收藏 评论0 发布时间:2022-5-30 10:53

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版