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

51单片机学习,操作1602液晶

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
51单片机学习,操作1602液晶, U( f# I# \$ ]8 x
TX-1C板+ _5 t2 E* C# P6 U% B  T

: I" k, M% ]0 H9 f操作并行模式的1602液晶
/ }* \  w, S% {4 i& `* o8 D) b液晶第1,2脚是gnd和vcc
$ B6 ~' K7 [: G+ w第3脚是对比度调节
" P# ~" S- X& g) e; g第4脚是数据/指令选择端RS+ m. C0 Q8 \. v
第5脚是读写选择端R/W,我们这次只写不读,故直接接地
9 ?1 O" M0 G0 `8 ^4 g& O第6脚是读写使能EN
+ b! @2 D2 P2 q! e5 s第7到14脚是数据口,我们接STC89C52RC的P0口5 g4 O: z/ E7 Z" t% q- e' l
第15,16脚是背光源

. I) s: P4 E4 r* B9 J  D5 l" O6 `* G; H/ Y0 o
最终液晶显示
8 T. J. k1 E, I& yTom is playing  the TNT game!
+ o/ f0 m3 T& p2 _# W

4 K! W* r5 y& F9 m4 L$ m) c6 a
$ W* |0 H, j( z
    #include <reg52.h>  
" ?6 H% B$ i3 M    #include "MY51.H"  - B  I' Y$ I8 @- ?  ?; R: ~
$ }# M, H9 w0 M* ?' |* y4 W! y
    void write_data(uchar dataValue); //写数据  
) c$ Z* B- x4 k6 c( d/ l    void write_cmd(uchar cmdValue);  //写指令  , u2 @, S% |* x3 o; j
- o- V0 E# M) ^. H4 i
    uchar code tableLCD1[]  ={"Tom is playing"};  
& j0 E/ G. Z+ P6 L2 S3 q    uchar code tableLCD2[]  ={"  the TNT game!"};  
' k$ `; @( |1 c: a. M4 F. I1 l' \& E* V6 n) e  X
    void lcdInit()      //初始化函数  0 s" d0 l: P& f7 P# R1 G0 z0 b7 x
    {  $ m! M3 \* t: O! V7 t
        dula=0;          //  ! }: `2 \9 m" b+ s! m; a: n. d: X
        wela=0;          //防止数码管误显,浪费电流  3 D, |" Z8 U: D5 M! P4 y) x5 F( L
        lcdEN=low;       //给高脉冲之前的状态  
2 ?% D, @1 c  F6 m        lcdRS=high;      //初始给高电平,其实上电默认也是高电平  % z, V" w4 y2 I7 ?. g
        write_cmd(0x38); //液晶显示模式初始化  2 Z  L. L+ Z6 u
        write_cmd(0x0c); //打开液晶,不显示光标,光标不闪烁  " A  Q7 g- s! l& |" P# |& |
        write_cmd(0x06); //地址指针加加,且光标加加   7 r7 a) E$ u5 \: X9 J6 C; N
        write_cmd(0x01); //液晶数据指针和显示清零  
" m0 O/ U7 S: _: G# x" T    }    ]/ r8 B7 g# u7 D! S

8 |3 `0 T/ @5 t& S    void write_cmd(uchar cmdValue) //写入指令  
! Z& H! E0 }# s" t$ R3 S    {  4 i, [+ `6 R" {* Y2 a* @+ e
        lcdRS=low;      //刚上电时是高电平,低电平时是指令模式  
  o9 e  X3 }2 O1 c3 n/ Q- S- ?        P0=cmdValue;  . E0 X+ o5 t+ O6 ^% X
        delayms(1);  0 G/ V# N+ A' w! s: r
        lcdEN=high;    //一个高脉冲把数据读走  1 K# j/ U) n$ {1 b* {& V
        delayms(1);  
  r4 f7 Q9 y1 k# a' N        lcdEN=low;  5 [8 l1 Y' V% l4 z( C; c; h7 e7 d
    }  7 _3 g+ G8 B. ?3 q

$ z5 M1 A  r& m& B. o8 Q0 Z5 J$ ?    void write_data(uchar dataValue) //写入数据  3 s, T0 ?2 w5 o
    {  5 h+ d- y# O# u& X+ H/ N7 z
        lcdRS=high;     //高电平是数据模式  
1 p6 y* {2 z  O. D' q        P0=dataValue;  
, ~+ V2 c/ l- z        delayms(1);  
' [9 }0 y( B+ ]. Q3 H+ p" a( t        lcdEN=high;      //给一个高脉冲  8 g  a1 ]- V9 K4 P4 N
        delayms(1);  
- j4 A: }: w+ U. L        lcdEN=low;  
, z* m, Z& Q, ]# {    }  
. }. p0 f" G1 D  _/ W1 b/ n, o9 }+ L2 O& O
    void lcdShow(uchar* pValue) //液晶显示函数  + i- V, v$ r9 \6 W% J
    {  ; W; @! `7 _" d7 _; r
        while(*pValue!='\0')  
- M' N$ b1 k8 ^* T5 B0 n        {  ) {# |$ Z: z; h
            write_data(*pValue);  
4 L/ I' \; p$ ^) h            pValue++;    g0 G8 @( M1 N9 M9 n$ R
        }  
0 k$ X# B( g! i* W2 K    }  * H* I$ v6 i  X% S) F; ~
1 V, l3 x; l5 P4 W- @# j9 r6 O
    void main()  4 K6 {8 ]; f  `2 J: P) S
    {  : Q: q# k6 }8 E  F) v+ e
        lcdInit();               //初始化  ( r# V* A% G4 P
        lcdShow(tableLCD1);  //显示第一行  
: v  u: V" A( n" Y        write_cmd(0x80+0x40); //重新设置数据显示指针  
) i2 T) x8 W6 \. w: k' P        lcdShow(tableLCD2);  //显示第二行  
0 R) D* C' }8 A5 {        while(1);  
0 ~1 u; H. Z/ q% H    }  ! r, Q; Y) f# ^$ _2 b6 }

7 _0 y0 _# Y  e6 Q& g) r- p
/ v4 x( i9 N7 M1 Y
3 S! E* B4 b& \% m5 F2 p6 I: _& J3 T7 n% d2 \5 R2 n# w0 }
游客,如果您要查看本帖隐藏内容请回复
, R, e1 y) l; h/ H' h5 E3 S

8 y* k( [5 L. q! v, F. j
/ h2 U( _1 u1 h" T2 z) o* e/ H& Y& V

% z  ~# P# K( C5 j+ q8 }* x( x' r+ V) Z7 }

% Q; i. y# k3 J
1 n) l; T8 f& V# B+ e+ j8 J
( ?1 d4 D4 b8 }" A

+ _3 \& g, ^" R0 {1 C7 ?+ a
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-19 16:28 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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