|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
{:soso_e113:} 偶出炉的的MSP430单片机LCD1602液晶显示流水字幕“HELLO-EDA365”,要带头多发帖
# z0 C5 z+ K0 k1 z# J, P
- u3 P8 Y" X2 Q6 p1 `) A5 d8 B" P& n- `5 ^8 v0 l8 F7 [
#include<msp430g2553.h> //msp430头文件$ t, {9 f! r" M4 }0 d
typedef unsigned char uint8; //宏定义
1 S+ E }# B) }) E; R ytypedef unsigned int uint16;9 s5 ]7 L0 w4 C8 V$ m
void WTCOM(uint8 COMM); //写指令函数申明1 R7 b; z ~$ l0 M/ I ^3 t
void WTDATA(); //写第一行数据函数申明0 m0 C" u4 q2 y3 d7 |6 W& G
void WTDATA2(); //写第二行数据函数申明
) w4 g# m; n7 Q6 s% qvoid delayms(uint8 z); //延时$ h# F3 T; u5 u- O3 _& \. U& o
void delayus(); //延时
3 R( a4 \" }6 _1 f0 v2 m8 ^$ ]uint8 table[]="HELLO-EDA365"; //HELLO-EDA365
) ]9 Z4 Z- q4 n1 L l( S/ huint8 table2[]="WHTY_ah"; //WHTY_ah* ~6 ~, v& d. _) I* B
void main()
2 G! n0 K L2 h, R" }{$ N& o6 U# y8 h7 k
uint8 i;. u0 h- h% i0 g3 R/ J* y
/***************P1是数据口 P2是控制口****************************/3 D* k' u! M, J+ j9 H: F
/*********主时钟MCLK用系统默认DCO****************/
4 b2 X. E! t( {: N; r) e
}" T: b3 |2 P) l; h# `2 ]! @ WDTCTL=WDTPW+WDTHOLD; //关门打狗,^_^(关看门狗)
: H2 C4 d3 D0 S P1SEL=0X00; //普通IO3 i$ \- ?0 E9 |4 w/ n: m7 y6 c
P1DIR |= 0XFF; //P1为输出
8 E' E& D0 [! ]' a& [* C$ ] P2DIR |= BIT0+BIT1; //控制口RS+E P20=RS P21=E
. l: {0 w, [: C' \- @: T+ \' A while(1)
; A6 x1 F) o( A3 w& O2 h) O {9 _% V' B9 c5 w# {' o/ S* ^
WTCOM(0X38);/ t0 \% O0 g5 I0 v
delayus(); //1602功能设置
) [$ M: Q# y0 T8 v0 T WTCOM(0X01);
' _% E. v4 ?, [ delayus(); //1602清屏3 w3 x5 X! p+ T- r" V# P2 _& r7 o
WTCOM(0X06);) P" U( ]3 Q! g P) m% F5 f; q
delayus(); //1602光标及AC设置
% p& Z7 K# p5 o2 c) _ WTCOM(0X0f);
3 e3 ^6 ]8 T/ a delayus(); //1602光标开关
" K7 i- o. N7 R9 X6 H) M' h; g WTDATA(); //1602第一行显示
) n) u1 M2 b& w. z delayus();
' W% j8 e- W" p% M- e0 j) O3 a WTDATA2(); //1602第二行显示
" T4 e. h+ T8 Y: a* a$ Y% Q delayus();) n8 R$ H5 D, x! Q" N
- N, K. Q( |7 B, b
+ V6 A+ o) U& ]- J& |//*************************************************************
8 M v4 S. y' w% L! @ for(i=13;i>0;i--) //移动字幕4 q: G0 J) H3 o; X' J N) f( [) j
{, o0 z5 h E+ |0 O) X
WTCOM(0X18);. q) b6 J0 \: N- B
delayms(100);
: j" J" ^) J$ l! ^$ W& B delayms(100);; \. f. j- y/ i2 A+ p: G6 X
} 8 D8 k$ W4 v$ K% ?
9 O+ C9 F% |6 }2 s3 ] }
5 D4 |( B0 H) k$ v" y
8 ^; n" l& O' C( U1 C- N, H {}
1 i8 h6 H: w6 x( s! T% m: Q# L; m. t# p9 W
//延时****************************************************9 {- D) e3 v3 @% C
0 I% K) C" [ X: ^" W
void delayms(uint8 z)
0 u( D" }. S! L{7 O/ \; j" ]2 A" w0 ?
uint16 i,j;
0 I. G; x( ^8 e for(i=z;i>0;i--)
$ Y' b3 K. {; | for(j=500;j>0;j--);' G' A0 o1 F/ {& F- Q6 C2 z+ Y
}6 O3 I! o- G0 @6 F$ C& F! X
) l, p# \( ?4 r X" P9 V" I4 Q//延时************************************************+ r5 n) d) B1 z+ |
0 O4 ^+ d- D0 c# }3 k' C# {9 b
void delayus()( U+ {$ J6 s( I- Q* t
{
0 \5 F. z9 R8 Q7 F uint8 i=50;5 I C3 O" @1 I2 v- K+ \
while(i--);
4 s4 T* c& P9 C+ B4 U} - W; [' ~8 I% W1 _4 O( o
" y3 q/ {! f5 D4 z6 ?8 `' [1 g# X" R/ i2 r
//写指令***************************************************
" d$ K9 {! R( N8 C9 w2 j j6 J% a* }, x; W) i; t- n6 `! m/ [* m, U9 b
void WTCOM(uint8 COMM)
6 r+ D" K5 c# K0 b+ i{
5 _# r$ O& ~: e3 V( t P1OUT &= 0;) B/ Y/ ?+ u. Y: @: s/ Y. y
P2OUT &= 0XFE;
- R9 a# L& A# E( \# X0 X# O" A P2OUT |= BIT1;5 [1 {0 ~2 n0 c9 ]( a6 Y+ q3 ^) I3 u8 |
P1OUT |= COMM;! C) J6 L! k" ^" |3 S- @, Y; X+ ]/ t
delayms(1);& p, R) B+ ^+ p, S0 J, `
P2OUT &= ~BIT1 ;
+ k& S* [+ z# v7 Z+ ~0 L3 `% Y7 ~}2 \$ f1 _! S0 T# x: g6 p9 @2 s
+ g' F6 ]( S+ v! x( l7 `//写第一行数据**********************************************. x) j& m% g% b0 Z% F
7 S2 y$ K- u6 A- }$ Svoid WTDATA() ( O: X8 h; }/ X
{
/ q3 E/ Z1 V/ s uint8 DATA=0;4 u& z( k/ a @* z Q
WTCOM(0X80);
* v/ H+ p, J4 B$ t* [ P2OUT |= BIT0;
+ j, ~ b" c7 z. f3 w- y5 B3 U for(DATA=0;DATA<12;DATA++)
8 a+ y& R5 u& F! n0 ~! [ {
% N) l! x! w! K P1OUT &= 0;% e/ X& e2 p; o: N, X6 J8 K' N& q
delayus();
% m: @/ S" u1 l9 O: Q$ j P2OUT |= BIT1;$ v0 B y0 P3 ~0 _) q
P1OUT |= table[DATA];
, ?9 Y! e, k# s3 O' ? h0 y delayms(100);& N6 r. B7 `$ h: c. ?4 @$ A6 n
P2OUT &= ~BIT1 ;- E$ `+ l' M0 S9 v+ e2 X4 y
} - t0 ]5 }5 y$ u4 L' h; l, t* u
}
+ `. f8 _+ x7 E# r& ]' ~5 q( j% x
//写第二行数据************************************************, v: z0 I4 H( E
9 Q9 q% E$ [* E$ w+ X+ I
void WTDATA2() 2 V6 f7 H- }: g: {8 @3 O
{6 A% i6 u5 N9 Y; V5 }# y
uint8 DATA=0;* D! Y# ]* h% j
WTCOM(0X80+0X40);
- n5 I3 a, Z! N+ j" t1 {5 O P2OUT |= BIT0;/ I# _ w: e+ ?6 s. o
for(DATA=0;DATA<7;DATA++): r4 @% L/ _5 N
{ 6 z, |% c0 i3 u6 }0 L
P1OUT &= 0;7 L8 Q7 R, N! |# ^: ?
delayus();$ q% u5 B/ q$ x2 M {6 F
P2OUT |= BIT1;
: r$ I5 `; c' ]& A P1OUT |= table2[DATA];
- {0 x8 V. J1 A delayms(100);
2 | q6 J4 ]1 I/ D; W1 b( F P2OUT &= ~BIT1 ;
0 U- A$ s- ^& F }
. i' ?% P3 C2 U4 s4 J/ W) ~}
) Z% E% o* j1 R0 h$ x( M- u+ m& @! _1 N0 x' y- _; r
& j( q, U3 ]( v/ E7 G3 m3 _$ R啥玩意都得搞个图{:soso_e112:} 1 ^( U$ y8 D5 I$ ^; d, z
5 C7 c7 ]0 _* G7 M6 k( S; i- {
- e! _: e# R3 q
4 A! N. k, {* y5 H+ b5 R2 P" k
5 X8 Z7 Z9 L$ U: y- l2 x$ O( ?% y7 Q: Y* u2 \7 b: t& s
|
评分
-
查看全部评分
|