|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本用ht1621驱动液晶显示屏就是点不亮屏幕,求大神指教。# include <reg51.h>
0 d; }/ o5 v& g% U4 J# include <intrins.h>* J1 t" e* ?9 T4 h, w5 m
# include <stdio.h>5 q/ L% j) V9 t1 U" f5 e
' R- ~+ a9 z4 C) J
#define uint unsigned int
7 K' |8 g1 [: H8 W+ }#define uchar unsigned char
7 O* m+ Z- j ]+ U# t# {4 G. ^7 \) p
9 k+ [0 j5 E3 p- `- M
sbit lcddata= P2^2; //液晶数据端口) m- N- Y: Z& D% n$ O$ ]3 n
sbit lcdwr=P2^3; //写操作端口
3 V# p+ H8 }1 H( x, @sbit lcdcs=P2^4; //片选输入 为低的时候复位初始化且数据,命令无效。高的时候反之。& B9 B t& e% Q( ~
+ s2 J$ N: N9 J, w! i1 Q# l% g
3 i4 @( ]: c0 j, _! O! {! D7 K2 p#define BAIS 0X521 v8 D" _; L7 U
#define SYSDIS 0X008 v" p, O% a; Y
#define SYSEN 0X02$ ~& j; R; F2 T, g$ p
#define LCDOFF 0X04
4 ]4 k. {! C; D1 N0 U" X: _1 Q#define LCDON 0X06
3 D! D; x. N2 ^9 R' Z& ^#define XTAL 0X28
( ]; q" s& h+ [6 w2 a" G" J3 S- T7 F#define RC256 0X30% I9 c: O! e* h6 ^) x: @' `
#define TONEON 0X12* w$ G0 Z+ {' f2 o5 `2 y1 i
#define TONEOFF 0X10* {$ f) Q) Y7 Q3 k2 g
#define WDTDIS 0X0A; ]$ o1 u" f u! D
4 Z, }2 L, k6 y* B9 l& w5 x7 f/*****************************************段码*************************************************/
2 s/ \* K4 c# k( suchar code TAB[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
* @% P+ r5 k# [, N
9 x. j* `2 v- S' S; I" t/**************延时程序1***************/
5 n5 j; ]% K& P: Z$ avoid delay1(uchar x)" h l% B- o0 q& X% o* {3 |+ ~
{
i$ B6 n3 v8 v5 S: Q' }& ? uchar i,j;
4 `7 w6 I$ R% Z: h$ R for(i=0;i<x;i++). r2 D" i/ o8 k& l2 n
for(j=0;j<120;j++);5 S' O2 W" b2 x: Y- g8 J i4 {' Z
}
% T& S& B1 I: }- I6 x. C% a( ]; y3 C6 I8 c5 S
/********************延时程序2**************/8 q1 I' j7 `* n
void delay(uchar y)
4 H, R0 R. c8 j* _/ _5 [{
% k5 a7 w7 r9 D, ]8 v7 @% X while(--y);
/ e6 r6 `, e+ e
; n. h5 z) d) d. [' Q}( v9 m a' v" k5 N! F# v
* Q* {4 G8 ^; F- g3 Y9 G# }/*********************写数据*********/
' }( c4 R$ O8 }) P( o0 Avoid wr_data(uint cnt,uchar date)2 M) a# H5 @ s/ g5 z2 w G. X) G6 ~
{
/ ?+ ~: |( F. ^, h9 X7 l uint i;: i: t. P3 w; D/ N3 V' r( r: X
for(i=0;i<cnt;i++)
8 b$ G$ X, j, K! h0 [7 Y6 E {
9 V/ h! ?3 M1 L, \9 Z' l/ R lcdwr=0;0 }$ @9 ^# p* _
delay(10);
. k0 n& O+ r: O7 y! X+ k lcddata=(0x80&date);1 g) l0 n+ Z4 n* u9 I5 {
delay(10);
2 O( M" A/ {! M$ S4 n. X- B6 m lcdwr=1;: L) X1 `1 r: V8 F) G
delay(5);7 {# s& M6 [1 P( H3 n* Z/ Q
date<<=1;
! V7 t# C- z6 W }
( Y! Y1 \" i* }/ \: k, ^}
- i. O/ O C! `" k2 k
; d0 B4 G- E: E& ~& m/*********************写命令**********/
C" `% l7 a0 \8 y% kvoid wr_com(uchar com)! \5 X1 Y' K% L) q$ q- v; j5 D
{
, L% @8 y; S0 |! i! R/ k$ d lcdcs=0;5 _7 B. v) z6 `5 T s$ j s* X$ e" H
delay(5);- p u$ P6 G9 Y$ n3 b1 k. {
wr_data(0x80,4);
8 e$ G$ c4 i+ |& R7 ^0 q wr_data(com,8);" W- j" _! t3 H G( ?9 k, W
lcdcs=1;7 @6 s2 T* z d# _1 m
delay(5);- ] D4 y( |) t6 y2 m7 ~1 u& p3 Y
}
4 N* {, l; `: @; Z- Z8 Q W: H6 E8 r4 E* [. t. O
/********************液晶初始化程序**************/
$ p I! |3 d# j4 |# ~! w2 Q" Kvoid init()4 l& L; v2 O, }# V. k! o5 T/ }% b8 ^
{
& h- B/ o) t4 b- U, ?0 u' c lcddata=1;
6 A, i7 u9 G/ g# m$ W2 o( }- u lcdwr=1; ) i* ~" F2 {/ M1 I% n% T/ o. |% `
lcdcs=1;
" u$ }6 ]) U4 L2 g% H: E wr_com(BAIS);' k1 o4 o. B, J2 a% j4 x* r0 u
wr_com(RC256);
* a5 i$ A" e4 t wr_com(SYSDIS);
. N" N/ K# h* v5 D! ~ wr_com(SYSEN);
8 p/ n% w+ m" q* ]1 L# y wr_com(LCDON);
4 n+ S6 R; N0 W ]/ Z// wr_com(WDTDIS);
" J3 N4 j G: ]' v}
1 e9 ]$ L, e5 U8 f- @
/ x! l" R$ T7 v; k% K7 G+ Avoid display(uchar m,uchar n)
: T0 E7 i* i) D1 O( E! q0 b3 ]( g7 G{ L' D: M8 J* i6 e9 ?/ S& Y
m<<=2;
* j4 i! |$ B! ?8 nlcdcs=0;
- \1 A( N7 @6 p, h/ z2 Qdelay(5);8 d# \3 h6 H. k) v. s; I
wr_data(0xA0,3);2 F1 q$ K( c* m! V2 P) R1 o' T
wr_data(m,6);
- N2 B* r- V8 j3 ?. E; [wr_data(n,4);
5 \/ B* Q( d% g2 c/ |7 mlcdcs=1;
) f1 ]9 h1 x) [: b/ {5 q7 p% qdelay(5);: R4 e: j+ }# I H2 m& M7 W3 `
}
8 h9 A, f: f& e& v: Y( h
& ]7 T. w" n& x+ T) K& vvoid cl_scren(uchar l)
8 H. a6 f; I1 P& O{
6 K, S% I6 t; [ ^, o" v uchar o=0;& @) M' m6 e8 s2 r
for(l=0;l<32;l++)
% n0 R& T8 g; U {: X! b& ~: b; t
display(0x00,o);6 L" m: F$ ^7 C r, C, R4 w
o++;% w# p+ ?6 U0 S+ r- t
} 6 ^' F6 H: b: d! a
} 4 n, s, R; y8 D. O+ [
5 _8 v# U: u, k7 I( |
- k7 |8 v9 o- P& |: l" ?/*********************主程序*************/7 R' ~2 I0 |3 H0 k
void main ()
$ {) P4 E5 {& m) m3 q& |% d{
- N N+ R7 ], o init();
: W ^6 k5 V" Q1 l6 d! G S+ ^! t5 @ cl_scren();
. R! B" y: V2 t0 Z- T+ x display(0xff,3);
! B$ X% X6 K4 v6 c3 Z3 i3 o while(1);! k( N4 w/ ~& W* L
}使用特权. N6 T0 A* j2 Q) A1 H8 j
评论回复 赏
# `' z( ]4 |. C
, o# O" b6 z. B: U2 n5 ? t: z/ g7 W! C! s0 E* t! c( x
0 B* _* I9 k: p' ~2 j7 F |
|