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

基于STM32的电子时钟设计

[复制链接]
STMCU小助手 发布时间:2023-2-26 17:39
1、设计目的  J+ G/ Y+ g3 f8 r' l
(1)掌握使用KEIL MDK5进行软件开发的具体流程;
7 M2 U! J4 M2 M
, W8 P7 o- l# h0 X" }: J# n(2)掌握硬件电路的设计方法;: m* ?  X: H2 b+ k. h/ t
* u& b0 y3 w; I  I. \$ r
(3)掌握STM32微控制器的程序设计及代码编写方法。
) |+ v9 x3 G) H" c9 u) q
, D2 H6 {. V3 z0 ^8 e
+ O/ s$ R' |2 v% D2 g/ V
2、设计具体要求6 H* U( b5 v  z6 M
(1)通过STM32自带的实时时钟功能获取时间信息;
  Y0 v9 y0 H, v: f( h! V3 H  H0 Y
9 M7 @% S0 ?- V  M& V; H! D(2)在OLED显示屏上显示日期、时、分、秒等时间信息;- U$ g6 g) w3 V. ^- [

  |0 t4 z/ ]" n% `(3)通过按键可对时间信息进行修改;
4 j8 I1 Y) \6 y) @. Y6 B" K& J/ p2 X  D( u' _4 P
(4)具有闹钟设定功能;# ~$ B& D4 T) ~5 x( p8 N
+ B5 o/ P/ j! k2 K+ |, `
(5)加分项:自行增加其他功能。+ F+ \* P# {4 A

) m( }& u$ Y* E8 `1 a
/ `: c$ p7 W$ O, X& V+ u# `
3、proteus仿真图2 i% A8 {! x, Q% j( \

$ ?. ]$ R8 D# U1 _! y
b873cd6c9907479787c2e7dd221c0230.png 2 G; f  l6 ?( I( D, H$ P
# d" _# F1 S5 B) L  c
; `# S9 S/ D  a! Y
4、程序代码% _- ?" X& t# I2 Q% ^0 x, p
  1. # include "key.h"
    ! l* I8 ?: q' f4 n
  2. # include "sys.h"
    % O7 V- j) b0 V' s  q; F4 h9 {8 O
  3. # include "timer.h"
    2 s; Z! e$ [1 U3 F) P6 W8 S
  4. # include "digitaltube.h"# t- c3 e" T1 U$ Y8 T
  5. # include "exti.h"
    # D% P5 e( O$ S
  6. # include "led.h"4 u5 f5 t9 K" |/ C3 ]
  7. int flag1 = 0;
    % h0 l7 [$ B, p( s
  8. int count_l = 0;; U1 z0 F. H; K; i2 Y
  9. int count_h = 0;
    , G* `. F0 V) A2 d7 a# n
  10. extern int temp;6 `, z* |! _9 ^2 Z0 M% P

  11. $ d. z4 F5 ?" q5 {3 F: p
  12. void Init (void);0 n2 u' i  G1 Q$ Y8 T
  13. void Mod_Time_Check (void);2 @6 t4 [. s* b; [
  14. & y+ b' D, G( L. Y2 i# X9 F
  15. // 主函数
    , l  E6 F3 C0 a# V1 ]
  16. int main(void)
    & ~$ I- U; Z* O0 g' f+ [' \' E
  17. {; V0 p+ u& n  r$ Y0 O! Z3 L! e
  18.         Init ();
    ) s2 a; v4 g6 P6 {6 X) x8 F
  19.         ' l3 {1 [+ E* v1 y* R9 H% [
  20.         while (1), q6 s6 @& l- Y: ]( _
  21.         {
    ( u' i% f$ j8 ?) p: A  \
  22.                 Mod_Time_Check ();$ s3 `/ F7 }. @' G# p( P* O- C
  23.                 DigitalTube_DispData_H (count_h);
    + e( d& {' G+ m$ t+ X/ p' {
  24.                 DigitalTube_DispData_L (count_l);6 ?. R" R  i' I6 n
  25.         }
    1 Y  m3 G( j. y2 M7 ?. A4 _3 R
  26. }
    9 H( b2 [4 U8 M; K5 e/ i
  27. + w' G0 E# l( l+ [, W1 {- o6 v
  28. // 初始化函数
    . }, n/ ?% ]' _, G
  29. void Init ()
    9 m+ F# a1 [/ B4 W! ]# e( M
  30. {
    . v6 d0 ^+ T3 C0 M9 a- o; l- x
  31.         NVIC_PriorityGroupConfig (NVIC_PriorityGroup_2);
    ; c! F) a1 b7 c# G
  32.         TIM3_Int_Init(10, 884);                                                                                                                                                        // 根据proteus环境而设置的1ms定时+ E3 w( t( ^; V2 S, i6 S. N
  33.         DigitalTube_Init ();9 U5 t; G* W- t% d5 X( \8 A
  34.         LED_Init ();( K7 E6 A4 ]: r' o
  35.         EXTIX_Init ();
    + M+ r7 z, A( h! T4 t. v" g0 x% U
  36.         KEY_Init ();+ Z; \  g& h. u; h( _2 b! O
  37. }  F  p4 i8 Z' m0 g3 ?5 U8 l
  38. " g5 n$ O% l! F4 a
  39. // 设置时间函数- Y; ^# K; Z0 N2 B4 J* z" z
  40. void Mod_Time_Check ()
    # ~4 [8 @& L) E7 a2 b5 \
  41. {
    " E0 |# ]4 R8 `5 ?
  42.                 if (flag1 == 1)0 z$ @) _, `4 Y& O* H/ j
  43.                 {
      W' m/ h1 p4 V% e) o' A' b( m
  44.                         int i;8 m& [7 ]% ?1 t4 L- E0 H
  45.                         TIM_Cmd(TIM3, DISABLE);8 A4 [3 `$ b& V: c/ _7 Z! ]) q9 G
  46.                         DISP_ZERO ();
    ; F  S* i+ r& \- I2 h4 X7 y$ w
  47. / ~; m% F7 O# R" [; ~
  48.                         for (i = 0; i < 8; i++)
    ) n6 `3 x1 {% R+ k7 c( q2 t( F
  49.                         {# T) o: O+ ^* p# e# e2 Y
  50.                                 Set_Time ();
    ( O9 T! x$ q3 t! Q7 E/ y# v
  51.                                 GPIO_Write (GPIOA, 0x00);& F4 v# H8 I+ F# k, a, g
  52.                                 DISP_Bit (temp, i);( n- K5 ~9 `0 p
  53.                         }" z" I) V' w/ ^$ q: _
  54.                        
    $ W7 q. V0 D4 `. G- D) Q
  55.                         TIM_Cmd(TIM3, ENABLE);% k7 Y' O5 a( {. x
  56.                         flag1 = 0;
    ' @  O5 o  I' Z2 x: g; Y
  57.                         LED0 = 1;* ?1 x/ E9 W7 I/ ?
  58.                 }
    - ~8 z* M, e3 b' X, S3 w
  59. }$ q* T- u( Z5 S1 j/ \1 u. ]5 w0 W$ e
复制代码
3 W. ?9 _9 \& T. d/ l% `! Q
————————————————
! V; l% k" b6 O8 A版权声明:十言1
+ D' s" b  w0 Y7 {" a
- x; g; C$ ^. A5 w1 ?4 {3 V
收藏 评论0 发布时间:2023-2-26 17:39

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版