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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
keil程序编译无错,但是无法在LCD1602上显示东西
1 C4 W+ l) m) A6 L, V% f5 c6 l8 A: n' s0 v6 e9 G

+ m3 C" B2 w1 w3 [8 Q/ ]我打算实现在lcd上显示时分秒功能,但是无法显示,求大神们指导啊!!!要哭了都!!!
. X# |) ^  g, L' ]9 g% p7 P* v: W#include<reg52.h>
; H! D: Z4 m6 w#define unit unsigned int
3 M: `) |  A. t4 I5 h. x#define unit unsigned long int
1 T" h0 m( O5 p# k6 Y; ^#define unit unsigned char uchar code table[]={'0','1','2','3','4','5','6','7','8','9'};7 k+ y$ p% H5 {% n1 Z1 K& @( M
unsigned char table[];2 x$ ?) f' ~& E& j: g/ i. }4 \9 W- k# F
unsigned char table1[]=" : ";
+ Q5 A) B; R  S$ r% U- @sbit RS_LCD=P0^7;
6 d+ Y" J+ K0 D3 zsbit RW_LCD=P0^6;1 x: \: C) I5 V% [
sbit EN_LCD=P0^5;7 Z- E6 r' v) }$ v' g- v
void init_lcd();3 S! I& i9 P, t
void init_zd();
6 b8 T: Z% j# ~/ r# v( w# Svoid Write_com(unsigned char com);
' R+ n% t& \" U7 o" jvoid Write_date(unsigned char date);3 z% `; k8 L5 E% I+ }7 p, H
void lcd_pos (unsigned char pos);
  ~( g! w6 ]( }4 `9 j+ n8 s3 {void delay(unit xms);3 t/ F, v3 k! h0 d* |. C5 _1 ?
void date_processing();
# o+ Z  d! j/ L: n5 s% W4 j# Ounit sum = 0 ;: V6 s/ x" U$ U- _) h- w" P
unsigned char time_seconds=0;
1 `% [" _) w1 q" i- Munsigned char time_minutes=0;
! Y% b$ e  c% Wunsigned char time_hours=0;
* q0 F; ?# l$ X3 l4 C& o. Cunsigned char x=0;
. j( v8 h5 R! f& V% A" L0 nvoid main()+ d) r+ E1 Z; l& n+ M3 R( Z; E
{
- X, I% p# l' U8 x: aunsigned char i;
+ y7 g2 ?* Q8 |9 o  P8 ginit_lcd();
0 [9 {& y9 h  O0 k6 V$ {: y8 d# Winit_zd();) q+ `& _) i. I0 R8 j8 E# ^( J
while(1);8 n# d0 m4 a1 e7 P4 @
{0 z; h% n) d, m
date_processing();
1 j; L% N) ]7 b) Y& Wlcd_pos (0x41);
, m* B, S1 d  e5 HWrite_date(table[time_hours/10]);' P/ E" H4 T1 J3 t  |6 |0 V0 D) Z
delay(5);. F% F, v0 s, S+ A! E
Write_date(table[time_hours%10]);
0 q6 d, D% ~* d( R/ L5 Rdelay(5);
$ r# \$ Z. _) N8 Q! Cfor(i=0;i<3;i++)+ |! q: V  o8 k" p
{/ ~; S. J9 B$ N. {! p( G. h
Write_date(table1);" D# m0 U( z3 [  N+ c1 _& I
delay(5);% U+ t7 l6 T! t) T
}3 G6 `" @0 P, Z' j9 v
Write_date(table[time_minutes/10]);* u( R" b: H8 K7 t9 \
delay(5);
) b) p) |( z* [7 A( l7 b9 JWrite_date(table[time_minutes%10]);
1 j) e: F7 m/ e& T" Fdelay(5);' t. P# Y) S# O+ ]: q
for(i=0;i<3;i++)
1 C& ^0 R% F* H  A{( M& N8 V$ y7 M7 j
Write_date(table1);
7 }2 s. B0 m* U: |* E- ]delay(5);0 e  j4 m: Y- P7 ]
}% a3 \: T1 S; X# F% C
Write_date(table[time_seconds/10]);
6 @. }! {' l7 p9 p6 jdelay(5);' k/ C6 y4 ]5 l# W% Y2 G
Write_date(table[time_seconds%10]);, G5 T3 T5 z" k
delay(500);( J& q! I: _  [" G0 Z2 C; ~) q8 x( S/ q
Write_com(0x01);4 r- Q9 Q! n9 i7 ?9 @
}
; F1 K9 \9 r) s! j2 b4 R}
& q% v" G+ U( t8 a* ~void date_processing()
, Y" h$ @' o8 |5 w# |{
% J' `  S3 y# xtime_hours=sum/3600;- ]% N- ]' i& F/ P
time_minutes=(sum%3600)/60;/ g; F- w' {0 L+ T
time_seconds=(sum%3600)/60;) s& V3 ?5 e* [" p6 p
if(time_hours==24)
. j' d; M9 V' m% ~4 {- Y{) s) {3 k. ^* r
sum=0;" ?# i9 a, f) I& L
}- z; y9 y5 u1 T' s4 W0 h; e
}$ D2 k1 B- L; W
void init_zd()2 Z6 m3 j% X' P8 W! N
{
  f% T! u/ u. t: `4 r0 U/ MTMOD=0x01;, u1 D1 V: n6 [% O7 {5 X
TH0=(65536-50000)/256;5 y6 P* e) }  f- X
TL0=(65536-50000)%256;
3 R! k; I9 N# C+ F& G% T) I: x* vEA=1;
& e; o: U+ T, e# o8 \ET0=1;
# w1 ~* x1 I0 U2 w8 W/ @+ R" FTR0=1;2 M0 H, f$ a8 V7 x* S
}3 o) r# U" @$ Z' `9 p
void lcd_pos (unsigned char pos)
# \# Q0 r* i2 U- |  t7 Q{
$ f# o, W! w4 o2 |( _  Write_com(pos|0x80);
  a5 {0 b) N( ?0 |}$ a- s; O% e# n8 s) @
void IT_0() interrupt 1
! c2 {, [* v* ]1 Z5 w{
( S, c+ }7 C. l( x9 }1 o  c1 `2 I) ^TH0=(65536-50000)/256;
8 a1 O+ A+ @9 r% BTL0=(65536-50000)%256;' W0 r" g8 S! F. [
x++;
: ?9 Q/ ]6 V8 h  y9 Uif(x==20)2 R$ a* x7 V/ |# _
{. I1 U' `8 @7 o6 O
x=0;
7 k( ~1 v0 ~* @  ~6 k  Msum++;) H# L( B6 G% Y
}
$ B: l, ^# @. a8 D}
; n1 j5 t  g7 M2 f4 \void init_lcd()0 C* a7 |6 N0 n$ |4 O2 }' N6 h% v
{: P: E! C$ V% u' i$ M! T
Write_com(0x38);
  v% c. ~9 {% g* Vdelay(5);% T7 l0 M3 A3 P4 f
Write_com(0x0c);$ ]! {( g/ c8 b' d
delay(5);
* M. o: \( T/ w' M! H9 b$ kWrite_com(0x06);
& p( {2 t- p- J% z. Z( z* A8 wdelay(5);
" b( X1 T3 A8 O2 r8 P6 @3 Q3 DWrite_com(0x01);9 }5 Y$ O# m6 K
delay(5);$ i; i$ S" X- S5 r( r
}
+ b! K4 z' R) ]0 O' vvoid Write_com(char com)
" Y+ [% W/ }1 P8 C{
) L9 P( f/ c: {RS_LCD=0;
! A3 ^* j+ y: u# NRW_LCD=0;
: T, ~: y" Z* `1 V* e7 ?0 {* bEN_LCD=0;0 i* g" e; a, `! U6 i- R, c
delay(5);+ G: @) e; v! L  `/ L  g. y
P2=com;8 d& h% N: S  ?, `! F2 q! q
delay(5);9 G4 n2 N# W. `- a
EN_LCD=1;) x1 `+ J5 |4 I" s
delay(5);4 X% o0 R* \$ C- F0 w9 }
EN_LCD=0;
/ Q! F  u' k2 `6 `- Y}
% k$ B6 U2 F$ W. E4 }* e  w, k# h3 Kvoid Write_date(unsigned char date)
8 w$ C3 _! D9 F( E5 z" x{- a$ E  e7 z% D2 X2 W
RS_LCD=1;
/ C% f% L' J7 n5 r; S4 L( PRW_LCD=0;9 V' n7 J$ [7 a1 b
EN_LCD=0;8 U( ^" t" L4 P8 w% c
delay(5);
) w) V# C1 \! t' t& A3 Q% S2 Y( G+ RP2=date;% J! W( S+ C5 p" w4 G: A
delay(5);
; a, A4 V; P, M: p  tEN_LCD=1;3 O, Z! }' h$ w) w  v1 p, i
delay(5);
: H8 r' K7 `; ^EN_LCD=0;, Z. P+ ^" _  _) v
}
* I% w9 N3 f  ]" G% D& e3 Z8 Pvoid delay(unit xms)
' f3 j; k% P2 w$ B6 q  U0 A$ e{
* u( D6 ~. G1 F6 V) P4 A- G4 [& Gunit i,j;
" \/ c0 ^8 E- Ufor(i=xms;i>0;i--)9 j6 F  }; K0 \( k8 l/ A
for(j=100;j>0;j--)# s2 f2 G* G9 j0 F* S" {+ x+ X
;
! O( v+ W! \" m: K}
* \) Y4 d7 w  G; d8 B

该用户从未签到

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:17; A. T6 H) U5 ~: X2 q0 t
屏幕能点亮吗??
) x: g( n) R' v
可以的

点评

可以点亮,看看时钟和读取字库的代码  详情 回复 发表于 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:260 H) z2 i2 ~* n1 Y
你要分两部分去调试  一个是 时钟芯片来的数据 处理成 时分秒 另一个是LCD1602显示程序,写成函数 有参数  ...
8 {# X6 L' J8 x5 P/ b, x' U
显示程序没问题的,那就是时钟问题了吧+ v6 k7 k* }2 b

该用户从未签到

7#
发表于 2019-4-1 10:36 | 只看该作者
小黄豆 发表于 2019-4-1 10:268 B( S/ C% g  m* @( H( N; J, L- @
可以的
3 Q5 Q/ }- K7 Y0 ?
可以点亮,看看时钟和读取字库的代码& O1 ~6 x# W2 k- j* H) x- R

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-18 11:42 , Processed in 0.140625 second(s), 29 queries , Gzip On.

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

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

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