|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
{:soso_e113:} 偶出炉的的MSP430单片机LCD1602液晶显示流水字幕“HELLO-EDA365”,要带头多发帖8 I3 @5 s. R: |5 w! ^: t
7 y% o3 [4 O& Y- D! R, O8 I7 V2 C# D5 b) X- m- H" n
#include<msp430g2553.h> //msp430头文件: z% i" u# }: ^4 z2 {
typedef unsigned char uint8; //宏定义7 l/ g% X, n& Q
typedef unsigned int uint16;7 z6 T8 M4 W3 v
void WTCOM(uint8 COMM); //写指令函数申明
, q6 @7 F, i1 t Q9 kvoid WTDATA(); //写第一行数据函数申明
" U) R; y; s3 g: n' z mvoid WTDATA2(); //写第二行数据函数申明. R$ b. F1 K% s- o1 w& o
void delayms(uint8 z); //延时
5 P: p7 ~2 ?$ Q" J8 G8 Yvoid delayus(); //延时
* d0 Q: G: q! s+ q W" n( ~. xuint8 table[]="HELLO-EDA365"; //HELLO-EDA3656 z N, R) \2 h" P* |6 k8 \2 Q
uint8 table2[]="WHTY_ah"; //WHTY_ah0 _7 K4 O6 d' z1 g
void main()1 Y; X( k. i! t8 L2 t# ?
{1 M8 Z+ E7 J( a3 D! i; Q0 U# \9 y/ f4 {
uint8 i;5 o8 c' r' a1 i- d& v
/***************P1是数据口 P2是控制口****************************/( h! {8 h$ D' V& s6 N3 y) U; l" l
/*********主时钟MCLK用系统默认DCO****************/
2 v6 Z& Q% k7 P b. w& [5 R! e( q3 W/ V
WDTCTL=WDTPW+WDTHOLD; //关门打狗,^_^(关看门狗); g. |$ V' ~* s+ Q
P1SEL=0X00; //普通IO6 m5 S& s' R' j; |) o& N
P1DIR |= 0XFF; //P1为输出
3 f' {6 b) A6 |' q* P- \" b P2DIR |= BIT0+BIT1; //控制口RS+E P20=RS P21=E
1 M2 @. `( [) J while(1)
8 k' x9 R4 m7 L3 B6 E# q {
$ T# x. R. o; ~3 ^. R/ r1 N6 F2 k WTCOM(0X38);
6 d, C7 t& L) Q8 M& y: o7 s" ` delayus(); //1602功能设置
3 S! {" a! j( [# n WTCOM(0X01);# ~! }# [% }" P/ H% `/ v8 E" K) P
delayus(); //1602清屏6 [/ G x5 Y# ^% B [' D8 R- y5 m
WTCOM(0X06);& y( f4 V, G& L4 p! q
delayus(); //1602光标及AC设置
$ u! S) ]. V# L& ~- N# ]8 [, o0 N9 u WTCOM(0X0f);
( I/ B3 m, z$ y: z" N- U8 t delayus(); //1602光标开关
9 B! H4 ]$ B9 R. R# I. C# ] WTDATA(); //1602第一行显示0 }: v: j! r$ J8 M: M2 [
delayus();
% \# ]' L7 [9 `) K. m- U( q- F/ K WTDATA2(); //1602第二行显示
[6 |5 r8 d5 P delayus();* }3 ?7 p0 _1 _* O4 r
$ h& L+ A# F7 t4 r1 w
6 B7 e, ?& J* C//*************************************************************
3 v& T7 z2 z! z. T! h0 G for(i=13;i>0;i--) //移动字幕- k& V7 ]& z$ Y! l
{6 S& z" c' Q3 T4 _' j
WTCOM(0X18);% r3 c, F1 l; T# X4 P0 [
delayms(100);
. y" T6 n4 i+ s E0 o delayms(100); Y5 z/ r6 H6 V* `
} ! _/ E9 a9 p( h- x( @0 H; b
! S w8 A' `0 w! \# i2 A }
/ K. m8 w6 @1 A% ?8 w& W* D
# B8 D1 F _& A5 y5 P2 q* r% s}
! V! m5 `1 \. k) H7 X" F/ J4 l7 F2 X/ k8 x# v
//延时****************************************************
4 y+ h0 _" g/ @) k6 K' g8 A Z% G! p6 N, U& B
void delayms(uint8 z)
: a/ n2 |& l$ V4 o4 ]; L{
% u9 p7 R3 c- W; } uint16 i,j;" W4 n- W; t. x$ @9 g
for(i=z;i>0;i--)# \- U5 S q# D4 o; D" |
for(j=500;j>0;j--);
1 e$ s8 Y+ C% [9 Y; c: A}
, x6 U0 V5 w# R
- [+ M( l9 Z0 B W7 \//延时************************************************
h$ `% n, Y8 N& U# c7 R% ?, r8 j% S: T; C) O m3 }
void delayus()- K6 V4 z- L) ~
{, d9 j" ?- h1 |# J# p- z
uint8 i=50;( b" @* p: U8 \9 D6 N+ Z: ?1 }* ^: p
while(i--);: ~; l4 Y$ S5 r& v- m0 r) i9 g
}
7 c4 p) M- Z; [. N* k. Q$ e v
- D2 N9 s" B/ q- }# L5 e7 C6 c- y. l$ F
//写指令***************************************************+ t3 U. b( V3 A( v# o% N
* n5 \3 O- m7 y' t5 f% o
void WTCOM(uint8 COMM)
$ g9 u$ N4 Q+ a{ , N* U, W! a' Z: f. ^
P1OUT &= 0;6 b% H/ H7 Q1 I" f: {- q
P2OUT &= 0XFE;
+ @8 K; m" D& O( Q P2OUT |= BIT1;
: h. i o0 ]. z/ R. h P1OUT |= COMM;
5 G4 s5 Q; R6 [) c delayms(1);5 D5 C7 ^9 z$ {5 _* k3 s0 ~% e, M% {, f
P2OUT &= ~BIT1 ;9 _( @ G( ~3 W; u9 p
}
: b+ @9 W {8 `' F' i1 t: L' J! z( n |8 }- R! T1 ]2 f
//写第一行数据**********************************************
- P/ @. g0 H/ D! V; L, T: M- m2 p! d& l% i
void WTDATA() 6 I# {: m# f5 q1 {3 {3 U
{
: H% \! B; s @+ W uint8 DATA=0;
: q9 H K9 F2 f! L# z WTCOM(0X80);
1 _; t. @6 S6 b# f& L& \1 S! [; v P2OUT |= BIT0;
5 L4 k% f! {# `5 g( M! e( ? for(DATA=0;DATA<12;DATA++)" f7 t# j* J7 \0 g
{
, [9 f J7 M% X" Q" v" S- p; d P1OUT &= 0;
/ l. M( G: Y4 d' U) I1 k delayus();
0 e6 n3 |. x% m$ a8 D) K: s3 E P2OUT |= BIT1;
, Y! e6 o) x. o5 C2 g/ |9 s3 f- t9 T P1OUT |= table[DATA];
4 n1 C, t- D) F4 U1 o- D( }) ^% O delayms(100);% K1 C' z& q" x2 C
P2OUT &= ~BIT1 ;. P$ @; N. e0 t/ F: D! m
}
5 B: }& {& }9 ]% ~% V" Q}
. O2 q" t( r B- J5 U& r* E* b! H) k# Z5 U
//写第二行数据************************************************" v! R4 I- c; B
9 ]8 V" S6 t' b& d# S! \
void WTDATA2()
/ B+ ~0 @7 |. {* G{ \+ \7 D( |0 X7 o4 R+ |
uint8 DATA=0;' k3 `3 Q8 x. a2 \; T
WTCOM(0X80+0X40);/ |6 n# X: q3 { D, u$ M
P2OUT |= BIT0;
" K/ j- h( L; a w& g( O" T8 R for(DATA=0;DATA<7;DATA++)0 c8 d( I. Q# v4 j
{
7 u1 y0 q I- D4 g( d0 M% \' p P1OUT &= 0;
- y ^1 j6 l1 [0 x delayus();
# Q( u& r/ ]* |" f- R+ h/ n P2OUT |= BIT1;: u( C2 a4 |8 ~' q# U5 Q
P1OUT |= table2[DATA];7 g0 D8 g \2 {; y- M
delayms(100);' ^3 Y2 H$ p4 O& s
P2OUT &= ~BIT1 ;9 d4 {7 S# P) S1 k" b3 m
} 1 {2 I" W& S7 l* E. b
}
; E6 ~, X6 _* N8 o4 Q/ F. t/ z" O a2 I7 p
4 h' L. u: P4 K6 `/ c1 f2 g: {# O
啥玩意都得搞个图{:soso_e112:}
' H0 `3 @5 _; d3 F! D
7 U+ {4 H6 J* `' z
4 D: a* ~& [5 W9 l3 o# l- \
" e6 ?8 {; G/ A
7 s9 b0 y- D7 j; Z
3 v) I5 k- D( q5 ^ |
评分
-
查看全部评分
|