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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
keil程序编译无错,但是无法在LCD1602上显示东西5 ^3 U' z$ E: `5 J# B' \
5 Z$ \, O# {, B) o/ M
% S8 \3 w  F- n' x* u6 H. p. u
我打算实现在lcd上显示时分秒功能,但是无法显示,求大神们指导啊!!!要哭了都!!!
% f& g5 g' N6 Q& B* s$ H. I#include<reg52.h>
, `( J# r- R  n5 W3 ?#define unit unsigned int/ I. R: C0 T$ K$ O! ?1 f. Y
#define unit unsigned long int
4 {/ p% b6 z9 u; ~#define unit unsigned char uchar code table[]={'0','1','2','3','4','5','6','7','8','9'};
, G( X% O/ E7 ^9 s  m8 j8 Junsigned char table[];7 g' I. f& d  d6 ?
unsigned char table1[]=" : ";
5 p0 O7 X2 }6 ~- J4 M6 x/ n% T  Tsbit RS_LCD=P0^7;
- i- @" h5 \1 A* vsbit RW_LCD=P0^6;( }& i6 d- A2 a, {* l
sbit EN_LCD=P0^5;" F6 f4 ^: y6 h3 R- {( ?; @( O9 i& u
void init_lcd();
) E  c$ L( L7 s4 r) Svoid init_zd();
. x  t' R- {, X' s+ gvoid Write_com(unsigned char com);
+ P+ ]0 F" j* Jvoid Write_date(unsigned char date);
/ f( ]8 O- [& ]9 Yvoid lcd_pos (unsigned char pos);( X7 ?; d' E" j; d
void delay(unit xms);
: ~& c0 V, a" R3 F6 w6 h4 i" `0 r2 rvoid date_processing();
2 q$ L3 {# u( U0 _unit sum = 0 ;
  X- z7 Z( i: @" r# Sunsigned char time_seconds=0;
( g% W. E- K$ O  N. punsigned char time_minutes=0;9 q) d9 T* e) D* \3 b0 T. [
unsigned char time_hours=0;, L! r2 O; ^% j% Z& b! K
unsigned char x=0;  T4 t6 ~( ?( x- c8 d. g. E
void main()
' O6 N" O( r" p, h+ e) t{- g7 E. C1 y% N; f
unsigned char i;
* P, j+ K8 u9 w; U1 i5 |init_lcd();' a  A5 l4 D. V6 ^# X0 R% @: _
init_zd();
& Y' H0 J& t' o; Vwhile(1);
+ W7 ]. i! l0 L$ `0 c+ j{
2 Q8 p: E1 B8 u: @1 J( U1 `1 @) tdate_processing();! z8 d0 u. i" @# z! m) M
lcd_pos (0x41);) K: i+ [" @& _/ m9 C
Write_date(table[time_hours/10]);
6 L! o: V# Y& Sdelay(5);
0 W: H3 L: f9 x9 T6 z$ Z/ RWrite_date(table[time_hours%10]);2 t$ I. J  a$ L; D7 ^# F+ X
delay(5);
2 R# v% V/ N; K( E* a1 [1 Wfor(i=0;i<3;i++)% I" v& d# c1 t; Q- W5 T
{
; C2 Y" R5 x* t" Y7 U+ r  |+ MWrite_date(table1);
' V  a1 {  C! Z4 Jdelay(5);; I3 @* `) r* A# I0 I  m
}0 n% l( T; T( B5 b$ W3 E
Write_date(table[time_minutes/10]);
  f  h4 i: Y" E# ~' B4 p" tdelay(5);+ {0 _2 A4 K! F1 V( _
Write_date(table[time_minutes%10]);' A. I1 _5 f: p1 p9 t3 {
delay(5);2 s; @" e! ^; v6 k& n" P( z
for(i=0;i<3;i++)4 `% c0 {- n6 O% q0 @- [% R7 {) D
{& c" n7 U+ [  u. I: Q: {! I; L$ V
Write_date(table1);3 N: ^  c  q. [
delay(5);
4 u( {3 ^& i- L4 v2 u}
6 M) G4 _( r6 t* u" l. B4 jWrite_date(table[time_seconds/10]);8 R# M$ @8 T3 o+ `) c
delay(5);
6 \7 s% o- O8 XWrite_date(table[time_seconds%10]);& G- I7 _# q- X7 w& m
delay(500);
* X. l1 C( E* }3 T$ t0 o& WWrite_com(0x01);
+ d! d" m: x* A6 e) t( {, R; ?}- H1 U9 G+ o# y2 j/ f! h
}
# J- z6 @5 z4 w  i* Y, T8 M$ k0 @void date_processing()
3 ~* G% D3 w+ I4 g. D+ B{
% E/ ]7 r& _9 X/ C" T( k! t- q* Gtime_hours=sum/3600;7 {0 r. k5 n5 r
time_minutes=(sum%3600)/60;7 s: n- W8 d( D1 ], Y  W$ w9 a
time_seconds=(sum%3600)/60;
7 {. H: D. S# Q) x& I7 uif(time_hours==24)
7 v; v. E6 s  Q# r+ c% @" Q) n{
) j% @8 U, O# j' U/ i4 Msum=0;2 W6 Z* s6 P9 q
}7 }. ?0 R+ ~! |: R8 L& M) P
}
3 d1 ~% v( l8 u5 E' U' ~: [& Hvoid init_zd()
# Q% I8 \( S6 r8 G  G4 i( [{
2 X1 P7 v- Y/ z' r$ }TMOD=0x01;
8 j+ x3 M7 Q7 f! S% ]( qTH0=(65536-50000)/256;' t% L0 P& K! k  f
TL0=(65536-50000)%256;/ S7 }# b* y# G3 @8 n$ H
EA=1;8 {" z: R! J& B) O# {2 O
ET0=1;6 P$ s% m: w9 u* d
TR0=1;* D7 b4 @( b7 L0 `" k
}, c1 U9 p8 |* r: i
void lcd_pos (unsigned char pos), r: q3 |2 V/ L' Y
{
* }" c* S: a$ o8 V' x  Write_com(pos|0x80);% T2 {8 I/ o, h6 u
}7 y  K$ \& y6 P3 Y
void IT_0() interrupt 1
' }' ~/ B4 t' E0 o9 H( {/ _{; C& ]1 X2 o+ X2 H1 @/ L
TH0=(65536-50000)/256;3 U7 q* y; ~, E
TL0=(65536-50000)%256;
2 d6 A) \4 V2 Y# d* t) \  @9 J  l! l( _x++;$ `' c1 }0 b3 @% N/ K
if(x==20)
# z  i6 D' p) m$ ]{* k* f- E/ ]8 n: E+ d& D
x=0;, k0 p: Z) u) P) q: E
sum++;/ Q$ d: l; Y8 f% D1 p
}3 z2 W" J2 ^% W" l' T
}- n& R4 ~2 ]; F( t( ^9 P' B
void init_lcd()
. [2 X1 ?0 E4 Z# x# x{$ U4 O) a9 w) o- Y* `/ a0 j
Write_com(0x38);
% C! g: ^& m: U$ jdelay(5);# }( H7 z! \! w1 y3 p
Write_com(0x0c);
; {+ ~$ ?& {, s% H  Fdelay(5);5 C4 `# S& l6 q- t, W
Write_com(0x06);
, q3 s+ ?8 |" Z2 v2 i* pdelay(5);" n( n( f+ D1 m; R
Write_com(0x01);
, x: F$ G7 P) _7 b. ndelay(5);# i- Q' G$ _5 L4 D( b
}  h# X, m9 B3 _) ^
void Write_com(char com)7 w$ R- C7 Z/ m. |
{/ e9 y4 n2 k2 q. c: c, f
RS_LCD=0;
  @7 P+ d( `1 I. h8 oRW_LCD=0;* w; L/ y% R4 [, \/ l
EN_LCD=0;% R4 G' R6 ~% s0 y
delay(5);
6 L# w. v& E$ ^% |4 IP2=com;
: m1 E0 s. ^# c$ X7 \9 I# Xdelay(5);' h) l: Z6 r! a+ T$ X& G- U0 A8 d" q7 N
EN_LCD=1;
2 C8 l# `, M# w8 ddelay(5);# ^3 `2 _4 H/ }9 [8 T
EN_LCD=0;
9 @; W- J% e) U9 W" f}
  r) u! I% g* }8 w* z9 T! Evoid Write_date(unsigned char date)
( c0 o4 ?: d! D" J4 x; w8 k{7 p6 e0 `0 t. v1 V8 C6 j! e0 b. L
RS_LCD=1;
, i% a! v6 C2 }" dRW_LCD=0;( C; U: e. ~) Y
EN_LCD=0;% a- T$ Y8 D& o6 Z8 i+ G
delay(5);
  Z. K) [- m1 h. h: R- pP2=date;1 t! H8 _5 S' e( C, z" V
delay(5);& h  d9 X" y" d+ v  @1 `# L3 ^! Y
EN_LCD=1;
  r7 \, U. \! @/ r0 M. S2 X4 l5 \delay(5);
' ]8 L1 D# m* r% E$ z# {EN_LCD=0;/ P( J9 ?% O  q* m4 n; V
}+ @$ m4 ]  q. K& _2 I# y  _
void delay(unit xms)% u5 i) P# D6 {; P6 O
{
+ J" h+ k2 p+ y2 T1 Z  d: [  I% r: zunit i,j;( o) c% B9 P4 }* l
for(i=xms;i>0;i--)6 E1 c: H" Z, o/ z3 N. @
for(j=100;j>0;j--)
5 l; E8 u4 t4 F  o( j;+ D/ Y. m- N, y/ E7 n9 F/ {
}
# a: b3 \$ z1 N4 b, e) I+ K  p5 f

该用户从未签到

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

该用户从未签到

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

该用户从未签到

4#
 楼主| 发表于 2019-4-1 10:26 | 只看该作者
relchhiclty 发表于 2019-4-1 10:17
0 U$ N1 k& Z- b1 [+ b屏幕能点亮吗??

# v1 c* s! K8 l* N" W可以的

点评

可以点亮,看看时钟和读取字库的代码  详情 回复 发表于 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
8 R* Y1 K! T/ S* W9 h! y( n6 e6 @你要分两部分去调试  一个是 时钟芯片来的数据 处理成 时分秒 另一个是LCD1602显示程序,写成函数 有参数  ...

& a! {6 |& v) M% b' y显示程序没问题的,那就是时钟问题了吧
0 Z- Q9 X$ [6 m4 T. P, ~1 Z) \+ t% F+ ~

该用户从未签到

7#
发表于 2019-4-1 10:36 | 只看该作者
小黄豆 发表于 2019-4-1 10:26" z3 F! ~; \* D8 h# m3 j
可以的

7 u. B2 J5 a5 L4 t7 m4 ]$ X( w6 f5 s9 F可以点亮,看看时钟和读取字库的代码' N, `" e6 x- Z

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-27 09:18 , Processed in 0.109375 second(s), 28 queries , Gzip On.

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

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

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