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

基于STM32的电子时钟设计

[复制链接]
STMCU小助手 发布时间:2023-2-26 17:39
1、设计目的
2 j8 ]- @: [: ^* m(1)掌握使用KEIL MDK5进行软件开发的具体流程;- S* n: C; J! x- Z

( S, y2 F. `( k2 o: E(2)掌握硬件电路的设计方法;7 y6 i# w4 n2 I2 G4 M. i
" s0 f8 c; k6 D0 x# V9 e
(3)掌握STM32微控制器的程序设计及代码编写方法。
* ?' G& Z/ T) v0 O* m
) B- ^5 J1 i% \9 _& j/ @

% A) ?, J2 n. X  @  X( x2、设计具体要求
" g3 f) S# e( H% ?+ C& i(1)通过STM32自带的实时时钟功能获取时间信息;
4 \8 o1 R- C/ }# A8 c/ O: E# e+ H+ v2 G  [) f; J
(2)在OLED显示屏上显示日期、时、分、秒等时间信息;  F$ `. s' X0 E" b* L) F. C
- i( o- a$ Q" \. ^4 k
(3)通过按键可对时间信息进行修改;
6 V( v- W2 k* f- I, t" p: |2 p
(4)具有闹钟设定功能;! a0 ~  F& U4 T$ o" ^

1 Q3 I. ?7 J/ S1 c(5)加分项:自行增加其他功能。+ d$ B6 h) A, w6 k* D; ?9 S9 I
4 y3 z2 F- y4 }% c) h

9 L" `$ K) v7 ~8 v& e& u% Z3、proteus仿真图
8 ?5 S. }: G$ P* j- E
  R  @( v4 S, `
b873cd6c9907479787c2e7dd221c0230.png
  \, f$ X5 R9 E
" D; P* h# B6 Y/ x4 t

8 L4 z5 \  k3 X. d, Y9 l  s* A4、程序代码' X, ]3 v2 e& ]) |' `* P
  1. # include "key.h"
    7 _1 N6 v( l0 m0 W
  2. # include "sys.h". x3 e7 O# U& N1 S) B6 R, Y' q
  3. # include "timer.h"' E' t; F) a/ D7 i
  4. # include "digitaltube.h"
    # p6 u5 |- u' {& K: \7 R
  5. # include "exti.h"9 D$ X* Y; o6 p7 I) T
  6. # include "led.h"
    # i6 f, G2 X2 s$ m# c3 E- S
  7. int flag1 = 0;* }3 S' V" l, \- J
  8. int count_l = 0;
    2 w$ @! K0 W5 t/ b
  9. int count_h = 0;% w9 s( u+ J9 i3 \* W
  10. extern int temp;1 O4 m, y5 ~& d' J$ x

  11. , h7 ?; v& X- ^  q' z) u
  12. void Init (void);) W  e( A- c0 b
  13. void Mod_Time_Check (void);
    * X% J' v" z/ C

  14. : N8 S) F& b/ B/ c
  15. // 主函数! j( M, n# y# @! o5 W5 o7 {) l
  16. int main(void)
    1 p! B  x3 C- w3 a. c
  17. {
    4 R5 d. k7 o8 u0 j) k  t) E
  18.         Init ();" X3 S4 Z3 U+ T, x& ^/ O
  19.        
    3 W4 e$ S, |9 b! l9 h4 b6 I) K
  20.         while (1): ~/ ~& {* @9 S! P& P' J1 f
  21.         {6 q' b+ ?0 X$ w% w# {( i$ g0 h
  22.                 Mod_Time_Check ();3 X" X+ b7 ?) d3 a
  23.                 DigitalTube_DispData_H (count_h);+ X* L4 V' u6 s* C9 Z5 Z
  24.                 DigitalTube_DispData_L (count_l);
    ; \. t6 D( v* D  }9 S2 l
  25.         }5 {8 H8 u5 a  z- h& b; ?7 q
  26. }
    + S- C& H+ t- Z7 U( K
  27. , |$ w( o4 v- a$ ?$ v
  28. // 初始化函数2 i, u# d! X" ^# h' y) {
  29. void Init ()
    0 T1 k; a* e7 t% f  R! A) @
  30. {* u" S7 I0 I1 s& {
  31.         NVIC_PriorityGroupConfig (NVIC_PriorityGroup_2);
    ( @6 u( x- O; F; u! o# n/ S( v$ s
  32.         TIM3_Int_Init(10, 884);                                                                                                                                                        // 根据proteus环境而设置的1ms定时
    & O% [8 n& |, i- x! [
  33.         DigitalTube_Init ();' ]9 Q, g0 f) M  u. A9 W  R6 V  S
  34.         LED_Init ();
    5 [- M9 y/ g' l0 j  Q
  35.         EXTIX_Init ();% ~1 [  U1 P3 @$ F+ `( m' v
  36.         KEY_Init ();
    ) R- x5 |* T6 b
  37. }# w2 S3 X. i) O" C8 D5 O, m

  38. + y' Y+ @  ?# h" ]- q$ _8 j
  39. // 设置时间函数
    / G4 @8 l+ ?5 c
  40. void Mod_Time_Check (), z0 h: g0 X/ Z0 A2 s# B9 O
  41. {% ^% @: n* _" W1 z- K9 X
  42.                 if (flag1 == 1)# K, p# \/ ]$ z- a& e" ^
  43.                 {) a/ ]+ N0 C9 W' C( |
  44.                         int i;1 Y- A7 Z1 A6 M+ ~1 y
  45.                         TIM_Cmd(TIM3, DISABLE);: t9 a. `" w, s9 A: J% `3 X3 |* g/ S
  46.                         DISP_ZERO ();6 g9 @7 v( n& u2 {. E8 a5 X0 c! Z+ o

  47. % r& H2 F9 _3 y9 k. W9 D1 s
  48.                         for (i = 0; i < 8; i++)
    0 i) ~/ ~4 e/ z
  49.                         {
    + \9 B7 [( `) _8 q, x: W3 a
  50.                                 Set_Time ();
    7 U1 T0 A4 n  Z* F
  51.                                 GPIO_Write (GPIOA, 0x00);
    7 K# u# c- u  }( G, r, a
  52.                                 DISP_Bit (temp, i);
    3 a' @) s) X, O
  53.                         }7 s! U" B; f! w+ D- [, I( P% u
  54.                        
    ; Z4 Y+ E+ B# P6 Z9 b
  55.                         TIM_Cmd(TIM3, ENABLE);
    ! Z1 O% V! U, P8 w) h0 @, F
  56.                         flag1 = 0;; I$ B* a/ ?1 A0 B8 [, P8 b
  57.                         LED0 = 1;& H6 `( [4 i' o8 o4 S) j6 z
  58.                 }: f9 ^" H4 n/ l( i
  59. }2 j8 f4 a) l. e: P4 G7 ~
复制代码
5 T$ X2 v2 G4 @
————————————————
, ~1 K% E4 v8 l1 w$ {2 T版权声明:十言1
3 L# M# z( C- j) ^1 b" g& @) a; G- G' r" v
赞 收藏 评论0 发布时间:2023-2-26 17:39

举报

0个回答

所属标签

相似技术帖

官网相关资源

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