|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
{:soso_e113:} 偶出炉的的MSP430单片机LCD1602液晶显示流水字幕“HELLO-EDA365”,要带头多发帖
" Z, y8 U& L4 O0 u- w7 _: [( @! I! `" ^$ D+ e; e! L- ~( l
& a' S7 B/ y7 _0 e& B! p( G
#include<msp430g2553.h> //msp430头文件$ c1 G& h' M) {
typedef unsigned char uint8; //宏定义' \4 O9 G" T! P6 b" r+ b' g4 }0 J
typedef unsigned int uint16;
: n- Q6 b$ ?/ r4 A2 Tvoid WTCOM(uint8 COMM); //写指令函数申明
; f& w% z5 w. t7 G# ?# f% \void WTDATA(); //写第一行数据函数申明# x5 `# h1 Z: {2 U
void WTDATA2(); //写第二行数据函数申明
5 R1 I, W, y9 T: _( |6 Zvoid delayms(uint8 z); //延时* `: A, N: Z+ R( ~
void delayus(); //延时
' u- U N+ \. G; w1 B$ b! Huint8 table[]="HELLO-EDA365"; //HELLO-EDA3657 b5 y" Z- N0 x& v* k% H
uint8 table2[]="WHTY_ah"; //WHTY_ah$ r- L" _& ]' x* W+ F
void main()
d. g8 Z1 S" A* ^ F0 F, }2 J+ l{5 H- q/ f: n m5 Z- a# s* e! ]1 @
uint8 i;
: S$ o. S; O) z7 x& G /***************P1是数据口 P2是控制口****************************/
) R: N# Z9 e4 L! |3 B /*********主时钟MCLK用系统默认DCO****************/
, E9 b! v' X5 x; y- c
/ \1 A) E& y; B" ]7 x WDTCTL=WDTPW+WDTHOLD; //关门打狗,^_^(关看门狗)
: \. M; J2 m6 u! b Z P1SEL=0X00; //普通IO
7 U6 s' S, q z- }# J4 u: Q% r P1DIR |= 0XFF; //P1为输出' v7 T' Q5 z$ [" L; z% L' c
P2DIR |= BIT0+BIT1; //控制口RS+E P20=RS P21=E9 c3 m4 Z: M8 O+ M T) d& m( E
while(1)
4 u2 x; t4 `( u } ]9 [ {
( E7 W3 h0 M: H; X6 A WTCOM(0X38); M* {+ |9 o8 H- M4 N, ~* a% M
delayus(); //1602功能设置% l0 v6 V F% w
WTCOM(0X01);
2 g3 e) d$ ~1 M; P$ C) l7 J O# V) P4 T delayus(); //1602清屏
1 C" H' t: ` j6 Z# z WTCOM(0X06);
; w4 a z2 @6 j delayus(); //1602光标及AC设置
4 ]4 e& u2 Q2 y4 g7 e WTCOM(0X0f); _" @8 i# P7 ?
delayus(); //1602光标开关" R$ _5 k! H$ n1 S
WTDATA(); //1602第一行显示4 _8 \! r7 }( D* w2 N
delayus();
( G! W9 s5 M2 J9 l2 m WTDATA2(); //1602第二行显示! Z3 a+ ~) ^+ F- L8 f/ O- ~
delayus();3 i' C, _6 b0 x: I5 l
' i, i' V! W1 _/ q' D% c& ]* C
5 V1 ~; e" \ s5 a# M! ^//************************************************************* 5 l; x3 Y9 c* {2 ]/ t+ e$ v# V
for(i=13;i>0;i--) //移动字幕
6 E5 [6 ?; f! M1 J# N1 C+ n {* H( O2 z+ L' w2 b2 W/ T
WTCOM(0X18);# `' V" {7 ?9 H: e$ J9 v5 m
delayms(100);
1 Z/ F9 M; Q1 {- h3 E9 h delayms(100);( `% |, r4 a0 t) |0 d4 |
} 8 P; G8 s7 l) d, g
) X/ d( @" S2 s9 P }9 @" {4 x: {; ^
% \8 P' F+ T( ~" E/ d5 s4 |}3 G& P; `: z$ \" w- J" D* G
3 {3 P& U l4 [! {% f//延时****************************************************
0 p% h# _% A; f
' ]% I9 a" Y+ b2 rvoid delayms(uint8 z)& |2 j" Z/ E( ?$ s8 o" U4 e8 w
{
$ u3 Y; h. a" l# r4 L uint16 i,j;: I6 H8 B% _( m5 s
for(i=z;i>0;i--)
3 b- V( y: `" c5 n3 l4 m |" A# S for(j=500;j>0;j--);
- o7 i8 f/ B( B* _& \" L- x}3 V/ _& Z4 U1 t# M0 e1 B9 @
4 X- B8 g8 q J" T$ M3 ^//延时************************************************
2 L/ a( L o* e) y7 B' _9 }: j, [5 y" I) V j2 c) ]
void delayus()+ F3 v8 d5 \% t' o& H" H
{
' \1 S7 z" @/ N( T0 R uint8 i=50;' X3 f- s' j) Y
while(i--);; T& E, R0 c/ N% i3 U
}
4 Y! X7 n0 g6 s& |
5 u9 C* K& g) u9 V. z6 W [& b9 O7 I# v8 m" o1 P1 g
//写指令***************************************************( q/ j( b' O9 K' y+ y& f- _
% e; n; Z' {0 t0 `# k p
void WTCOM(uint8 COMM) - a4 }: z" B1 F5 {% [! e0 I
{
% l: n: t; m0 t7 b" W1 a$ O( F P1OUT &= 0;
2 d9 H4 }' E- R$ T k7 z P2OUT &= 0XFE;* G& n* K0 w# U
P2OUT |= BIT1;4 s7 Z: X7 ^( h, V& K
P1OUT |= COMM;
2 M+ g/ ?5 W1 Z( z1 r' e( Z( Y: m delayms(1);0 w6 I6 m( s' ]: ]
P2OUT &= ~BIT1 ;
~3 c" Z/ b5 Z' G7 o* w}7 u5 J" r- E& e, y
2 `! Y: x" }; o//写第一行数据**********************************************
3 l+ H4 I) i w) b w* }. F# H- U2 q/ F& Y! G" E2 o% r
void WTDATA()
: M7 S) t. K v6 ?; K{* C/ _9 l! H# Z# h8 T% E: S5 Q
uint8 DATA=0;
: x0 P7 H3 ^. z& o% q/ t& r WTCOM(0X80);
5 j% C9 L2 c( i9 U5 x P2OUT |= BIT0;
0 F/ B$ `4 I; c. l+ K3 v! B/ O for(DATA=0;DATA<12;DATA++)
) [8 `: J; L8 Q4 ? {
; M- `5 M3 F4 Q4 Y* y$ ^% W P1OUT &= 0;
% E5 B9 A {9 R' `7 \# q/ b delayus();
' [6 G5 Y9 P; X% A P2OUT |= BIT1;2 X5 v- }( d. q; [6 B6 Y1 |
P1OUT |= table[DATA];: Y9 ^( i( u6 q" V; _5 B$ C6 j
delayms(100);
, Z' t% h' ]1 x) f' q P2OUT &= ~BIT1 ;* C% F; S9 Q: W3 W: b
} 3 R% H7 Y1 t! C: Z" @! @
}- ~1 s+ Y+ {' S" H
" B2 u7 e, R" U4 G' W9 |9 [9 E//写第二行数据************************************************
( u9 m# A4 w; i! D) j
{4 L- N& l' m pvoid WTDATA2() 5 ]" x! V1 `/ j8 B5 g; }9 p1 e
{3 ^. _. v2 b& Z: f' j
uint8 DATA=0;5 J+ z- G2 e- s h) n4 p2 b. g+ O: A
WTCOM(0X80+0X40);
1 R+ D0 J$ D9 D+ E6 x P2OUT |= BIT0;$ r& w# g0 L7 }) j9 N( p5 h! _
for(DATA=0;DATA<7;DATA++) X o9 V% e7 X2 |0 P
{
( G2 Q/ N" F: ~& a. W P1OUT &= 0;5 r' C7 l# y3 X: w
delayus();
$ n+ ?8 y( H* g; I P2OUT |= BIT1;5 U% |" _( {# Y# j7 B% G# q- M
P1OUT |= table2[DATA];
& \3 _/ ~ _+ b j, p delayms(100);) n5 C' c0 F K
P2OUT &= ~BIT1 ;
9 f6 n4 K# I+ j$ y$ n: r }
: R8 F* n! ~; b) v1 I( _}
: h% P! M w9 L3 e2 [! o2 k# j1 q- {
/ h( K5 U* N! B: a2 w* q0 l啥玩意都得搞个图{:soso_e112:} 1 S$ y3 y2 h( Q+ p& h3 t
) [' z" K% d; S8 F! c+ p; b& u$ \' i$ @
: j" _1 g- `* u. x( h# u4 d
5 @+ [& E- p" y# Q2 \1 [/ B: W; J+ U7 }8 r2 H# M$ b% w- T/ B |9 r
|
评分
-
查看全部评分
|