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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
keil程序编译无错,但是无法在LCD1602上显示东西7 q4 L$ r& a+ a  B0 w2 G

1 @$ ?# s) S" ^5 E1 S. N
2 z: @, a5 D9 N% N! T+ s# m. i9 \3 J
我打算实现在lcd上显示时分秒功能,但是无法显示,求大神们指导啊!!!要哭了都!!!) L! a8 w3 o7 S' k5 f
#include<reg52.h>8 T& m, O- a( n4 u% H3 l- [
#define unit unsigned int
6 i& B% G* `3 y( A5 W+ w. Q2 Y#define unit unsigned long int9 W  a; T2 k' I! o* Z8 L
#define unit unsigned char uchar code table[]={'0','1','2','3','4','5','6','7','8','9'};
! p, ^/ y& _" f) |% C& Iunsigned char table[];$ k& h. |! G& T3 T: \7 s0 O
unsigned char table1[]=" : ";
- e* X. l" Z  W# J& C5 Jsbit RS_LCD=P0^7;
5 i( P" k/ O; T( ssbit RW_LCD=P0^6;
5 v' _. i7 F) T# c7 `0 ksbit EN_LCD=P0^5;
8 o9 f9 e; L, }( g+ j: Mvoid init_lcd();
9 R0 y! c# Q4 i: hvoid init_zd();
0 V* S3 }+ X6 i6 R' [" w, e* q: s9 yvoid Write_com(unsigned char com);
% \1 B2 i6 S% r$ Nvoid Write_date(unsigned char date);9 Y# `; S$ {1 y$ ^5 q1 g7 d' ^
void lcd_pos (unsigned char pos);3 F3 ^9 f$ q7 K/ l- t' @# @4 c% |
void delay(unit xms);5 d' y1 E1 l- T
void date_processing();
5 _& Z' U: [( f" ?unit sum = 0 ;
! ?3 z- `1 L" b7 Qunsigned char time_seconds=0;
/ c& x; B! _1 O( Wunsigned char time_minutes=0;
9 z+ F" p2 d  zunsigned char time_hours=0;
# V8 Y! e. y: v+ Z( \unsigned char x=0;
5 M7 h8 B5 ]1 {, b; W. k. {8 vvoid main()
. U+ c( b3 \# i$ O1 \8 j2 U) M. e{: U$ Y8 x6 x- K
unsigned char i;' A9 H& e6 e  j; O2 Q
init_lcd();: f7 P; J) c/ \+ B) P# k
init_zd();% `9 c1 ^5 p( f' v$ @5 Z- n. E
while(1);+ A6 e* C2 a; l# k' \
{0 y& f# p3 |7 k. f1 c3 @% }
date_processing();
2 e  K0 P) E" P  I" d5 J( H: ylcd_pos (0x41);* t& j/ {3 ^" L: n6 O: n) U2 P
Write_date(table[time_hours/10]);
, e7 Q6 r% F, J" z4 |delay(5);/ V2 L1 G( ^4 x/ F% Z4 j+ n
Write_date(table[time_hours%10]);
% r( d( m) [; n$ Q- ~delay(5);
0 g$ B  G7 g. i4 H( ~$ pfor(i=0;i<3;i++)$ o6 i3 c2 `! h8 K
{" u6 x4 ]9 v  u1 _/ V& g
Write_date(table1);9 |. G7 v2 F4 H: L
delay(5);$ @# N: U( q" j' L6 j1 N
}
! h9 K/ l. @9 h# lWrite_date(table[time_minutes/10]);
$ n2 O, m7 R- r- x+ \delay(5);
4 T- J7 w7 g, P7 JWrite_date(table[time_minutes%10]);
4 `! Z* T4 \1 v/ Adelay(5);- R5 i6 ^2 B3 `( L
for(i=0;i<3;i++)
+ T1 ~3 t4 N! N$ c. c# Q( O{# W: @; M0 ?: @: M4 j
Write_date(table1);/ r$ j9 u3 J5 `1 ~0 E7 w5 P) d
delay(5);
7 i6 o( u( f+ D9 y2 g8 l& ^}
3 z" q* R8 Y- N% H1 JWrite_date(table[time_seconds/10]);) Q8 D7 Q8 w; Y  w$ Y
delay(5);7 w+ N% G# F% D. U( r& V
Write_date(table[time_seconds%10]);3 ?! f, X& B: y8 ?
delay(500);
! _3 ]( U4 t9 t, ]5 M  S: sWrite_com(0x01);. E% d% E; p" ]% G/ n' e9 S4 V0 n
}
! G% V' [9 L( W/ u* p}
4 A: L7 Z& D7 J8 p6 _8 W% Dvoid date_processing()
' _& W, E8 j2 c  s; j. J{$ G  d8 a4 O) q6 B6 A: {: h4 G8 s
time_hours=sum/3600;
2 H$ \/ A4 M# S& j- P( }time_minutes=(sum%3600)/60;' K! t; f# K' y
time_seconds=(sum%3600)/60;0 p# b, S9 @$ z" w7 Z0 x
if(time_hours==24)
3 t1 E7 m+ ]8 \, H, k{
/ A1 }. s9 T2 \( }% e7 Osum=0;1 A1 o6 f6 t( Y% D
}
- i. Q! u! h7 k% S8 l& e}
. N6 o2 y" F& L" S- v. C7 D' ivoid init_zd()
5 Z6 _* M& j6 P+ K8 @{
( X$ @. J5 n9 W' l# }$ D$ YTMOD=0x01;) A1 P  d5 f; h% K
TH0=(65536-50000)/256;
; t! l/ o5 i, x( E, T' ATL0=(65536-50000)%256;; ?' V) w/ W+ a- ?# j
EA=1;  ^; D5 F( c# c3 b( ~
ET0=1;
/ E6 ^' G' @& m) W7 bTR0=1;+ i8 t& x  _: |2 V& Z
}! F) t: L# `) q$ x
void lcd_pos (unsigned char pos)
# r* b9 {( Q9 L{
) R6 J1 X. P+ m9 t% b  Write_com(pos|0x80);
- P& R1 E% s) \, p: P}
! k1 W9 a* u* T! Zvoid IT_0() interrupt 1, a0 W) ?2 z& Q3 H/ R* ?5 K
{- k" ^- Q! Q8 p4 L& e/ ~
TH0=(65536-50000)/256;5 S. e/ e* Z' \  J# y4 K8 ~
TL0=(65536-50000)%256;. g1 \+ {2 E/ Q; A8 N, x
x++;
$ ~, o9 d- v4 K5 \2 _, `# A6 Gif(x==20)! s7 B$ `2 x3 ]( F8 @, }9 J
{; h7 C8 k0 g7 B6 z  A3 m: y/ P9 [
x=0;/ f" S' D4 `# v! @$ k
sum++;& t+ D* q7 V( E6 |- m
}
" M) i7 a& d/ j9 y6 r}
9 t4 s- A" d5 kvoid init_lcd()
: H9 H% x/ t4 t{
8 |1 C% {; |6 p' G. c- u) zWrite_com(0x38);  F. ^9 W, R- J5 L
delay(5);
, p" c: Z& G5 G# `. AWrite_com(0x0c);' T+ f& i* K: V3 h
delay(5);2 L# m: i* C8 d  N+ D, `) H: J
Write_com(0x06);
# k4 b* A( a2 U; J! Ldelay(5);
8 }% e2 T' C3 y. O: MWrite_com(0x01);9 r4 }( Q/ g+ V  z  ]( v0 s
delay(5);
/ `* C2 d2 W0 ^& Q, \+ x+ k}
, U" S" _. \6 K" Z2 evoid Write_com(char com)
2 a# [2 i0 T) s& [$ i5 l7 O6 [8 f% `+ {{
3 ^, I) F& |1 d+ pRS_LCD=0;
4 [2 i# V! i) f' T2 nRW_LCD=0;5 r, _0 O2 w: ^$ A2 @
EN_LCD=0;
. K6 y( t9 Z" m, l3 sdelay(5);, ]+ a  h- x7 |3 z8 V; P
P2=com;, t3 @, \3 r8 U$ L
delay(5);
6 R9 T7 p/ k) P1 Z, P4 KEN_LCD=1;0 S: i! I1 C6 w% @- |. h* r7 }
delay(5);
% W! M1 M* R5 M9 H# w. S$ s  sEN_LCD=0;8 q% Y7 m" w4 x7 N8 X& c
}
0 N; H; w2 J" n+ ]void Write_date(unsigned char date)
# h+ w* U! w( {0 h% Y. h# V& a{! E/ e' \) Z) y; v4 X
RS_LCD=1;3 X8 I/ ~$ K7 @
RW_LCD=0;( Q) r# a0 z: {3 z+ E
EN_LCD=0;& t0 m0 I8 [+ n! w" u, t; a( ?
delay(5);
5 [2 v+ ~' _, ^, h: F9 f) z  S0 PP2=date;+ p9 v7 O) i, R/ Z% X
delay(5);7 w" x% \% `. n7 G- D$ D, C
EN_LCD=1;  \7 s7 p/ i2 ]3 r
delay(5);9 S& Z/ Q0 l. Z5 G& u  ^4 S0 L1 H
EN_LCD=0;
' p( t; ]3 N: ^5 b, m}, V. n3 q5 I* p2 F3 y
void delay(unit xms)9 _9 Q% u5 K! {8 x
{7 E, ^4 `. H7 \
unit i,j;
# V. }1 w5 n1 nfor(i=xms;i>0;i--): U* w4 T4 t8 Z! d* ^) V
for(j=100;j>0;j--)6 Q2 [8 I- F, z3 |! c6 i
;
4 R" c& F" k) `' H0 _6 k}
; k: X8 h9 _- O+ `" m7 q4 I7 V' R

该用户从未签到

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
& D6 S" B- V# U$ D# W  L屏幕能点亮吗??

% d- u8 ]0 E6 U. m1 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
3 a$ O0 B3 D: m$ Z你要分两部分去调试  一个是 时钟芯片来的数据 处理成 时分秒 另一个是LCD1602显示程序,写成函数 有参数  ...

2 C" J4 O" m  R  G4 d+ e3 U显示程序没问题的,那就是时钟问题了吧9 W6 ?0 m5 G& m! p- B

该用户从未签到

7#
发表于 2019-4-1 10:36 | 只看该作者
小黄豆 发表于 2019-4-1 10:26
; a5 e$ A; M: q- H7 r8 L- t# Y可以的
9 r2 Z' n3 @, X: O2 ~% l2 C- P
可以点亮,看看时钟和读取字库的代码
& ]5 U! q( Z& @. j4 r

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-11 16:41 , Processed in 0.156250 second(s), 29 queries , Gzip On.

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

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

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