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

keil程序编译无错,但是无法在LCD1602上显示东西

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
keil程序编译无错,但是无法在LCD1602上显示东西
) W. `: E' D" h5 K4 m" U2 A+ R8 E- a" J/ b+ X0 N/ ~& P2 O

! [) e- a7 m- n/ [我打算实现在lcd上显示时分秒功能,但是无法显示,求大神们指导啊!!!要哭了都!!!* v" `# c: k: z! S: ^2 \  Q' d
#include<reg52.h>( C/ m7 |' J  N$ h
#define unit unsigned int
- ]  e9 e; n( x4 ]/ X#define unit unsigned long int
/ X- j5 w$ f7 ?7 Z, j# a#define unit unsigned char uchar code table[]={'0','1','2','3','4','5','6','7','8','9'};1 x, h, U( E& _$ u
unsigned char table[];
+ z$ ]8 t. W  I8 o! d4 f7 O3 Vunsigned char table1[]=" : ";
) {9 `/ h3 Y- s  @. T* M" F8 N2 Gsbit RS_LCD=P0^7;
$ y8 s& G/ S1 D3 H6 A! Dsbit RW_LCD=P0^6;
# _% [5 i8 I: K) J3 esbit EN_LCD=P0^5;
. f" G. `6 T& r1 }5 ~9 u5 C% Kvoid init_lcd();: B9 D, D, ]  w' S$ Q  t! b% j* L
void init_zd();1 h: {  L' r6 m) S9 D; {
void Write_com(unsigned char com);
8 l" I1 V% z+ a% p. U% i4 vvoid Write_date(unsigned char date);, b3 O- R2 s  w; G* d: U
void lcd_pos (unsigned char pos);  v" g) u8 J" b% j. T
void delay(unit xms);
+ x2 B. b0 `+ P4 c/ D0 Nvoid date_processing();5 r) n; N' j) u$ S* `
unit sum = 0 ;
0 f. M; @, j# j& A; q5 f! Y# iunsigned char time_seconds=0;
' R7 l) o0 U. v# Cunsigned char time_minutes=0;
* e0 ~) B( _  T8 q( Eunsigned char time_hours=0;/ `8 U5 P% `3 n% l+ m
unsigned char x=0;
4 Z' g; x, B; ]% q! o1 o6 vvoid main()
; y6 _: y$ s  o% v{
) R+ n6 X8 r: N/ z) G# qunsigned char i;" k" Z3 l7 O- O% _6 K0 a2 d( ~$ u
init_lcd();' {$ Q1 Q! r0 T% M+ \
init_zd();
) B8 [' u& l$ Swhile(1);
& U& G! ?$ E- u" [{
* p# I( I, E: L8 f) h& v% C! Pdate_processing();
- j# k4 N# Y* C) V' x1 {lcd_pos (0x41);) J- {- Y% c4 _8 R
Write_date(table[time_hours/10]);/ E$ M8 y  U0 B, Q
delay(5);. v) _/ }% R, Y- O
Write_date(table[time_hours%10]);+ x' V7 Y% D. s  B
delay(5);
3 t# J) L" K( I7 J! Afor(i=0;i<3;i++)# M* \* |) @8 v1 `# _
{
. A8 V2 s6 ^( ]Write_date(table1);
9 Z8 V3 G* x) o2 `/ U# Zdelay(5);% ~( ^% p+ A  p5 m! Y' G
}
( l$ F: \" P  Y) m, M8 @7 v5 KWrite_date(table[time_minutes/10]);
$ j: V+ S0 L1 L" Q% vdelay(5);7 v! m; Z! y5 L6 r2 h% L( e
Write_date(table[time_minutes%10]);
, F2 w) \% O$ {$ W% v, l5 Sdelay(5);+ z8 }1 r% L. C* q% X- h
for(i=0;i<3;i++)4 |+ N9 j3 [) `; s# i
{
% `7 l8 D; g( @' OWrite_date(table1);( |4 O4 `, S( m
delay(5);
) y/ j% n+ s* M, {}0 [& B1 z3 X* y! p5 g
Write_date(table[time_seconds/10]);
4 Q* R6 H! m- y+ k+ Y- \4 ^6 wdelay(5);! W2 a5 y# z8 `: L
Write_date(table[time_seconds%10]);
! P; j# x3 h& T# d" {! C* wdelay(500);; S! s/ R8 u$ e8 B
Write_com(0x01);& _5 d! z( |) I
}
$ U, n! x/ x! }  D4 o}
: N; u' ^- M0 T# w8 V3 }void date_processing()
5 {& E/ J" f: O{& Z2 U" ?' g: v+ q4 u8 H
time_hours=sum/3600;1 n- ~& R- f! P4 J
time_minutes=(sum%3600)/60;0 S* C( t3 c* E
time_seconds=(sum%3600)/60;; o( U) L9 c/ F" {
if(time_hours==24)
2 w+ `) H! g1 p{
8 N0 g( e3 v' |3 ?7 Qsum=0;
; B2 d6 G+ `% ^, }7 p8 M" ?7 G% y}
2 [$ {4 P+ C) k7 c* f* i7 G8 x" V}, |5 f$ F* a/ f' d/ x' i. N& S% ^
void init_zd(): a! u4 Y6 c8 @4 E+ m
{
& D( o, k- M* O( U$ [" LTMOD=0x01;
9 l2 X: G3 X! ~  MTH0=(65536-50000)/256;
, X6 S1 ^$ d4 u, C- i8 |TL0=(65536-50000)%256;
7 y- Z. ^, @0 X2 J5 y. Q+ QEA=1;
( S) h6 m! l6 q( v7 U# `ET0=1;+ s; S9 d) K1 p/ I" e+ y
TR0=1;
' X$ Y: U+ N- q4 b. |}1 A5 D+ z: M8 ?) v1 H; a. v! L
void lcd_pos (unsigned char pos)
$ I3 q8 V" D1 q( O6 d{: J& B% Q: `: l$ D: _6 x
  Write_com(pos|0x80);
. i' l: f! u6 S6 j+ q, E6 x3 {}
$ I9 I# f/ ]0 Jvoid IT_0() interrupt 1! y8 L/ @( m0 C
{
& D3 G" |; S( D+ G4 f$ H1 CTH0=(65536-50000)/256;
0 p' }& [5 I: i! LTL0=(65536-50000)%256;3 A" Y; z' k( \  V2 N; j* P
x++;' D/ \4 H* k" I3 m  u
if(x==20)+ y! K( D. @6 G1 W' u. ^
{3 j5 O) {( p$ {" f) ]3 W
x=0;, E: u1 K5 P, M
sum++;* [6 ~% ^; G, P4 r  x( h4 p( m/ a
}
) R+ k  D6 q% C% e; h& a}
' B, _' s* n- p0 X: H8 Q9 uvoid init_lcd()# U8 `3 y. F" \# V9 l
{
2 {, z' j+ V" L8 n  FWrite_com(0x38);
2 j% r3 K' s$ m: n  {: rdelay(5);. Q2 R& V7 b6 ~1 d/ I
Write_com(0x0c);
& h9 x' j5 X. idelay(5);0 d. a* \8 i4 d6 R$ G% @
Write_com(0x06);
5 Q) Y  k( E" \7 D* Y3 w; Ndelay(5);- @7 \$ k. `1 r: n
Write_com(0x01);8 W. p. Q+ k, R; u$ I0 }
delay(5);
# ?+ l5 L& i4 B0 c}. e; e0 I& B  v) h
void Write_com(char com)
0 u& B# A6 u, L{9 o1 h; m" p( C: X$ _
RS_LCD=0;
' x0 k: ^5 D, b1 qRW_LCD=0;8 N, M" E5 r, U6 l6 R9 c/ f
EN_LCD=0;
+ K' w; @+ O4 K5 ]* X) Fdelay(5);5 b0 u& Y; B; E0 ^. u3 f& ?
P2=com;) U  s) K3 @2 g5 s, [2 H* K/ V
delay(5);
6 j: e, N. S" H0 A2 }  oEN_LCD=1;- t+ z' M" {! Q2 N1 P# n
delay(5);
) U, I! v5 ~$ m3 z) p. a3 gEN_LCD=0;
! P3 b7 |$ ]& Q+ Y0 M+ f}
& y& o* N1 a6 }* {% pvoid Write_date(unsigned char date)
* ^# a1 n7 f( x/ n0 K) g{
& E) p6 S# P8 r. XRS_LCD=1;4 R% V& b+ E. Z+ J! f
RW_LCD=0;
: t: \9 F. }; z& a5 g* sEN_LCD=0;# v, \3 i) q& ]# m' E! ?6 s" i
delay(5);/ K: N& S- J( x4 L- }- B
P2=date;: N5 k, C: O; |7 `. p5 ^7 f$ M
delay(5);* ?# i9 R( g+ b! i# o
EN_LCD=1;
# l6 g- }+ ?4 J4 |9 E3 ddelay(5);" B0 U6 _2 P' Z! ^( Y2 V) e6 D
EN_LCD=0;  ?9 Y; |0 u$ U% a% e
}8 s; D0 K4 x5 X' }( H
void delay(unit xms)
/ o; D! }7 ~& F+ _{0 Z( {6 D+ ~( i8 l8 k4 ~* K
unit i,j;8 C; V& T& Y& T! T" C  e
for(i=xms;i>0;i--), }6 [% n5 V; T/ u& b) s
for(j=100;j>0;j--)
5 A& f% d) d7 n& M) v;
& `3 s# ]5 v7 T, j$ d}

( F- O6 b5 J2 _+ u# n& x" e% ]

该用户从未签到

2#
发表于 2019-4-1 09:48 | 只看该作者
P0口有没有接上拉电阻,1602没有用查忙,用了延时,那就要看延时够不够了,增加延时试试。另外就象楼上说的,先调显示,能正确显示想要显示的内容,然后再调时间部分

该用户从未签到

3#
发表于 2019-4-1 10:17 | 只看该作者
屏幕能点亮吗??

点评

可以的  详情 回复 发表于 2019-4-1 10:26

该用户从未签到

4#
 楼主| 发表于 2019-4-1 10:26 | 只看该作者
relchhiclty 发表于 2019-4-1 10:179 s9 f5 z# P2 w3 z" c
屏幕能点亮吗??

! U6 T( L/ W6 |, G/ v7 P: X可以的

点评

可以点亮,看看时钟和读取字库的代码  详情 回复 发表于 2019-4-1 10:36

该用户从未签到

5#
发表于 2019-4-1 10:26 | 只看该作者
你要分两部分去调试  一个是 时钟芯片来的数据 处理成 时分秒 另一个是LCD1602显示程序,写成函数 有参数 这样

点评

显示程序没问题的,那就是时钟问题了吧  详情 回复 发表于 2019-4-1 10:36

该用户从未签到

6#
 楼主| 发表于 2019-4-1 10:36 | 只看该作者
Demyar 发表于 2019-4-1 10:26# ^/ D' ?, G- J$ h: _
你要分两部分去调试  一个是 时钟芯片来的数据 处理成 时分秒 另一个是LCD1602显示程序,写成函数 有参数  ...
+ Q/ o/ h# v1 j5 r5 a% q
显示程序没问题的,那就是时钟问题了吧1 y9 Z$ Q. y' Q( }4 W. L

该用户从未签到

7#
发表于 2019-4-1 10:36 | 只看该作者
小黄豆 发表于 2019-4-1 10:26
" ?7 S8 x3 I, {1 H1 K3 p9 z可以的
8 ^1 ~0 T8 A4 H4 f
可以点亮,看看时钟和读取字库的代码# v) \+ c* s$ Y! g. k" r6 S4 ]

该用户从未签到

8#
 楼主| 发表于 2019-4-1 10:52 | 只看该作者
OK了 解决了 谢谢大家了

该用户从未签到

9#
发表于 2019-4-1 13:10 | 只看该作者
是不是应该自己想想再来啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-23 13:54 , Processed in 0.140625 second(s), 29 queries , Gzip On.

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

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

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