|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本用ht1621驱动液晶显示屏就是点不亮屏幕,求大神指教。# include <reg51.h>5 [* e& t6 |# b( K& {8 D# o$ n
# include <intrins.h>& v" D T. q( R. k+ H
# include <stdio.h>
G8 t, w: Q c" [7 [' ~9 ]$ c% E
8 ~, t/ i: a0 N6 ]# x#define uint unsigned int
6 Y/ g2 ?# j }9 q- l0 f" v#define uchar unsigned char 8 X/ s: u6 @" B$ M- } n! L
" K" l! V, \( H! h
! T) P. A! f( L8 u" \. q% Rsbit lcddata= P2^2; //液晶数据端口$ D: b9 J& t$ a8 Z0 b
sbit lcdwr=P2^3; //写操作端口
9 \1 D9 U6 d* k% v6 Q# }sbit lcdcs=P2^4; //片选输入 为低的时候复位初始化且数据,命令无效。高的时候反之。! k* @, G/ u; k, W9 g2 A0 r
5 P. a& j$ Q) J5 o
0 P+ J* k6 O7 K+ R: ~. j#define BAIS 0X52
9 @$ B6 p; g7 C5 C7 K8 A) @#define SYSDIS 0X00' |/ w G: d. T$ S% x3 ^
#define SYSEN 0X02+ b3 f7 {: m9 V: B0 u& S
#define LCDOFF 0X04+ d2 m' h% _$ [) c
#define LCDON 0X06- |9 Z+ S4 y9 ?" A
#define XTAL 0X28
8 l6 V' z! D( g# i#define RC256 0X30( v, E6 d: T6 P, S! d
#define TONEON 0X12
& l+ b1 l4 ^% ^) K+ M3 b. o#define TONEOFF 0X10
" r% e# x, b0 V( E; s9 @$ Y#define WDTDIS 0X0A1 N5 R* c. L7 `+ _( G* Z! e
7 G" [7 r% t0 q* ^% X Q/*****************************************段码*************************************************/9 P/ n* g8 c3 [7 \+ f l$ V
uchar code TAB[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};7 L, e, N* u- B
5 i1 d9 Y7 W5 i# l) }& [& Z/**************延时程序1***************/) J2 v+ C( W# E* s. \/ {8 m
void delay1(uchar x); p% g7 m5 J" q: h) B
{
3 A6 l+ }. y, _ uchar i,j;
& \! m" T2 O; v+ f- h for(i=0;i<x;i++)9 W! [- {' N. \4 d1 @
for(j=0;j<120;j++);2 W g# y5 o! C$ {% ?" p9 B
}
# Z& t+ U# N8 H; A: U; |. Y4 r9 z7 b; H2 d
/********************延时程序2**************/& h F4 t8 x$ |1 ?, C) n0 m
void delay(uchar y)
+ W" t' f* j: {' s* J" ^{
5 _* U1 t) f. T6 w5 @9 a% b( z5 r while(--y);
" H1 V! m4 J H* E- O( n0 G2 b8 i. u4 Y4 [3 s
}: F3 y) y9 J+ p$ m& p: x* L" Y
$ @$ M- d' G- V2 W& b/*********************写数据*********/
6 g1 J9 y7 M7 L. Xvoid wr_data(uint cnt,uchar date)
1 U4 T% e3 _% G9 Q4 G0 b{
% ^, q0 L# C9 L7 r: T' i, b uint i;3 M$ U7 S) b+ z6 ?
for(i=0;i<cnt;i++)
) M1 d( w1 X: E {
0 e/ b! A0 w( D2 k* x( x) I4 L/ ` B s lcdwr=0;
( m- e. D! t( R% k+ ^$ o delay(10);' {, k8 \: D2 J# A! h$ A4 }
lcddata=(0x80&date);
' b- d* ~* \& ~/ n4 ?# H delay(10);2 i3 S7 W0 t% w& r1 E! k1 Z
lcdwr=1;
& p# L, D3 j) Q% K" Z& S delay(5);$ S3 H$ O8 T5 [( ^* c
date<<=1;
/ `; I8 n' k) R- w7 W# f } [- I1 r8 B+ @ I2 b* x) ~
}8 D: N* B) i! ?$ P; R6 O5 ?
8 R$ \: f [/ G" x- l
/*********************写命令**********/
& h, n9 b5 _( evoid wr_com(uchar com)* ]1 r2 V9 l X6 g
{4 O q; J+ L( g# h4 y
lcdcs=0;# G6 u* X9 v, ~; w
delay(5);- w" n U3 j$ W9 V: e
wr_data(0x80,4);
0 T [) z4 E7 @$ {7 G7 U wr_data(com,8);
: L5 P# E) L% ? lcdcs=1;4 w/ Z4 ~# ?9 D/ g& D
delay(5);
9 A3 n5 N( O( \) u7 y% z N3 M} + _4 ^: i- p# R/ Z
7 ]. `: \# O6 i+ f) Q5 P
/********************液晶初始化程序**************/# `# {1 E% N5 X
void init()
$ \6 a ~! d- A{
$ K" A ^) g. x0 B0 ~" K lcddata=1;
: X" q0 b R6 X$ y N2 Z G lcdwr=1; $ m0 J, R* r. p' y
lcdcs=1;4 I+ ]4 z0 \: M
wr_com(BAIS);# g0 u9 Y2 r& E, t; @* F$ Q) Z9 a
wr_com(RC256); ' c+ k* }5 Z. r$ B q
wr_com(SYSDIS);
2 Y# \; U6 E3 `1 i# a( K wr_com(SYSEN);, }$ ]9 p4 N1 U% u" z
wr_com(LCDON);1 k {! L g9 [1 p
// wr_com(WDTDIS);5 S9 `* P) c/ o4 b8 R7 Z
}) f* U+ F; S8 l# v. Z: F5 B
: {& `: X/ |( t* i9 zvoid display(uchar m,uchar n)/ l: c- o0 ~( Y. [
{
# s. i& I- L e* V* | m<<=2;
+ p- P& [" c/ c) _. |! e" h1 {lcdcs=0;
' d1 [9 t1 |, x, I$ T0 sdelay(5);- ]' T+ {, F6 G2 |* T
wr_data(0xA0,3);! G; y4 i. T3 | q: s$ n) h9 L
wr_data(m,6);4 J' H6 |3 z4 j. U2 Q# l5 }3 W
wr_data(n,4);2 n+ e' c7 T! A" ^! p4 ~2 k
lcdcs=1;
! C! D+ T5 K9 y' n5 z, qdelay(5);7 e- t1 t1 D# b* m `: Y
}3 n8 ?% v/ w9 [
, b A! e; @( l2 ]# n/ C
void cl_scren(uchar l)
3 q1 i9 x3 v3 ^& H. | |{
; R: b$ k1 P6 c* s' z uchar o=0;) m4 [% Y9 F7 I# p0 I/ C5 [% t; B
for(l=0;l<32;l++)4 X* j6 s6 a l+ V4 X
{
1 M1 f! ~! G8 f) F/ @: o display(0x00,o);
2 E m+ x3 @3 F1 T9 Q o++;2 g7 B7 @" q& C( a* m
}
0 e2 \* b# I# X- C# L% l _} 9 E: R- x7 ^2 P- q) {
% G( K, [ c R' a8 d9 T% f7 T" Y
/ }+ j1 q' j% Y+ X( `1 F
/*********************主程序*************/9 n" b h1 K1 \6 J4 v1 Y# [
void main ()
; A; R4 B! S; x# m [: L{
- F. V. |# g5 J" g E, \ init();5 l) h. N* g* [9 C
cl_scren();0 W$ f" W8 Y( N
display(0xff,3); , b$ ]" D' O! ?
while(1);
) p# y" p' U3 ^ B/ j) {3 f% @! j}使用特权3 r' ^' W1 p. f7 W6 G# y7 s
评论回复 赏 v1 o9 f5 {7 ]3 w7 b$ u
0 ~" f# v0 S$ ]
2 X* r, |/ ]6 R# Q1 i0 v
# Y. I8 c7 Q( z. f7 H |
|