|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
{:soso_e113:} 偶出炉的的MSP430单片机LCD1602液晶显示流水字幕“HELLO-EDA365”,要带头多发帖 G5 y9 b5 P6 i" ~& [+ B+ M% S
" ^# f0 u* |2 }1 U+ q r* ~1 S
, o4 O6 V. P$ x+ r6 R2 V1 L4 n4 u
#include<msp430g2553.h> //msp430头文件: u* ^5 O2 y+ \# B) h# A; v/ h7 Z% H
typedef unsigned char uint8; //宏定义
0 m% F$ Z* Q! ~* C% W+ T/ mtypedef unsigned int uint16;
7 Z) w3 z: _9 L' ]* f4 ^void WTCOM(uint8 COMM); //写指令函数申明
' r8 j ?3 N2 K9 o/ nvoid WTDATA(); //写第一行数据函数申明
4 q% |1 a% _6 A" B3 ?void WTDATA2(); //写第二行数据函数申明0 ]0 J4 X* v% p+ x q1 ]% h! i
void delayms(uint8 z); //延时
0 ^* K7 P- _+ A" s) b, Q8 Gvoid delayus(); //延时
, \. q8 b# Z- T) C( Huint8 table[]="HELLO-EDA365"; //HELLO-EDA365
4 {. e, p1 n# M5 m* ^9 ]uint8 table2[]="WHTY_ah"; //WHTY_ah
6 m, R# P" C4 k3 s% B0 l; yvoid main()8 b0 B7 f) ~, O- w& V
{0 B, v1 f, D) D2 K
uint8 i;
' F( a2 P! K* q; H /***************P1是数据口 P2是控制口****************************/
$ e5 N$ n- w2 x- @ /*********主时钟MCLK用系统默认DCO****************/+ A, `0 n4 I$ @
( i0 l* t1 Y2 F+ V WDTCTL=WDTPW+WDTHOLD; //关门打狗,^_^(关看门狗)" ]4 R( V7 _ K; n A' M( k
P1SEL=0X00; //普通IO
+ {2 _4 d9 M0 @' v$ j1 C P1DIR |= 0XFF; //P1为输出
5 S& P. ]6 t" z( r! W P2DIR |= BIT0+BIT1; //控制口RS+E P20=RS P21=E
' Y. {$ i) d! z. ~, J2 P6 l5 T while(1)
/ T! n/ R# e2 w' d3 ~) E9 _5 U- r {$ O- K: x5 g: j" d% d' U8 ^
WTCOM(0X38);. B2 b& a( K0 P8 |% X' Y t
delayus(); //1602功能设置
% z4 ~9 M4 p# K A WTCOM(0X01);
: F, D* {3 _3 c) V% j: j delayus(); //1602清屏4 I5 e& u3 u" P1 [' H& J
WTCOM(0X06);
I$ u; s* @' X5 m% r) {4 V; k delayus(); //1602光标及AC设置
+ G- C$ t/ m' z, V& d WTCOM(0X0f);2 v4 v4 e# f, U4 _
delayus(); //1602光标开关
8 t& Y. Y8 U0 h0 C4 I# D WTDATA(); //1602第一行显示
" E. [: R/ z6 S8 d$ i/ X$ F5 ?3 s- M delayus();
) I* v: n0 \; a* ^" I WTDATA2(); //1602第二行显示
, L/ }1 ]0 d/ F; {$ v$ T delayus();
7 o+ m! L$ |4 Q/ V/ u; Z3 ` 9 o7 \3 L6 N8 _ ^& x
. g( O0 O# X1 A, d
//************************************************************* ; u! Z+ T9 D4 M: [
for(i=13;i>0;i--) //移动字幕
; t; K2 B" \8 V) n2 V& t. y {
' K2 u0 L* M: S WTCOM(0X18);; z: Y& E" u$ i8 I- Y& M
delayms(100);( S3 L% k0 w+ D
delayms(100);( J1 I- w4 t5 _: U
} ( U% L" S" j( S: O8 P
. z; G: E) p% J" ^3 j1 ^ }
; `9 s- W& y0 ?& z* M! X1 U / ~8 G+ l T+ [) y5 Q$ r) a4 ?! ]
}
' S( i; k) a1 n- @% M- ?6 Q- S. d
" q- V% t" I+ A% S//延时***************************************************** {0 a( q; |, a, K/ P8 O
$ K/ [& i; I7 Ivoid delayms(uint8 z)# L! u9 d$ y) F" o& g# d
{# K! U. a5 V3 b
uint16 i,j;- J: O' Q: E/ Y; R' k G
for(i=z;i>0;i--)
: \1 @1 b Q5 H }3 L* c for(j=500;j>0;j--);
7 z+ h) ^# `4 ?# L1 n$ L9 U5 ]}
# X I0 }! E: |; w) P& x+ J; f! Z
//延时************************************************2 p7 Q1 G, Y4 v: m! U* ~. H/ t
: u7 ^+ G: l" F8 I
void delayus()
$ P! F( \! S( k/ \: W1 y{3 q; f* D a- B! S, j" n( V/ V/ b
uint8 i=50;, p6 j8 T8 L' E( o8 v: V2 j
while(i--);: r; u9 n R* D% ]8 c) g
} / ^' H: t) w5 Q) G! C
. S$ y0 s/ J& a* ^& F( n/ i& G
1 {3 n1 e" T4 K! X; y+ G1 X//写指令***************************************************
! {, i* W2 M+ x& P2 }
1 E& g6 M6 X, @2 m) `5 Bvoid WTCOM(uint8 COMM) 0 S% r: e, O3 k8 p" N1 X/ }& |
{ 9 G; W/ z; {! F" t
P1OUT &= 0;4 _/ }+ Z# \" _: h, }: Z9 S
P2OUT &= 0XFE;1 v# ~' N. x# U2 u1 ^
P2OUT |= BIT1;
! S: s0 d9 ?. C {- I7 t P1OUT |= COMM;
. T/ ?. |2 x! S% G# G" P delayms(1);/ G; F- E" Y/ h" ~6 p/ H" i
P2OUT &= ~BIT1 ;
1 p6 U5 E( h! V4 I, C}7 l- ]2 H$ P' t/ e4 b0 I
; ^2 N; C0 [- E' r, _* X R! I8 f//写第一行数据**********************************************
% ^" q2 Q2 f* F) `. i9 k+ R( v, }: \2 A( J$ A* S
void WTDATA()
. l1 } {2 w$ Y5 Q2 T( a R& `{
+ h: X* v; t0 s& c0 Y7 }. e uint8 DATA=0;, ~* u( `3 k6 z
WTCOM(0X80);- I( ~& [7 R& @0 [1 M& x- h( v
P2OUT |= BIT0;+ d; j1 P1 z2 B0 Q! w
for(DATA=0;DATA<12;DATA++)
; n, }8 H2 s2 Y C8 B/ x' D0 M% q {
) j; S, B0 z) a* g3 e7 U, T P1OUT &= 0;
1 [: `, J2 l6 i; \- x$ S delayus();- {7 N: o- G) B
P2OUT |= BIT1;4 x7 d2 |5 N7 D3 ?' L! q' b8 v
P1OUT |= table[DATA];2 X' u: K2 C. O0 ^9 T2 k7 h3 {
delayms(100);, x3 q+ K$ |' l1 Q7 B
P2OUT &= ~BIT1 ;
2 |2 f- c7 |& N& ^2 L3 L6 I }
# Z4 a" K. O& T* R$ p) {1 {- V}1 g) C, o; U% n# m% V5 G
+ ^, \' }/ l9 `//写第二行数据************************************************- e% r" ?5 ^! h4 }, t
' j- d) g) N$ V2 L) A" K2 X
void WTDATA2()
, ~' ?' b8 T4 {8 V{+ _) s" L- B Q( e7 w2 A2 w' L' a
uint8 DATA=0;: p4 j _$ S- M! w
WTCOM(0X80+0X40);' c/ G8 A \9 z0 z6 ]
P2OUT |= BIT0;- q7 e* Y3 _9 ]0 f( _1 d% A
for(DATA=0;DATA<7;DATA++)
6 j$ r8 @0 p! T/ D, t8 K# h {
' ~$ u- h" D" t+ ] ` P1OUT &= 0;% m2 q0 Q- D; D; q: b5 e
delayus();
' V9 e7 A, w+ \: W# ^ P2OUT |= BIT1;# l" F; }7 ?, E% K
P1OUT |= table2[DATA];5 X/ ` ^( X% G4 Y
delayms(100);
1 y1 ^3 M4 H& v9 I- j" h P2OUT &= ~BIT1 ;
( A. s- ]+ R4 P } $ A- y) |' ]! g9 W
}
+ S& H* w" H* t+ s; r' O7 P o: l4 _ @' X% B1 n8 C; r7 w" o% |
& V' x9 i! R" m5 I啥玩意都得搞个图{:soso_e112:}
6 i7 j H1 t; O4 P
/ I7 K& c5 Q8 i" F' Q
' j/ L+ y( y; X0 K
9 n+ ~: v( g, U8 J2 g
5 \; {$ ?) v% H& W7 }' [
6 q# f0 G% J- W
|
评分
-
查看全部评分
|