|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
{:soso_e113:} 偶出炉的的MSP430单片机LCD1602液晶显示流水字幕“HELLO-EDA365”,要带头多发帖& R; ?: [5 R# W
: Y( K, `1 A) a% O$ ]- M. z' y8 Q
1 E. H: g( w- N ?
#include<msp430g2553.h> //msp430头文件" \5 ]9 e/ S/ K# k9 y3 j8 i3 ?* e
typedef unsigned char uint8; //宏定义
$ K! {4 U( D* k# t( Mtypedef unsigned int uint16;" W% G2 D# @. l/ d$ y" }6 k
void WTCOM(uint8 COMM); //写指令函数申明
+ x4 ]# Q( b- q. R% o! T$ pvoid WTDATA(); //写第一行数据函数申明& f$ w9 s! g/ {' ?% U( k# Q$ m
void WTDATA2(); //写第二行数据函数申明
% _: B+ k6 S, Z0 M9 h/ w* F2 N5 ^void delayms(uint8 z); //延时 E4 A. a, T/ \6 F) b+ g/ h3 J
void delayus(); //延时. I) R9 w% F: _2 m+ H
uint8 table[]="HELLO-EDA365"; //HELLO-EDA3654 T+ P: {3 w! y. ~( q" _3 a
uint8 table2[]="WHTY_ah"; //WHTY_ah3 ^! K+ G5 V$ O+ z: j
void main()
$ y* [# ? n; {, M{
1 b. t* I8 a1 f: e' b( X uint8 i;$ r2 ], s0 t6 v
/***************P1是数据口 P2是控制口****************************/2 T r+ I* p0 O8 A
/*********主时钟MCLK用系统默认DCO****************/
: a" t* w6 A5 z7 R3 Q3 }5 j! ^4 F; n' f # Y, e8 L' L. f8 @% [! @8 J
WDTCTL=WDTPW+WDTHOLD; //关门打狗,^_^(关看门狗)
. B" S, }+ y4 m$ w. `2 D+ o" b4 v P1SEL=0X00; //普通IO# {+ Q) b7 p: k" |1 z/ x* J
P1DIR |= 0XFF; //P1为输出
, m7 b7 @: }) Q& v) t) F! [ P2DIR |= BIT0+BIT1; //控制口RS+E P20=RS P21=E8 m! o8 w8 l/ \" A9 Q8 I) a4 \( A
while(1), i t* V- a5 C) F: ]" P
{: W: c+ p2 {% j3 p9 G
WTCOM(0X38);2 H% G4 Q- B3 D- E; i
delayus(); //1602功能设置6 [6 I$ |6 b) @- z& }$ Y) i
WTCOM(0X01);# b- ^5 F' u- k" L. c& V# A
delayus(); //1602清屏* H( E A# l: Y* f# N: O
WTCOM(0X06);
/ y1 w7 w, j/ S! @; S# n delayus(); //1602光标及AC设置( W3 P; ?. q. l2 W6 A
WTCOM(0X0f);
`, s: @7 O( g* Z delayus(); //1602光标开关! n! ?% Q( P$ G3 n3 |
WTDATA(); //1602第一行显示3 U8 {3 _0 Z7 [, A$ U0 N
delayus();
0 |" x, X1 U) \3 M WTDATA2(); //1602第二行显示
$ U7 Q9 Y# K3 w9 k. ~ delayus();. q0 J* P. W& m0 l6 X. K n
# T" ], [$ I+ {* Y
4 |$ |4 }& x0 j( s: n5 s//************************************************************* ( P3 q: h; [# e& A! _
for(i=13;i>0;i--) //移动字幕
8 f$ ]6 ` ^- L- Q$ X: | {
/ Y* Y5 j; ] _" z. W$ t. R WTCOM(0X18);
9 P7 l) Z' H/ G' ?, |" [0 _ delayms(100);6 R" n/ `. @3 V9 v- k
delayms(100);
- h7 n+ D# w1 z6 R# Q }
2 R0 c8 D0 o) m: k) f# I
& v5 \+ P$ j8 w4 `2 B# T6 ^ }
9 c0 R+ t. t0 k6 t7 B e
) Q5 _: ?$ S) q. O}
" r; w3 ^3 j$ Z5 ^. i% V: B* h o# `; N
//延时****************************************************
- U5 [: l" x. ]5 {# }
* Q/ l3 L; U; D( Fvoid delayms(uint8 z)
- p5 l( S1 x! [. t* E, Y+ E* p" H* }{
$ e5 S7 h x" x uint16 i,j;5 X. u7 L7 h, p: n3 Y$ C
for(i=z;i>0;i--), \' q; }* v% ^! U; f
for(j=500;j>0;j--);
& s" | w- `: M. j' _2 K}% f( O9 f6 u( @9 R; n$ R; R* f
7 ~9 B) ]7 W$ L5 P, @7 W' D, j1 A//延时************************************************' a: h: T: z) |: M& h
! G. W5 a6 C9 @4 M8 M }0 ~
void delayus()
1 O% S- @8 \5 z. c{
H6 y3 ~* m! J: C1 M" W1 U+ h uint8 i=50; z. R( g5 l* D5 D
while(i--);
9 R" |; @: }# v. `} ) z0 Q+ |9 g1 J
( A+ W: D' p& L/ {) F; |3 P1 J' D2 z5 k" ~
//写指令***************************************************
2 y5 b" U+ E; U, z# j/ r) E2 c
. V, D( F7 m; U& ?3 V& [void WTCOM(uint8 COMM)
/ h0 n: k" J# y* c- n{
8 t! L: `' t$ ]* _: h P1OUT &= 0;7 k2 D5 z+ N5 F9 h4 G- h7 ]$ E
P2OUT &= 0XFE;( ]: ^. r7 y/ d C
P2OUT |= BIT1;+ H! D9 b* w& X& K' X' b. `
P1OUT |= COMM;
# G- i% Z# Q6 u. p( T# H# q delayms(1);& @+ R" `; n! U' U9 n Z
P2OUT &= ~BIT1 ;$ y$ o) T7 _+ i/ \
}
5 l- s6 M' A" w
* y6 A- x$ m5 T o$ _//写第一行数据**********************************************( n6 e3 F1 Z+ k. o. |
1 ?$ }; O* b# L( v
void WTDATA() ) ?$ y( q' _' t1 q' r6 y7 K1 G
{ h* a) Z& H. }7 A5 N b
uint8 DATA=0;6 D* \6 C3 |/ x( J* d G' E( ]
WTCOM(0X80);
$ m) a: j: h# V$ D P2OUT |= BIT0;
- J9 R T$ ]6 _5 @/ ^7 C8 s; Z for(DATA=0;DATA<12;DATA++)2 _+ n0 `, s' B! I* f( J- Q a
{
4 P( k" [ `* c3 s& }# ~6 k& C P1OUT &= 0;5 Q( p J1 {& T/ j" R" @% v- ~9 c. d
delayus();$ D ~8 g; j# e9 i2 h o
P2OUT |= BIT1;
) G. {. M, N b, w& r P1OUT |= table[DATA];
9 S, |1 i) B5 P8 X delayms(100);# S# ?2 }4 Z% }, }# n h
P2OUT &= ~BIT1 ;
6 l) H+ y+ |& u" P" i; s/ c } ! C j: P, v4 C* ~5 `# C
}) S) U2 T0 L7 E
. P5 l- c& B4 q" k
//写第二行数据************************************************
3 o7 n$ o! c: m0 D0 d' q' J/ c4 Y. A/ k
void WTDATA2()
+ h/ a u1 P2 G7 t- j( {{
6 Y' ]; I N/ A! ]6 f uint8 DATA=0;5 P F: V% ~8 g
WTCOM(0X80+0X40);) L3 l% ^/ P- T
P2OUT |= BIT0;: Q& s, V: }( R4 d* D0 P0 }' D
for(DATA=0;DATA<7;DATA++)) g* {) c6 R; a( a
{ 7 v7 A b1 k) k4 g ~3 B8 Z
P1OUT &= 0;. E0 Q" ?0 O5 K' Y3 z
delayus();) f( U$ E4 Z6 x3 m' q1 V' j
P2OUT |= BIT1;
+ m' f% L; c) H3 [' @0 z0 i P1OUT |= table2[DATA]; G* E* K+ _8 u, p
delayms(100);
. z8 D% ^. Y& L# \8 X, f8 W P2OUT &= ~BIT1 ;
! N0 ~/ d) \: K/ h } . T0 q+ b6 x7 A7 r/ i. k5 [/ V' r
}. Z* D7 [$ N4 t# v. S8 v' y2 b* J
' G8 K' X7 I6 t( }: H
8 k4 o ]) k1 Z8 C# `6 n* e9 k啥玩意都得搞个图{:soso_e112:} Y' ^7 }8 Z( }" V" v
! ?7 T0 l6 F: a
# {# P, {! P3 `' H
% l6 n3 v3 I, {" q7 Z9 Z- d
1 D' e% g" m- }, k: x+ K/ ?) p, z0 \4 R' F9 Z0 Y( p: s9 o; f& N
|
评分
-
查看全部评分
|