|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本用ht1621驱动液晶显示屏就是点不亮屏幕,求大神指教。# include <reg51.h>9 o) B9 b$ @7 T8 _% w! w0 N' F
# include <intrins.h>+ t- g1 j- {* {( {
# include <stdio.h>
! u: |6 n. c% }" |/ G7 [8 j: z5 w7 k7 @
#define uint unsigned int % g* ^. f; V# }0 M: o
#define uchar unsigned char
; x" n( z( @0 v/ M" z
# @6 C. M" M; X# a; Z( L# v/ ^+ t) k3 F# ]$ N, M
sbit lcddata= P2^2; //液晶数据端口( I; L/ S% m5 @' m! U7 f
sbit lcdwr=P2^3; //写操作端口
& C: u; Y! ]4 W' U3 Msbit lcdcs=P2^4; //片选输入 为低的时候复位初始化且数据,命令无效。高的时候反之。. A1 U7 G0 s5 A6 Q- k/ H
2 m6 m6 F, G7 U5 r+ H2 ?# N" q* L4 X- P& _! u. e
#define BAIS 0X52
! \3 K: o2 n+ B0 X6 ]#define SYSDIS 0X00
' v" ~3 F% N& i( ]; [* G#define SYSEN 0X02
: ~& C) b1 z+ T#define LCDOFF 0X04- j8 }1 r& T6 i( `$ q2 Z
#define LCDON 0X06
0 f+ o* @1 W+ H* y" ?8 w% z; i#define XTAL 0X28
. Z1 _$ W$ g0 ?! t#define RC256 0X30
- @9 k- a! Y5 S. l u. \" G, C#define TONEON 0X12
; _9 f; ]- {- o#define TONEOFF 0X10
% g6 ?. c* M7 J0 R) h& z#define WDTDIS 0X0A8 {: z1 V- M3 Z6 _' z
9 k" b- f; t1 K/ H& b1 ?
/*****************************************段码*************************************************/! b) F( A2 U- k! d6 R
uchar code TAB[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
; d+ t8 C% x3 S, }7 N9 j9 h0 G" A% N3 a V
/**************延时程序1***************/
8 H! q! ~- ?6 _+ Z* B1 Y, Avoid delay1(uchar x)+ j) P( \+ E7 h! Z9 W4 j( v
{$ Q2 a0 a& r) K! s8 e* y
uchar i,j;
l3 U9 \( p* A& I A! | for(i=0;i<x;i++)
0 p5 ~$ }0 j/ Q7 @# `! J! I for(j=0;j<120;j++);4 j* z% z. c% C8 J" V6 f" \& V4 @ K
} & O1 I# P/ {1 M
5 B# b; S$ a9 d2 y% N$ q$ m+ j: `/********************延时程序2**************/
) Q$ |3 `3 C' V# x/ Evoid delay(uchar y)
/ u0 Y @* t6 P8 @- Z( v# q{
. K1 A9 X9 s) R% M% E8 Z! ? while(--y);0 p4 l, h3 Z# `* h+ _
# J! J. ]. q8 I}
3 T* z0 q- `8 n+ }
: a6 P& `) ^6 D/*********************写数据*********// l) t. U8 Y- D3 [& c1 V2 f
void wr_data(uint cnt,uchar date)
4 Q3 X' x6 G4 a, [' r) I b: u0 V{
/ b( h7 I3 L# v# [# M. X uint i;
' z+ M3 A1 h( y* w/ X for(i=0;i<cnt;i++)
# P4 E* f7 O* j( |' N& B/ d {; E" P; }+ H- q/ B
lcdwr=0;
( @& x/ i) G: D% v delay(10);% O5 w& K+ b- o) ]- m9 B
lcddata=(0x80&date);
: ~" o) o0 _( Q G delay(10);
8 @. t% d8 p4 Y9 `; g. P lcdwr=1;& d( W3 i2 G* C6 ~
delay(5);( m, D/ p! x% f& q3 a
date<<=1;
# u, v) I& U6 @0 A& e9 u }5 N- x( p( M5 @9 H* M6 V
}3 T0 h, R; |8 A
, Y- `* r) `0 t
/*********************写命令**********/; H, R& u& y6 f r$ U$ B3 u
void wr_com(uchar com)7 m1 d$ i9 O: ~% A" y) h
{
1 f* p2 j) G) p8 B lcdcs=0;8 H+ L. ]( U# d
delay(5);5 f1 O3 K; i" J. \2 i+ w; c. Y; d; W7 O
wr_data(0x80,4);9 v# a2 G9 l5 C7 p% i6 Y
wr_data(com,8);
7 |0 E& X w. s; u lcdcs=1;$ a+ q2 Z+ }0 j( y1 m
delay(5);
0 `8 |% N2 U4 S7 `1 b; H; G/ _}
7 ~) K( w; u+ q6 R! q / b, y1 C- V0 Q$ u! x5 V
/********************液晶初始化程序**************/
' F. T/ I0 V2 `5 ?- w+ K- D- jvoid init()# B# s1 K7 b3 R6 b, ?, h
{
$ F u" ? X' @7 N w& }! K4 b lcddata=1;
& N) u, _, k: E9 c9 v0 k. G lcdwr=1;
/ H. E5 f6 y' F% N0 { lcdcs=1;) S8 }' |! w6 R. \1 c7 H
wr_com(BAIS);
|6 E3 c' a9 b. v! J: L; Z: _ wr_com(RC256); $ \+ T: X" L2 |' B+ k/ r
wr_com(SYSDIS);
" R. V0 h+ g" V- y wr_com(SYSEN);
+ b. v& @; h. m- u- D( ^ wr_com(LCDON);
! Q3 |+ J8 m9 B% V \; c7 W// wr_com(WDTDIS);" X+ {; `8 M$ h5 {' ~
}
. I K6 g" R6 N) k1 }, {5 P; {) N/ y
void display(uchar m,uchar n)
" | a1 I/ E& D) X$ C( D3 \2 S{
0 @# O p% k8 a. i& t m<<=2;
: C a$ A, n, V' x1 s7 plcdcs=0;4 H/ o& D# |6 w, H7 g0 n! ?3 F
delay(5);
: O% j4 ?* t2 H+ D* H/ Dwr_data(0xA0,3);2 W' c \8 x6 v6 F. x. Z
wr_data(m,6);' e' Y/ @/ [: b' `% N) r3 \- x: A
wr_data(n,4);
6 P8 t5 M$ ]' W, _% rlcdcs=1;
4 r) \2 |, W0 e& E' Z# S; _. w, adelay(5);
" p* M$ [* k/ \7 u0 x$ J: f7 ~# b1 K}& G7 W0 X" q6 F
9 N5 y* m c2 T R( A9 [( N( r
void cl_scren(uchar l)/ c2 p# f! u4 y# O. x
{6 i. x" w0 e, [- K/ G9 ~5 I
uchar o=0;
* |0 W @( `8 r4 T for(l=0;l<32;l++)4 z: _6 e# ^8 g6 [# X" {- ]2 ? R
{
$ K: \8 o6 k* M9 _ display(0x00,o);
$ Y2 _% q( e* v4 _& S* G9 [ o++;
6 R) o5 F& X& X) i }
C ?8 c& c! U}
& {! S& m! o! r! _: _2 {4 n. S. H, @9 P- ^4 [9 N8 t$ j
6 q3 S+ L# [# T4 @% V3 s& x: R. M/*********************主程序*************/% @+ J+ O" Z9 M0 C( C/ M) A2 t
void main (): x, ^4 w7 q0 G3 o" U# j4 k! D4 R
{0 W6 h6 ]# \! x8 @
init();
& q5 U1 Z4 @! V5 Z! s1 E t cl_scren();
1 }5 ? F& i1 ?7 [* e& l display(0xff,3);
5 G/ U0 }: G3 k, g while(1);
8 n7 z' E9 g4 A- T0 t}使用特权( K' u9 T# @- W& `4 Y
评论回复 赏5 U" u+ J5 I: l( s" T5 c2 D
( m8 ]( [. I# Y+ ~% W
' a* d& _1 Y9 I
5 a* F% c0 N. U1 } |
|