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

【经验分享】STM32电子钟万年历Proteus仿真_LCD1602液晶屏 (仿真+原理图+PCB+源码+报告)

[复制链接]
STMCU小助手 发布时间:2022-5-29 22:14
本设计
; Y; u! G9 m  Y: p
STM32电子钟万年历Proteus仿真_LCD1602液晶屏 (仿真+原理图+PCB+源码+参考报告)
仿真:protues 8.9
程序编译器:keil 5
编程语言:C语言
编号C0003
基本功能:, p5 a% ?1 I2 {- d
1.具有显示年、月、日、时、分、秒功能;
2.能计算并显示星期;
3.能手动调整时间;
4.具有闹钟功能(LED)。

  C5 B- r4 g/ q" J$ h8 _& a
仿真图(提供源文件):
M8PR0D_T1YE5T`LY39J0[7S.png
原理图(提供源文件):
GLIJ6RAA(LM@8FI}LQHRUGE.png
PCB(提供源文件):
FFM4O4S5ZF@R)QL(Y3@W6CU.png

7 o# |4 Z6 M6 N% {, }3 N
程序(提供源文件源码):
; Z/ w  G# [& G3 `
COB_6`O5NBVF$~]WPU[HELQ.png
2 G) k8 {$ ~; l6 g  C
以下为部分程序:
  1. int main(void)' ?! v0 l: f7 C1 n
  2. {6 c/ [5 x& O( `, t  v& c/ a& ~) p; o
  3.   bool i = 0;- k* |0 L4 j9 }. g
  4.   /* Reset of all peripherals, Initializes the Flash interface and the Systick. */8 s8 C$ y: O. i. K3 w4 i: R5 q$ U
  5.   HAL_Init();
    3 n. B2 d6 y/ ]
  6.   /* Configure the system clock */
    . p3 u! q& S4 }+ b8 D: @( ^
  7.   SystemClock_Config();8 K& Y5 j) f5 U
  8.   delay_init(10);                   //初始化延时函数$ ^# |- U/ z- i1 ~0 N
  9.   TIM3_Init(2400-1, 72-1); // 10ms
    6 {! |5 E% h9 G4 ?
  10.   MX_RTC_Init();  
    5 E8 C; N3 l3 H
  11.   Key_Init();
    ( [* g8 ^  u5 {: q
  12.   Beep_Init();
    & S' q  r* U  x4 y
  13.   LCD_Init();) Q  F1 Y! E( D3 c- u* L
  14.   sAlrm_g.Alm_Hour = 0;0 [9 z# l1 Q7 P+ Z( J1 M( d
  15.   sAlrm_g.Alm_Min  = 0;- B7 q( u7 F; `7 E; b
  16.   sAlrm_g.Alm_Sec  = 10;
    ( X: p- u; y" `7 d& a/ X
  17.   while(1)' c3 n7 ]) M& m" ~
  18.   {  K4 F1 W; h% s; ~! l+ n
  19.     switch(set_mode)
      r8 e5 `% A( j
  20.     {
    ( c+ H0 R) D1 P, {4 Y/ E
  21.       case 0:$ v: O! c; m- Q, J$ Z( i! C! k
  22.         HAL_RTC_GetDate(&hrtc, &sDate_g, RTC_FORMAT_BIN);; O! u8 U+ y- V' s7 y8 f9 k0 ?" X
  23.         HAL_RTC_GetTime(&hrtc, &sTime_g, RTC_FORMAT_BIN);        
    + n7 \. E& D- E) z
  24.         Conv_Disp_Data(0);& W( i, w& j8 t0 C2 e2 p
  25.         LCD_write_string(0, 0, (char*)temp_line_one);$ S/ o# b: E5 M- K& `/ \
  26.         LCD_write_string(0, 1, (char*)temp_line_two);& b  b' F% _/ W; Q8 }
  27.       break;: S" V3 F1 L/ C( F4 G7 c
  28.       case 1:( {8 X* v; m+ b& N
  29.         Conv_Disp_Data(i*1);
    ) X+ h: E3 g& t( }7 U0 x7 r4 S3 K
  30.         i = !i;
    . o- U8 R  f0 m' T9 X% f( }5 v
  31.         LCD_write_string(0, 0, (char*)temp_line_one);
    , z4 z" C% y  d0 X& ^0 h
  32.       break;
    % I. q; f: ~' h/ e- C/ ^: B+ [( w
  33.       case 2:
    ( K( I' O/ g6 l% R5 D0 i; u
  34.         Conv_Disp_Data(i*2);
    . D) O- @9 n1 K- U, K. F
  35.         i = !i;5 L0 b" b7 K; u0 `" q* R
  36.         LCD_write_string(0, 0, (char*)temp_line_one);
    7 }5 Z& J% W/ C2 ^+ T5 |: A/ b) S/ c
  37.       break;7 L8 l% X. n3 O& c  a* K( f4 ]
  38.       case 3:
    1 ~% n# E9 l, @# T) a% F) v$ a/ k
  39.         Conv_Disp_Data(i*3);. E/ v. o; P6 J# D: U
  40.         i = !i;$ E1 h6 c+ J4 t6 U& w; E
  41.         LCD_write_string(0, 0, (char*)temp_line_one);- Y( {8 ?7 U2 K' ?- L
  42.       break;
    , N8 k9 L6 S* v2 {/ J& y8 C  d! N
  43.       case 4:
    $ ^# E. ], q# ~' y  O
  44.         Conv_Disp_Data(i*4);  y/ g8 i$ [- V& j, o
  45.         i = !i;
    - D; }2 K' R' F
  46.         LCD_write_string(0, 0, (char*)temp_line_one);. a( z9 ~/ i4 p" s
  47.       break;: p1 W# ?9 k* R' W3 _' G" @
  48.       case 5:& a: J% i& D- R- M! f
  49.         Conv_Disp_Data(i*5);
    : P3 k/ D& Q. p( O0 v
  50.         i = !i;5 d; B9 q5 K1 l! T
  51.         LCD_write_string(0, 0, (char*)temp_line_one);* u4 W1 u) `# c" r: H
  52.       break;
    + i8 o( D' k. u/ \( }
  53.       case 6:2 K2 l. o- G& g0 W$ U
  54.         Conv_Disp_Data(i*6);* S" f% L9 U/ E) o. o  |9 _# u. N
  55.         i = !i;% G* _* S7 t7 w* g0 c$ L
  56.         LCD_write_string(0, 0, (char*)temp_line_one);
    5 ]/ V# A" n/ D" Z" d& ?
  57.       break;   - u7 N9 N  {8 O( ^9 }- ~  D
  58.       case 7:
    % V0 U0 [; H4 s; S4 W; T, N
  59.         Conv_Disp_Data(i*7);
    5 W$ q# W; O8 c* m$ f& n+ H: H
  60.         i = !i;0 @3 r* y7 H1 a  V
  61.         LCD_write_string(0, 1, (char*)temp_line_two);
    # m3 n8 X, r  X  W6 u& x6 A4 g
  62.       break;    2 p+ N" ^+ ~9 A, q1 }1 {9 ]2 f2 d
  63.       case 8:
    / M! S8 ?6 F! [' x% d' c; b8 q" R
  64.         Conv_Disp_Data(i*8);
    / U$ `2 l' P% @; J
  65.         i = !i;
    2 P; Y' K7 _8 j! ?, ?4 e' H
  66.         LCD_write_string(0, 1, (char*)temp_line_two);/ T0 t; N/ y4 q/ Z: u
  67.       break;   
    * j5 `3 _2 B9 p* V
  68.       case 9:; ~0 t+ L# x2 {
  69.         Conv_Disp_Data(i*9);
    " v+ a+ R4 c( x5 W% X1 j
  70.         i = !i;
    : M* |2 w- p% \$ c& W3 j
  71.         LCD_write_string(0, 1, (char*)temp_line_two);- W5 x5 x: N" o4 e' D
  72.       break;     
    ! k% z4 I6 O1 n. E3 u) T6 V
  73.       default:        
    6 o# q' t  W  _4 E% j
  74.       break;      " i4 k- W% e* O: W- T. W
  75.     } 9 _2 T) \6 L5 Y& p$ x$ H
  76.     if( (sTime_g.Hours == sAlrm_g.Alm_Hour) && (sTime_g.Minutes == sAlrm_g.Alm_Min) && (sTime_g.Seconds == sAlrm_g.Alm_Sec) )
    + f% Z' `4 j4 \
  77.     {/ B( K9 Q9 ^( K2 X1 B* u) V5 h
  78.       for(uint8_t j = 0; j < 10; j++)
    0 W) W, a9 N6 E
  79.       {& ], U& C0 }% R" L: W4 m3 x! M' [% {
  80.         LED2_TOG();7 V% \6 v0 h6 d" \: A* f  o
  81.         HAL_Delay(300);: E9 i, Y' N  D) @+ |: a5 d
  82.       }   
    7 d& ?% [8 u) @/ t- ^
  83.     }0 @7 j& I% Z" {! R& H0 U6 V! S8 e) k
  84.     HAL_Delay(100);. A4 P: y" ^0 V  x$ Z) ~) i0 ]" i! v
  85.   }
    4 s; J$ }( T, D9 B0 O9 w
  86. }
复制代码
资料清单:
640.png

; d6 `, F+ ~  |8 ?6 R& w
收藏 评论0 发布时间:2022-5-29 22:14

举报

0个回答

所属标签

相似分享

官网相关资源

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