|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本用ht1621驱动液晶显示屏就是点不亮屏幕,求大神指教。# include <reg51.h>/ \: m9 c8 h" H
# include <intrins.h>
- h7 k2 I3 V& ]# include <stdio.h>
% `, t4 h/ E8 q" `7 r
# }5 D) a; _& Y5 I8 }* {/ X#define uint unsigned int
4 A `; a g6 g( D# _#define uchar unsigned char . }- K9 a7 l/ z# T# K
' j5 L3 q* {; y' c: h9 `; E
' [% D& S% H. p+ U- |; F. Usbit lcddata= P2^2; //液晶数据端口2 o, o! s. k. Z/ E& j
sbit lcdwr=P2^3; //写操作端口0 m# v* e; ^& M! D6 Z4 O7 [
sbit lcdcs=P2^4; //片选输入 为低的时候复位初始化且数据,命令无效。高的时候反之。
1 C/ `8 T( O8 u* K9 K# `6 y4 g
6 g3 T8 S0 \! S- g `4 G4 F7 ]3 M' v: U
#define BAIS 0X52
+ C. v. Z( n$ M# \#define SYSDIS 0X00
) d) t; b$ t @% w- n- @( Z#define SYSEN 0X02
, j- ^! P! `7 r* w#define LCDOFF 0X04
' F3 R$ Y; x, d#define LCDON 0X06
6 J: D- e! W5 T#define XTAL 0X28
7 U* _9 x: v5 [9 S5 z- W#define RC256 0X30
; g0 N) z+ D# e#define TONEON 0X12" A, J2 K% s4 r% y4 c; v* t
#define TONEOFF 0X10
% M( y! ^7 t* D- ~+ i#define WDTDIS 0X0A
, e9 x! o" ^0 S, |7 C8 w' }# { `0 |+ |# R* n- }/ U9 O. m
/*****************************************段码*************************************************/
3 a/ G& d+ w1 ~+ ^( w* C6 Wuchar code TAB[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
. a) J" ^. W# u* s8 Y. ?4 J2 z2 {9 v+ Q( f( m2 }8 V! K
/**************延时程序1***************/5 n2 I5 D. I1 ]8 z1 t+ x7 j
void delay1(uchar x)
+ `' q9 ~3 S$ D. ~{
" @9 J% u) a; S; T* |+ Q uchar i,j;
& |. t# t' D ] A, }1 @ for(i=0;i<x;i++): I6 k/ n6 A' P# e% y! Y& E
for(j=0;j<120;j++);" m/ F1 t7 E7 e% g+ t* B( g
} 8 A/ v$ y- ~8 Z: b: |) S
$ A! k/ L' x! V( B y
/********************延时程序2**************/
0 I+ E: L: v) r6 u" N" \4 ]) Tvoid delay(uchar y)
1 p! E; ^+ @5 w! [{
" o* ]2 r" R; F* t7 x! J) x while(--y);" O n) x; W9 D4 @$ r- g
5 ]1 j, g: ?7 r. |1 Q5 U
}: L& @: x* Q8 Z' N4 T8 o' D
) t( X4 A" J8 B+ h6 H0 |- D7 H
/*********************写数据*********/- n# G, Q6 p4 A! x
void wr_data(uint cnt,uchar date), ]( m( r. |9 i" v2 d
{
4 M3 K9 E& s! r9 _$ @ uint i;
: }* d9 m. B K6 j F8 g* I for(i=0;i<cnt;i++)' i. O% L7 h0 J. Y. h( |
{4 M& g: d7 \7 ^- ~% v& t% h( T# s
lcdwr=0;
/ c) [+ d6 A9 C( d! E delay(10);
J8 }& o9 u% u: [2 O% Q; \7 d lcddata=(0x80&date);6 S l, v8 |8 |' o; R% F, h" J, H
delay(10);9 L. G5 W, T! o" c4 \
lcdwr=1;/ y3 Z" I$ H, w# z8 C
delay(5);: f) r* C0 f* C$ R: G; d
date<<=1; $ ]) A6 G' Z( s1 Z; N
}/ m2 I+ V) H7 n/ E$ L0 r
}
7 U7 M4 K' P: c4 L$ ]$ {
: ?6 G$ R% ?# |' [2 w5 l8 j) b/*********************写命令**********/" K* c! i; p) V6 e' Q* F0 P
void wr_com(uchar com)
% o M( f, s! z: j0 q5 a( p{, e: b7 e7 K+ F5 C
lcdcs=0;9 o' l5 ^2 Q0 O. [# N# v, L q
delay(5);; v/ t2 U7 l/ A( x) [/ V: L
wr_data(0x80,4);3 b, w0 t7 G( S, p7 \4 y n- a
wr_data(com,8);
1 \$ n' r4 R! M3 D+ E lcdcs=1;
2 r4 E5 j2 r6 s8 F- a8 X delay(5);. B2 |' Y5 z4 ~* c% x z7 Q
}
! E3 `5 x* e2 J6 f+ V# h. {
3 ~' c5 ]3 ~$ |# z' A& R# A! {/********************液晶初始化程序**************/
4 M/ L; |. |# W* g# {4 _% n2 O/ Ivoid init()
/ [* W Y9 H; [( ~) m8 e7 ?0 q{
% ~. C, C2 R( e+ o lcddata=1;
& I2 X9 `6 F1 H0 N$ X" l lcdwr=1;
" z0 u0 ?, q& j- E k5 o8 Y lcdcs=1;0 y' ]* c5 H7 e
wr_com(BAIS);
2 R1 }' @1 o# { wr_com(RC256); & H9 Q" @8 A! ~( E
wr_com(SYSDIS);
/ F, U% K a z9 }& o wr_com(SYSEN);
! F* F/ B, O8 v5 I) L: Q; Y wr_com(LCDON);
. E& ?; T) q7 U1 z- h2 S// wr_com(WDTDIS);
, V" O7 s( T6 G+ M( L0 }}
; J, N! Q3 a0 T2 ]- L
" G, n0 U: `; {9 u avoid display(uchar m,uchar n)! R8 A3 R. I4 F+ Q$ P) [
{
& Y1 N" y1 n/ G# H/ c m<<=2;
& f0 X& }3 Z, F# X6 y" o! Ilcdcs=0;
$ b/ D9 ^ h5 ^delay(5);
- m! c8 [8 C e" `$ A2 ywr_data(0xA0,3);+ x6 q! O6 i2 W8 P- w8 T, y
wr_data(m,6);6 b/ j$ V' b. N* O
wr_data(n,4);
9 K, s3 j0 u* e0 u plcdcs=1;1 J7 \& t6 S% ^! m# J6 ]
delay(5);1 x& m: G6 R: O. R
}2 v8 L$ P$ V _# j/ l
1 R6 g3 D( }4 ]6 [" \0 u3 L Fvoid cl_scren(uchar l)
) r" p8 n2 k t{
7 V+ f9 P& O3 Y. p& v# w uchar o=0;
2 O, U$ u( T2 X# |! b. `2 ~! j8 H for(l=0;l<32;l++) ]& F% \8 g) { c$ Y/ h4 b
{
% ~! W1 r- O8 O: l/ N% S display(0x00,o);
$ R7 f; H! ~/ r' g9 \$ s/ f o++;
" Y% h3 d) U( L1 s } 0 h' O* w8 {4 M& A2 |
}
/ @8 n4 Q6 ?% v) E5 d
* [5 Y$ i+ G% T% u# U* Y0 p y/ N* L1 L! s
/*********************主程序*************/3 x9 j' W( ? f+ Z& z; X+ e
void main (): B; V) J) P+ ]: U
{# }+ t) `9 y& _1 @ n2 y7 T
init();; w; |& A* ?2 [% R7 E
cl_scren();7 [( l" E& K+ h3 N8 r
display(0xff,3);
1 M$ N4 `4 e# ]8 p2 p! a while(1);! V w# M! O/ r5 D" y( V0 G
}使用特权
/ v* P0 }1 C6 d2 S评论回复 赏, u2 [$ I: Y ]8 l" ]: i$ q: H2 B
. A, r% W7 `* O, |) l+ t6 X
4 W' X9 b) Q, i7 O) f) I: V5 ~' N U1 o
|
|