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

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

[复制链接]
STMCU小助手 发布时间:2022-5-29 22:14
本设计
" Q$ x1 Q' O5 m$ P
STM32电子钟万年历Proteus仿真_LCD1602液晶屏 (仿真+原理图+PCB+源码+参考报告)
仿真:protues 8.9
程序编译器:keil 5
编程语言:C语言
编号C0003
基本功能:
0 \8 G' E3 w. A5 X: W  `" R% \& g
1.具有显示年、月、日、时、分、秒功能;
2.能计算并显示星期;
3.能手动调整时间;
4.具有闹钟功能(LED)。
# z5 k: p0 }$ Z: }( @
仿真图(提供源文件):
M8PR0D_T1YE5T`LY39J0[7S.png
原理图(提供源文件):
GLIJ6RAA(LM@8FI}LQHRUGE.png
PCB(提供源文件):
FFM4O4S5ZF@R)QL(Y3@W6CU.png
6 F/ S: y0 [6 J+ n0 D* h) o
程序(提供源文件源码):

: @. V4 N6 [4 u! {
COB_6`O5NBVF$~]WPU[HELQ.png

7 s7 _+ d( Q) ^& V3 m& p% i; q
以下为部分程序:
  1. int main(void), W0 C0 K: N- b/ U- R7 S4 J
  2. {: k9 F* v- T7 U7 J5 ~+ E
  3.   bool i = 0;) `* M  z" N$ Q+ H+ _
  4.   /* Reset of all peripherals, Initializes the Flash interface and the Systick. */* g3 L' N3 B( ^
  5.   HAL_Init();  G; y/ {9 s5 U) u- [+ }1 P, j
  6.   /* Configure the system clock */
    ( B' ?: n8 E( x) F$ I( n/ Z; Z
  7.   SystemClock_Config();/ L9 F2 s" ^5 ~) F/ k) q& T0 v
  8.   delay_init(10);                   //初始化延时函数$ e5 c; C) ^' B* u; r
  9.   TIM3_Init(2400-1, 72-1); // 10ms
    ! U( ~* L8 r, |) W+ ?8 z4 v
  10.   MX_RTC_Init();  
    + o; Q7 F- @  o
  11.   Key_Init();
    * G+ F" Q; s$ g3 g! r
  12.   Beep_Init();
    9 f$ D! U. y6 F& `/ N. n
  13.   LCD_Init();
    ! c9 X8 I2 M$ L% R4 t
  14.   sAlrm_g.Alm_Hour = 0;0 c# o! G) y, u- Z; ^2 \
  15.   sAlrm_g.Alm_Min  = 0;
    5 O$ x# ?" V5 U  c1 k$ I! e
  16.   sAlrm_g.Alm_Sec  = 10;, \/ j2 w) u5 w* I4 c+ ~5 Z7 @  z
  17.   while(1)
    ; ]9 t" h0 c8 v' ?  Z
  18.   {- v# {/ c" f8 g% n' U9 \
  19.     switch(set_mode)
    6 Y( g! n; s% g* M( F
  20.     {1 b* Z1 q. D2 V% d, O
  21.       case 0:' V) X! w# Z2 k0 W5 k
  22.         HAL_RTC_GetDate(&hrtc, &sDate_g, RTC_FORMAT_BIN);
    " {6 Y2 X% {* f! ~0 o
  23.         HAL_RTC_GetTime(&hrtc, &sTime_g, RTC_FORMAT_BIN);        : o& `  R. r% A3 h/ R# ^) a2 ^
  24.         Conv_Disp_Data(0);
    6 K' j$ I! W0 |8 n
  25.         LCD_write_string(0, 0, (char*)temp_line_one);
    5 m9 C& ~0 ?0 v+ ]& J! T
  26.         LCD_write_string(0, 1, (char*)temp_line_two);. [! c) b" f* {
  27.       break;8 R% B9 Y# s% T# P# ~
  28.       case 1:4 {& i. ~. F/ E' C" O
  29.         Conv_Disp_Data(i*1);0 R9 z1 V. j  ^$ ^1 \& o) ?
  30.         i = !i;$ P9 D) s4 _) O( h: }! ?
  31.         LCD_write_string(0, 0, (char*)temp_line_one);
    8 @7 n( \  Y& x* w
  32.       break;+ }/ o1 D- v) U
  33.       case 2:
    * K/ e- ?6 V7 @% m6 p! O6 X# @* c6 I
  34.         Conv_Disp_Data(i*2);
    0 Y: ?* R6 Y( K5 }# P6 N' U
  35.         i = !i;- g0 x. i; X  ?, i: o- y
  36.         LCD_write_string(0, 0, (char*)temp_line_one);1 X+ \2 i0 L) d/ U  `' Y- U, a
  37.       break;
    - d( N( f7 M- w
  38.       case 3:
    ' h5 ^2 W  ~9 v) g. N
  39.         Conv_Disp_Data(i*3);
    % D% X% p& k0 _% k3 i, D
  40.         i = !i;
    " w0 o5 y9 O0 o+ U1 }
  41.         LCD_write_string(0, 0, (char*)temp_line_one);
    ! d/ g/ K! A! l9 q
  42.       break;
    7 ^$ Q1 g: R7 Q! F9 f4 i
  43.       case 4:) S3 m; [  U2 V: ?* J9 c
  44.         Conv_Disp_Data(i*4);, t2 ?6 F* m( s$ h$ {4 K
  45.         i = !i;
    ( k+ `  J1 J' B9 A* X" J
  46.         LCD_write_string(0, 0, (char*)temp_line_one);
    ; _# h) v6 o5 [! J& U/ K7 O2 y
  47.       break;
    . p, }) [. r  P% B$ h; ]) }
  48.       case 5:
    , H. _: T& w2 _, z5 ?
  49.         Conv_Disp_Data(i*5);3 t0 }, z. _9 S' b
  50.         i = !i;/ W9 l/ _8 u- w7 T
  51.         LCD_write_string(0, 0, (char*)temp_line_one);
    + z/ S. k7 C* P
  52.       break; " {9 F$ \# p- p, w8 g
  53.       case 6:
      N$ _% d1 g1 B3 Y1 p" N- s
  54.         Conv_Disp_Data(i*6);% A4 i7 k2 b* o$ `" ^9 W- G. O/ ]4 z
  55.         i = !i;) a+ d! N# p; N" Z
  56.         LCD_write_string(0, 0, (char*)temp_line_one);  }- B9 n; P1 M2 _8 t5 M
  57.       break;   3 |- E/ `; `, n- J# W
  58.       case 7:5 r) L9 v! d& m/ H9 m
  59.         Conv_Disp_Data(i*7);9 w8 A* |, }$ C
  60.         i = !i;6 y1 C3 N9 ]1 A
  61.         LCD_write_string(0, 1, (char*)temp_line_two);# ~& f8 m# X  L; {9 {; V8 Y3 Y
  62.       break;    1 a5 U5 A/ N* m/ W5 {. ?- q* S& O
  63.       case 8:
    $ }; m+ Q) @4 R1 t' _, Z$ U
  64.         Conv_Disp_Data(i*8);
    ; v5 H" q) ~) y  x
  65.         i = !i;
    & z! d8 ^$ J, u" _" E
  66.         LCD_write_string(0, 1, (char*)temp_line_two);3 k% l* _# Y9 n- B) W" O- e( j2 ~
  67.       break;   3 O) U6 H' f% l/ w( V1 n
  68.       case 9:% G1 M3 G: m. u0 H, [- ?
  69.         Conv_Disp_Data(i*9);
    . t7 _3 @9 E6 {  e  M
  70.         i = !i;
    , s! n1 x9 d7 V3 J& @
  71.         LCD_write_string(0, 1, (char*)temp_line_two);' o( P* r' G' f5 B  Y; Y2 U
  72.       break;     ; `- C$ B  k# b" J: E; Y' ?
  73.       default:        8 c3 K8 r% U: n( X( p% R7 u
  74.       break;      % X5 j. M( S# m' W3 L+ W5 m3 A
  75.     } 8 U0 W1 q* S; d/ x
  76.     if( (sTime_g.Hours == sAlrm_g.Alm_Hour) && (sTime_g.Minutes == sAlrm_g.Alm_Min) && (sTime_g.Seconds == sAlrm_g.Alm_Sec) )& y' }9 O3 g" e* [$ m
  77.     {  ?' J" Q, k! ^- U* V9 g% R
  78.       for(uint8_t j = 0; j < 10; j++)$ K5 L+ n5 T9 X# t: w9 t2 U) {
  79.       {
    $ T3 D8 n, l$ ?3 @! B% O! d4 L
  80.         LED2_TOG();( f1 D, G6 T/ G* u3 g" p
  81.         HAL_Delay(300);- D! E# k# I, w$ X
  82.       }   
    - \$ i9 z) Z/ {5 ^8 {8 q
  83.     }
    4 k' S6 r* p! O0 a- ^/ x: a
  84.     HAL_Delay(100);1 n; B+ n" X# B
  85.   }
    ; {# ^0 S8 x; n
  86. }
复制代码
资料清单:
640.png
8 u4 @, L/ ]* L- Z% K) E& C
赞 收藏 评论0 发布时间:2022-5-29 22:14

举报

0个回答

所属标签

相似技术帖

官网相关资源

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