|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本用ht1621驱动液晶显示屏就是点不亮屏幕,求大神指教。# include <reg51.h>
, X: M2 U: C- z: N# include <intrins.h>
! e! g; X/ L8 A. _# include <stdio.h>' V$ r) a1 F$ j# b
( J' b, E/ G; m! b0 J
#define uint unsigned int
1 w2 A% z: G# M2 X#define uchar unsigned char / `, |4 W0 u, p8 ~+ ?% k
P8 m. I5 \! p: T3 b8 U* R) g- C. P" n8 U2 C, I
sbit lcddata= P2^2; //液晶数据端口
! ?, p% k! V4 @3 u- F' K3 Msbit lcdwr=P2^3; //写操作端口, G6 i, {* V% Y) I
sbit lcdcs=P2^4; //片选输入 为低的时候复位初始化且数据,命令无效。高的时候反之。# z0 o0 _8 o n' S
# Q* ~: t" c- h+ U, _- S6 U" q
9 g- o5 d+ \/ ^% C9 l/ w#define BAIS 0X52
& Z6 |8 j W2 f) _#define SYSDIS 0X00( z! Y/ k) V. |0 `0 Q. k! f' L
#define SYSEN 0X02/ |/ X0 ?* f! [" W) S
#define LCDOFF 0X04
: w3 I3 P3 r; [' S#define LCDON 0X06 s1 \! Q% X5 @: Y+ L; n
#define XTAL 0X289 G: h) V* _* [+ Y# U* `9 k
#define RC256 0X30& m* B' x2 k6 u. y2 M D0 T
#define TONEON 0X12
2 `3 n0 n+ R+ B4 a* Y! F/ I4 u) |#define TONEOFF 0X10: v4 M- t3 @( k. V: q
#define WDTDIS 0X0A
, x0 j% t( ~9 K" ]. y; R& i$ Z- `, Z( c/ h
/*****************************************段码*************************************************/
* p; b+ t' F, `uchar code TAB[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};: R, O1 J% k3 e4 J6 D
7 S+ b0 D' i. D; l, ^9 P" n
/**************延时程序1***************/
! V; [8 R7 O% z, G) ivoid delay1(uchar x)
, B( G) {) R1 `7 w8 |5 V{
# G. w, `( I" A+ o3 U/ N uchar i,j;* y% U9 F$ U; x- y u
for(i=0;i<x;i++) t" x4 Q% ^% n7 C+ ^
for(j=0;j<120;j++);
' G8 }+ g8 g* v1 x/ ~% `} % e9 g* q+ C6 t H. H! c
5 o. x6 D1 q4 c8 l. ]( T# T
/********************延时程序2**************/4 i/ Z5 J& d% p# O! r4 {
void delay(uchar y)
" x. n; ?+ f9 U6 S4 \( ?- W{" O5 I# t: }8 y( |6 a$ J+ |
while(--y);* W4 M3 n% ^9 T& b l1 h
0 {& z2 _ \4 U5 b
}
& \1 z7 z% h' i4 a
2 C R3 t1 {" J; T N) y/*********************写数据*********/
, ]3 `- s4 F) a. P* e9 o3 I. hvoid wr_data(uint cnt,uchar date)1 Z; A* d) M7 y1 v8 L
{
5 i4 A' @: K0 v; E* c6 O) C uint i;
) _; t3 D& k. v5 z for(i=0;i<cnt;i++)
3 R; z4 q% D9 ]1 P: ~ {- N0 T: U7 g0 o* w: I- Y
lcdwr=0;
- Z: i. K* q8 y% i% i delay(10);2 Q5 K* x+ @! a
lcddata=(0x80&date);9 W- U" k6 S2 w& V! I! p
delay(10);
9 j. y: y$ P8 B5 l8 d lcdwr=1;$ u( B3 n+ N5 f8 G$ `& g
delay(5);- T% v1 q& T) x7 D
date<<=1;
8 M7 J; F# l) N E" j S6 H }
( [% ~6 H7 H1 U$ F) v}" l9 m! q5 z& E8 e9 _: G. }8 t
1 \+ @' N5 M r( T$ m) \2 e
/*********************写命令**********/$ @8 N3 f! _4 L8 `. I, o! v
void wr_com(uchar com): H8 B: U% b0 ^
{
9 B) B/ M+ \# g4 t6 _9 \: A lcdcs=0;
, ?; S0 ~6 d9 e a" m1 s delay(5);" X" e. j3 t' `' @, ]
wr_data(0x80,4);7 T; J1 p2 j m: f
wr_data(com,8);
3 O1 d( C) Z H1 e lcdcs=1;
1 X" Y) Q) R: q8 b- `' [6 \ delay(5);1 r, A5 p- |. C2 M( `
}
, N$ O# U- K- F6 S6 e / }; J5 w. S: J6 X. V7 j0 M
/********************液晶初始化程序**************/& C R9 }' q0 ]+ E3 u6 n4 i- C
void init()" t4 u d- X2 ~/ ]) a A
{8 c" p+ t6 y9 M1 L) [
lcddata=1;
2 s& X& e' K4 b4 F( I lcdwr=1;
% v, @# l# N' p+ a* P* X lcdcs=1;
, [( E* b. l( ?5 i% e+ w: b wr_com(BAIS);
6 r$ p- E) }# u wr_com(RC256);
2 z7 X/ [; [2 e' v9 E" V1 Y0 B/ t1 N wr_com(SYSDIS);
) T2 z% y+ c$ z, T! W wr_com(SYSEN);
: `# n' h+ @1 \& J! ^0 i$ d6 ~ wr_com(LCDON);8 z( W- z- ^* u3 [% H8 Z+ w+ i1 c
// wr_com(WDTDIS);
. A. a d/ B* U F- w2 Y0 h Z}* i* i2 E2 Z! x1 ]$ P
" H# D9 D9 q- B0 O" s
void display(uchar m,uchar n)4 ]5 ?/ o; S" L3 V7 x' h
{
: f4 Z- q% J F* W; y. C5 n m<<=2;5 P: X. E# y- p* q* B, D
lcdcs=0;& ^. R( V3 z1 \0 [
delay(5);5 K7 A; A+ {. m
wr_data(0xA0,3);
4 G. y1 @* |5 M+ b1 ]0 J. Kwr_data(m,6);
+ `7 D1 ^5 l* N, d- B: ]: owr_data(n,4);' H6 @$ Z5 f, b3 n; E6 o
lcdcs=1;
' z9 C; r: q& F, x$ w* d) mdelay(5);( C1 J4 t$ {" M: C# _" p
}% g, F+ N" E5 B1 O
6 T# I' T# e5 S# K7 |* }9 E
void cl_scren(uchar l)4 s4 Z6 @3 ]1 v+ G0 e! W0 q
{4 I0 X- E2 x- |8 r
uchar o=0;
9 g8 ]- P( q; V5 L$ | for(l=0;l<32;l++)
/ k0 J& }- y+ A& T {6 H5 ~( Z: ~ d! X
display(0x00,o);+ x: z) r6 c2 u- G' v+ P! E
o++;9 q. c, Z. E9 G3 o5 S9 R' f
}
7 }% _, d9 |) S; `& ]/ @; Z! l \, W$ p}
7 b; k' f6 V- Y |$ y- w; \% ^3 F$ ? ?' F+ z
5 q- U' t! L4 v
/*********************主程序*************/
% Q* Y% F# \1 Z6 Z0 Qvoid main ()
0 q5 D% a5 F7 `: c( J' p- b{5 A" k/ r& B6 v N X' |" c( O4 A
init();& q' t' j" V; ?
cl_scren();
* Z9 P+ m- \/ O; q1 ~- D/ P display(0xff,3); $ x/ B- W) \3 G1 i: U7 t q3 Q
while(1);7 U8 x. `2 g3 |
}使用特权
; ]3 l# T# q/ b# }3 p D评论回复 赏
Q1 \- P6 R- ]! J C3 H! l! _1 E5 M( a8 U
3 c0 B) I+ g1 N( T
% O( c9 H% o2 k |
|