|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
{:soso_e113:} 偶出炉的的MSP430单片机LCD1602液晶显示流水字幕“HELLO-EDA365”,要带头多发帖
8 ?& p* s- I8 S' {( ~& x) H5 w
5 k. _2 d6 u! [. ^
& \0 \; L) j3 c7 a1 H#include<msp430g2553.h> //msp430头文件) X8 m- B2 ~6 ?+ C9 L. e
typedef unsigned char uint8; //宏定义
. S; s1 u6 k* {1 I8 F6 v0 Ctypedef unsigned int uint16;) q, \; A7 N. f& o9 ^8 L, u
void WTCOM(uint8 COMM); //写指令函数申明/ }2 e* w- X, I. @
void WTDATA(); //写第一行数据函数申明& F2 ~7 u% l1 d. Q3 M
void WTDATA2(); //写第二行数据函数申明
/ N# ]8 d2 q1 s$ B: X" D. C/ \% fvoid delayms(uint8 z); //延时' u0 _( S) ^& X1 N/ S4 z' w4 I9 {( ^
void delayus(); //延时
1 y3 z& Y( ]- O* ^5 R1 O' q* duint8 table[]="HELLO-EDA365"; //HELLO-EDA365
: P7 I$ p/ \5 r+ Auint8 table2[]="WHTY_ah"; //WHTY_ah/ U$ ^9 }2 ] d% M& M& |
void main()
) ]$ n& e& u/ a{
6 r9 @8 R% h m. p8 H6 } uint8 i;: |7 t" a1 R- j! q$ ^6 {/ H
/***************P1是数据口 P2是控制口****************************/
" H; D, [/ `/ b* i+ O4 f /*********主时钟MCLK用系统默认DCO****************/* @8 {3 g* O- u4 s
% b6 d% n9 d0 J2 X! L WDTCTL=WDTPW+WDTHOLD; //关门打狗,^_^(关看门狗)1 D, z8 |4 m* K; U
P1SEL=0X00; //普通IO; [2 E8 j* X, T0 |* r/ n
P1DIR |= 0XFF; //P1为输出
* b0 s! G% M( r P2DIR |= BIT0+BIT1; //控制口RS+E P20=RS P21=E
t N1 w$ U$ I4 ^ while(1)
) P/ a9 ]" F; o& d, l- b' G {: d0 n7 D3 g7 h) t% ~& n1 N; ^
WTCOM(0X38);
& {2 F) F/ K, D! N delayus(); //1602功能设置
6 E8 t; g/ L) a) q f WTCOM(0X01);
( r. m; W% H; u: P; `1 i1 t delayus(); //1602清屏9 r6 n; e. u7 A/ g* i* v Y. `5 [
WTCOM(0X06);1 j& w. n/ Q1 m! ~# C3 T
delayus(); //1602光标及AC设置
$ n: s/ P) h' L5 p9 r; ] [3 A8 k WTCOM(0X0f);
5 `1 L. x9 N* | delayus(); //1602光标开关+ k$ C- V' T9 @) J6 `; B, w
WTDATA(); //1602第一行显示$ m* Z" ~. o2 r+ U8 l6 W. C
delayus();' h9 E0 {6 v! Q. v3 b
WTDATA2(); //1602第二行显示1 V% r: J# P4 x) g7 ?7 F
delayus();0 r1 B4 W' z d: `/ G( \
! `! e+ `6 f1 C- {
. f4 X% S- q) F2 i* E# x//*************************************************************
" J$ E; T n7 n. U! \ for(i=13;i>0;i--) //移动字幕
7 y4 u7 n6 ]3 s$ I& o {, v. l1 }9 Q$ v. r
WTCOM(0X18);# J) p- _, h1 G- ?% a4 ?! d1 u% b
delayms(100);$ {- b- F. c. ^: V3 x6 q
delayms(100);
4 C) n9 f% g6 j" [$ P }
. H. f* z1 s F) ^3 V# @. r# l 8 q5 V' C, r3 K) R: c) J8 N j
}3 M1 ? ^+ D) j' b
( `0 Q# T7 ^- e9 o# U
}
& P8 N7 E( _- h# f3 o1 v: A% ~* H; \$ {6 i, T0 X
//延时****************************************************- U2 v4 J3 A6 ~+ d$ B% g' x
4 s8 t, P' |8 M+ d2 ~
void delayms(uint8 z); w+ b8 U- t! }' E
{
9 S' l4 F# G( { uint16 i,j;* g: `: [& D4 B5 q1 C S' y1 D: E
for(i=z;i>0;i--)# m+ h' |% c( j) o3 ~
for(j=500;j>0;j--);
3 h* o {; e. N( l. z}
1 G. U( X" U4 Q L9 A, f
7 r( e8 E$ G# \ h9 {//延时************************************************
" `. @7 l. r9 s5 v; \% |
+ B y7 N: b {* e& F' \3 [$ I7 Svoid delayus()
7 I5 T" M4 Y% C5 `3 W+ W+ [{9 F7 S! t- _1 O) f" T2 U$ Q. }& g
uint8 i=50;1 n# g0 V* C" ^* s) U$ u
while(i--);1 ?% `+ |+ n, r) y
}
* p! p2 [( D$ z% n: z% D: y: @
+ }/ z: x! Y7 ?" f/ _# X& B2 ]
8 M$ C; ~# Z% d& z//写指令***************************************************
3 J; u# x( B [9 Q8 L+ o+ N
2 S. t6 N' C' Z1 H6 _0 R; Y) D7 rvoid WTCOM(uint8 COMM)
! t% {$ p/ [. U/ J8 T& p{ , @( d% v+ P! A Z7 F
P1OUT &= 0;
: M# b6 x2 K! }- R4 {8 p c P2OUT &= 0XFE;
- o( _ D4 j0 n5 ?* w% g. M P2OUT |= BIT1;- k7 R0 F7 n9 s; p% i1 [
P1OUT |= COMM;
5 |/ t/ g5 c5 ^+ i6 \ delayms(1);1 D1 Y2 e; C3 |" g; _9 J- e6 }
P2OUT &= ~BIT1 ;
5 A ~+ |3 D# V. N6 U. b7 \}5 k W( s% U' M& r4 u
- I0 s: d- w* `//写第一行数据**********************************************
" F& L8 G! S/ ?- v, w) R
5 D$ M) {9 i7 |void WTDATA() # Y- U1 x0 _# y' p2 R* i
{
1 `. k( y4 U# w6 s uint8 DATA=0;' R8 m+ L# _" T' @4 t8 U
WTCOM(0X80);9 U' ~( G$ b- u6 i
P2OUT |= BIT0;5 u3 M' G$ }+ o
for(DATA=0;DATA<12;DATA++)
3 t, W' {, a' t6 [. H$ L { 0 T7 d4 e$ m; ]
P1OUT &= 0;
7 O9 V* m( v0 h: [# F1 v delayus();* ~& ]( D2 S# c0 l$ l) A
P2OUT |= BIT1;
8 ]6 B9 D- s0 Z, D3 _ P1OUT |= table[DATA];
) |, Z1 g Y! P) R0 C8 \- a delayms(100);
, I3 c' ]3 s! ^" f9 D P2OUT &= ~BIT1 ;* c, Z% z, Q- E9 o' d5 F" J
} 1 Q) T9 j0 i2 o/ O* A8 s
}- @; N- b1 {6 p
, v/ N* S* U, i
//写第二行数据************************************************
' {7 V2 f) Z9 |+ ^: _9 w/ H0 G& [; \( F J- j
void WTDATA2()
3 v; s5 g v, x5 A {+ M7 _{
# C! Y3 t1 a9 F5 n! x2 S uint8 DATA=0;
9 @: n) l, t6 H) ]' d WTCOM(0X80+0X40);
* S+ q9 e/ L4 S1 _, e9 N' D- P P2OUT |= BIT0;% `: D3 B9 r( t& @# i! Q
for(DATA=0;DATA<7;DATA++)
: g, c4 U' R- S9 R' B; q {
8 |4 C& L0 \( ^0 l2 e) K9 p1 N P1OUT &= 0;3 B+ z: H8 S7 t$ D/ [7 q( ?
delayus();
) o, G# r8 a8 P* p" n8 o$ f; G P2OUT |= BIT1;
7 U( C/ g. H# h P1OUT |= table2[DATA];6 i9 y; C. P0 f( w9 |& V5 U: N
delayms(100);
) C8 }$ i: w& M6 G P2OUT &= ~BIT1 ;, M/ D. q( g; L' O
} $ z2 J* \+ P. E( x7 M
}
: U4 g! @" {. v X+ t) D) B/ Z4 G& u$ k- a/ E6 A
( [5 A% [2 ?5 D6 j9 u
啥玩意都得搞个图{:soso_e112:} * s! W' J' k3 m: _/ d& u7 E9 F
, D8 ~0 H0 F9 A) H; z& B* W
* }% v x0 R7 F
% } A9 ]- O2 E
* X9 U- L. s& h* W
+ O3 M- B/ v+ d( l" e2 ?$ F% F/ T: Z |
评分
-
查看全部评分
|