找回密码
 注册
关于网站域名变更的通知
查看: 548|回复: 1
打印 上一主题 下一主题

51单片机用LCD1602液晶显示年月日,及时间时钟设计代码

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-18 13:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
51单片机用LCD1602液晶显示年月日,及时间时钟设计代码
1 h) I; C  Y6 I. n( |% j8 \
* N8 i4 ~3 ?8 q9 C9 r* p# z
9 {& y# d$ b8 y# T
#include<reg52.h>
1 ~+ H  u/ t# o9 N# J2 X# r. U4 \#define uchar unsigned char 7 @+ W6 {2 k# G% a2 K! M" a
#define uint unsigned int" X# [+ B+ h6 c' k6 L1 x  C
sbit dula=P2^6;" g( \) r% {2 G0 S
sbit wela=P2^7;# \5 g3 F" X- V8 Y
sbit rs=P3^5;7 E. R% O& O" Z. u& S% m; u
sbit lcden=P3^4;
0 Z5 M6 e" B# i, Osbit s1=P3^0;; _4 X' W* K% m
sbit s2=P3^1;
  B) m3 {" q0 j( Q$ {) T8 vsbit s3=P3^2;
. T3 i( L9 ^" Y! A' ^sbit rd=P3^7;
7 ]% X8 w, H8 S1 b2 N4 V$ Iuchar count,s1num;& z0 G0 o. Z9 n4 o9 B( D
char miao,shi,fen;
6 _( K2 B1 w8 tuchar code table[]="  2007-7-30 MON";
7 x' X/ i, N; _9 I5 Z* @# Iuchar code table1[]="    00:00:00";$ I, f  x' j- C) A" z3 W
void delay(uint z)/ E# W8 P" N& o' @7 {& h
{- |1 N& d, ~3 b% [9 n5 u
        uint x,y;
- M2 D+ _7 F5 F& |, t2 i, |6 |5 [        for(x=z;x>0;x--)! o' |* l9 U% k
                for(y=110;y>0;y--);
( r6 S0 J" q: k6 k: `4 |}- n& _; r; n$ h: e; \4 V5 q
6 ^' f" C' e2 k9 k1 [
void write_com(uchar com)
4 v- q$ v2 _' n$ o/ Q* q{
! s; g; v7 S9 H7 ]/ L9 W0 f8 x        rs=0;
1 X$ M( _* K7 q        lcden=0;& O8 U& j+ T. L3 K
        P0=com;
3 E" }+ X5 |% s; t        delay(5);( g+ l' d  F1 a9 z
        lcden=1;
2 Q) E, c/ @/ b; F        delay(5);0 {* a% c, H2 J# Z% h
        lcden=0;        : L) j7 q* t1 Q" F
}
; `/ ~% y+ K( |6 r$ ?
8 J# F" p1 B8 i& L3 V: t3 X6 evoid write_date(uchar date)
* p8 p1 B+ [0 L) B% V, {. U{7 q: Q; ?9 w6 O: D
        rs=1;! S: I  s1 W# C6 l& J
        lcden=0;( s% Q5 p; ]) Z3 @
        P0=date;/ I: D# n2 D2 K+ r% Q" Z9 R2 Y
        delay(5);7 J" {) P7 x  z: p8 m
        lcden=1;4 D% F" G" c: d% S  r
        delay(5);' |/ K# u  d) s& C
        lcden=0;        4 d9 ?  L4 c; }) J& a8 Y
}
' |- s' V* R7 Z+ d1 l% {
6 f$ X7 H. K% s3 Y* a1 t- _; ?void init()+ t" D; ?3 W7 ?. \2 |
{) ~+ P4 M: @1 w0 S
        uchar num;
, x5 J8 v! j  a' R  i: @$ `( P        dula=0;
+ L/ Q4 E$ b# M6 z$ g( _        wela=0;
4 F# L6 t0 |1 B3 g0 w+ t6 U7 z        lcden=0;
  B  a0 Z$ Y0 |: h+ U; b9 M//        fen=59;
& h/ E6 K0 P( G//        miao=53;/ @5 p' N8 N+ E% \/ T  r
//        shi=23;  X5 W( |& e4 R+ l# Q: {
        write_com(0x38);
  l+ u5 _  Y1 h5 u" ]. A        write_com(0x0c);
2 T# G2 l! z. X: [        write_com(0x06);
' W6 a  G3 ]6 X) z# u6 P        write_com(0x01);
8 u  N3 r5 d, p: a        write_com(0x80);
: S% X! k! n9 z- {; z* X$ ^5 m        for(num=0;num<15;num++)
. {- q+ |, p& y+ W                {
- o& ~: Y9 I/ p                        write_date(table[num]);) q) r3 W* C4 r$ b3 F# b9 g! f
                        delay(5);
( R2 t# ~1 X0 Z" F" b                }
0 Z7 |2 `6 H2 v5 P" v& L0 l        write_com(0x80+0x40);  X+ L1 ~: \! \" u
        for(num=0;num<12;num++)" o4 ^5 {3 c% |6 j( i0 [
                {% o# S/ b5 b' l: i& Y9 s
                        write_date(table1[num]);( B2 R) I' Y8 V
                        delay(5);
7 c9 v% o3 o8 q) i4 c; k! Z                }4 o$ I6 w7 m+ G3 [  P; J4 k" j9 o
        TMOD=0x01;/ R8 A! G" E: y5 P, \8 b# }
        TH0=(65536-50000)/256;
; r4 f- `" f) _' h) \3 G0 f        TL0=(65536-50000)%256;
% S! [2 l4 H9 r4 Q6 F        EA=1;
7 W2 i( i4 ?6 V/ P        ET0=1;
( H4 W- m% p* y# }" w8 Q: V        TR0=1;
( w" x  {6 d+ @4 n7 Q( J) q}
7 U' n6 ~+ r3 W3 x& n7 i$ N8 [* m4 L' x: f' L
void write_sfm(uchar add,uchar date)
6 K! e7 [  F! O+ M{
% N" O, V; @' j( @6 {" [( i5 s        uchar shi,ge;3 L8 Z. k. v. ?( `# N: J2 G
        shi=date/10;* }/ t1 y6 R+ N
        ge=date%10;
7 O- e+ v# ]' ]( Z9 g# R        write_com(0x80+0x40+add);; z9 {. U" j- ^, n  H. I; T
        write_date(0x30+shi);
* _0 W: z7 p8 q1 j0 {$ Z) L        write_date(0x30+ge);' J, c6 J$ B7 m# ~3 r
}
" A$ `8 R5 C/ i2 A2 O, _1 ^8 M- Q/ t6 h. j$ ~, m7 R# [
void keyscan()
5 d& f  d' k, x% e- p& ]0 o, Z( p{( ?5 @3 h( g$ n8 |9 G
        rd=0;# Q8 N& v. C" S( I9 a
        if(s1==0)        
- F5 Z+ v: ~( E        {
0 K' Y, w$ @3 @  D2 f                delay(5);" a% O& g8 p; L
                if(s1==0)
; p& n. R9 }8 K+ Y. O                {        s1num++;
. C3 N) m( }5 ]1 B4 ]0 I                        while(!s1);
  T1 c, K- a1 z' y+ W% }                        if(s1num==1)
' _$ \- ]* m6 F0 ~3 ?                        {: _/ ?0 N1 |* `, Q( X9 z
                                TR0=0;9 t/ }: I6 ^2 v( q% L
                                write_com(0x80+0x40+10);
; A7 {9 D9 w, f% p  t. l/ E                                write_com(0x0f);- V4 d) x( ^  j# E, }' V: ^
                        }
: N( ]; R# L3 ?( S) j0 @& C        }
6 g  o& S  T3 b' z# u                        if(s1num==2)
: L9 }3 d3 F( J# b& O                        {
2 m; r1 l1 t9 a2 [- O! a- R6 P                                write_com(0x80+0x40+7);  g+ i5 C0 I6 S- P
                        }2 [* H0 i, U9 V
                        if(s1num==3)/ G# [4 i* D% w4 y0 Q6 k8 g9 Y2 b0 p: I. y/ |
                        {
' ~- H4 ~5 g* ~. |0 y1 i0 L) O# p" M                                write_com(0x80+0x40+4);+ s1 ]/ U: z* q8 F, W( Q; R
                        }) U& y8 S: L! u% S7 ^
                        if(s1num==4)
) X0 b: |3 |) D  O  o                        {9 H3 v* }' K* s; R3 F, X
                                s1num=0;
, O6 w) f4 \2 V0 B                                write_com(0x0c);
+ v5 c- R/ m  p* P' l( a  Q                                TR0=1;) ?) H& i9 W2 k6 O8 J# g
                        }
5 ?( K0 m$ X: _& t1 t4 f0 s+ p) i3 i0 n
                                6 w/ e5 r6 H: Y& C! n
                }
* X8 D/ M3 T& H9 g8 r$ D                if(s1num!=0)
! |+ {5 e: S* ]9 M/ T' y4 e                {
3 H7 `- T* U  ~3 q+ e8 x% U2 ~                        if(s2==0)2 m  E! q; E6 ^2 J4 ^3 W
                        {- j5 j: V5 [( F& Y( a* K4 j. x1 F! @
                                delay(5);/ U. x* ^, Q2 T( n
                                if(s2==0)5 e1 M. q7 @4 F* u8 |3 I4 h9 Y/ @5 |% o
                                {9 d! e6 P+ Z) p8 O/ s  Z+ A
                                        while(!s2);* e+ Y7 J' Q, i* C% Q* k/ h
                                        if(s1num==1)
! _0 R+ R! K, K: L# C) x4 G) i                                        {
. N6 ^( Y3 W3 [7 t% d+ I                                                miao++;8 Y7 b9 N$ x0 N- J+ P; v9 C0 x
                                                if(miao==60)- X2 U$ Y: H. Q. ?
                                                        miao=0;
- m1 ^! N7 Z6 M, Y                                                write_sfm(10,miao);
3 L( k+ V8 N; `                                                write_com(0x80+0x40+10);
# N' ^  J0 Q8 K1 I( B                                                
/ J# y, u) G# \2 S. @8 C) r5 M) E                                                6 n* ^$ g2 S# N+ n: X" N* ^/ Q
                                        }
7 H; o/ c* K, k                                        if(s1num==2)
  l9 ]( u% _2 b( D* p% n                                        {+ e  H: C/ H+ T  S
                                                fen++;$ @" z1 L& Y: [2 V
                                                if(fen==60)
6 G# r: n6 l# B& |# h                                                        fen=0;
% f+ V' \, n5 u; q, `: L                                                write_sfm(7,fen);) S  v! ?* a: H( G0 ~
                                                write_com(0x80+0x40+7);
* W& J9 K5 E, d0 u) t7 l                                        }# V2 I& C2 v% \. Z$ S$ ?5 _! O
                                        if(s1num==3)
# x7 L; c; e+ h2 u/ T, I4 J; V                                        {  a& _3 K1 R# l- g# n' e: X/ N
                                                shi++;
6 B% X, a/ Z' ?( X9 C/ R( X                                                if(shi==24)
/ ?  e+ O9 J( {/ S9 A/ w                                                        shi=0;
. k6 o5 w9 v1 @3 n( ]4 ~5 W0 [                                                write_sfm(4,shi);
, N  G( V9 c3 n% b                                                write_com(0x80+0x40+4);
9 s5 _; x; r# G7 c                                        }
) T9 W3 |$ P5 f# I+ l: q                                }
2 i: F9 l  l8 X4 P                        }
4 ^$ w: I& z; t* W. X                        if(s3==0)
" F5 k& W" E, t/ w: `5 @- c                        {
' d/ ?; c) x7 b$ ~                                delay(5);
. Y! t* f# S( Y1 }& q7 |                                if(s3==0)
4 t' C7 }9 }$ p# Z2 A                                {
5 w% V4 `9 P6 x- S! y8 c                                        while(!s3);, f8 D( m8 a# S( I& y( O/ j7 G+ `! ~
                                        if(s1num==1)1 }( C$ J% d8 U1 s
                                        {
0 S" @: E8 k) g. Q                                        /*        if(miao==0)
: q: u% t9 ?8 N& l1 ^" e* X( \                                                {9 q: f, m- \4 z* z: K
                                                        miao=59;
, J# X2 x$ s3 p+ I5 }# H                                                        write_sfm(10,miao);
0 v" ~& ~1 A1 ]0 Z0 ]  b                                                        write_com(0x80+0x40+10);
" T! ^' ^+ _# c                                                }*/
4 h  G, Q; _7 V. W6 c0 {( x7 K                                                miao--;! Z/ c& }- c5 U: I& f
                                                if(miao==-1)
0 o7 b! H0 q; y  U# u                                                        miao=59;
( j8 E. @! L) Y                                                write_sfm(10,miao);; J$ R" V! F9 W, P! Y4 n
                                                write_com(0x80+0x40+10);7 [& P6 p% c; `& a
                                        }
7 ~9 \5 ?! h  q                                        if(s1num==2)
" z$ _! S/ C* P9 ?% m6 k1 b                                        {3 E4 l: t- r# V! j6 l- s
                                                fen--;, W& n1 e' O/ u1 [- E
                                                if(fen==-1)5 f$ U5 H, {. l. {/ C  c/ I
                                                        fen=59;
0 L) ]4 s# q* o$ u4 |                                                write_sfm(7,fen);
% r. x  {  k# X0 P                                                write_com(0x80+0x40+7);
6 d( O# J$ o4 |7 R1 O! O' @1 t8 }                                        }9 C2 p& [4 Y; `$ L. b! K1 t
                                        if(s1num==3): }7 R0 X6 L+ N5 a1 S5 Y
                                        {3 _( A. u) P& v: V4 G9 S
                                                shi--;
8 e& g6 a5 V2 G3 n& v. n) [                                                if(shi==-1)
9 i5 Q3 `9 M6 Q" Q                                                        shi=23;; [7 }: Q- s5 S; L
                                                write_sfm(4,shi);
7 T6 n/ `$ L- C) B! v( f+ Q, t* N                                                write_com(0x80+0x40+4);+ h% T/ Q7 y/ r- w7 o3 D
                                        }! z* t1 Z" I1 J9 F' F
                                }+ m) z" o! R( n
                        }& y* K4 G& @* @+ }4 w/ u
                }) E/ f9 `: q7 ^. Z' y
}
, r5 J$ L" S" F8 h: \" u7 v" [void main()
4 I3 @' j5 O4 K  x1 X3 g4 e{* W: m1 q* f# r  o* m
        init();+ K9 D8 Y/ Q6 f
        while(1)* K$ j7 {% x& p
        {7 g& O# x$ q7 B
                keyscan();
/ O6 s( B" _: F               
& ~7 A- E7 X5 d4 j& F        }7 g; b0 a0 _8 w' e! y# ?# m
//        while(1);9 g8 U5 [. ^* R7 R- A
}" i; M- A% \) Z; r0 n
4 Z# r  m" b! C7 }* \
void timer0() interrupt 1; V- |$ |$ t* Y6 H
{7 {9 \, E6 C# V! q! b5 D( R5 O  y
        TH0=(65536-50000)/256;
+ I/ Z) L# z1 ?/ j        TL0=(65536-50000)%256;
% r/ j- l$ n0 Q2 R+ _( G        count++;
( N+ ?. j. P$ k. Y5 Y* |' n: e; xif(count==18)
# ?0 L7 I) [  M: C5 H/ Q                {
! L. u' M0 t7 j9 E0 \4 Q# e                        count=0;
" h$ n4 T3 Y9 x9 a$ B6 q6 V                        miao++;0 O9 Z  }. g' D" J
                        if(miao==60)
, o; k6 W9 ?  u& c1 f' c                        {7 ]& b4 Q8 e/ f$ |  X4 j7 D
                                miao=0;
7 Z9 |5 K) W: s- I2 E                                fen++;3 r3 K1 h, g5 ^! T. F2 J4 @0 J# j
                                if(fen==60)( E$ Y; K) T9 ^. X1 s9 z. p
                                {
/ N$ R: }4 ~8 }$ }3 \1 R4 w5 F                                        fen=0;
; E; x" u. S+ ?" E' t4 Q0 }& _                                        shi++;
1 }: U& E& @+ P7 j! O& X$ s                                        if(shi==24)2 t5 `4 @* [% G8 O+ e0 l
                                        {
0 ~" n4 \4 x7 z% R                                                shi=0;
& J$ z4 S) |  J9 N                                        }
; \; F  ], `: R& Y& L- |                                        write_sfm(4,shi);1 F2 ~% j! w  w2 [- Q  q" u
                                }
& f: l& h* [' o& s# M6 p                                write_sfm(7,fen);/ G% x- w' v+ l+ p6 r! n
                        }
8 M: t" j* L& P/ Z                        write_sfm(10,miao);
9 A4 g* j7 F+ }                        5 z* D! ?' V4 v7 o% K) R
                }        3 f6 [7 [2 d# t' `
}

! s  a8 K% g. D7 r4 ?+ ?/ P: i; H' J
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-10 03:05 , Processed in 0.093750 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表