找回密码
 注册
关于网站域名变更的通知
查看: 412|回复: 1
打印 上一主题 下一主题

用ht1621驱动液晶显示屏就是点不亮屏幕

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-12-10 10:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

该用户从未签到

2#
发表于 2019-12-10 17:56 | 只看该作者
void wr_data(uint cnt,uchar date)这个函数第1个变量是长度,第2个变量是数据;调用的时候反了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-11 07:18 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表