|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
{:soso_e113:} 偶出炉的的MSP430单片机LCD1602液晶显示流水字幕“HELLO-EDA365”,要带头多发帖
3 c1 `* R/ ]2 M# ]4 ~. e: p
5 c& \; w/ D6 d. M0 L2 b: a D2 t7 {% f% |- b
#include<msp430g2553.h> //msp430头文件3 w+ h. f G+ n3 N6 H \
typedef unsigned char uint8; //宏定义* U, h. @5 `4 R& ^" ~
typedef unsigned int uint16;
' H. E+ f! o7 ^& O4 x: G$ D- wvoid WTCOM(uint8 COMM); //写指令函数申明
+ u* g% o( [ b- i- u: |5 Lvoid WTDATA(); //写第一行数据函数申明' a8 ~$ Q4 |/ p# m
void WTDATA2(); //写第二行数据函数申明
S& d' e: g: Q! W ]& ]& w% `void delayms(uint8 z); //延时, u! k3 ~) U; i( a0 S, ?5 |
void delayus(); //延时
! `0 i8 t ^3 p, kuint8 table[]="HELLO-EDA365"; //HELLO-EDA365
7 \. ?; A9 {( O) g9 R$ duint8 table2[]="WHTY_ah"; //WHTY_ah
. U" S) l" \. v- `: ^void main()! ~) M8 q& C. i$ d2 A
{
: U- d, ]; W# y uint8 i;5 s0 e9 V5 {" ^! n" m& J
/***************P1是数据口 P2是控制口****************************/1 e: s% D ?5 |1 j* A2 Y
/*********主时钟MCLK用系统默认DCO****************/
' b; J8 j4 z; \6 Y% F 7 G* {) E3 X% ?- j G
WDTCTL=WDTPW+WDTHOLD; //关门打狗,^_^(关看门狗)
. U( u* _- I9 o5 \7 | P1SEL=0X00; //普通IO
( h- h1 I7 I: ]. g$ i P1DIR |= 0XFF; //P1为输出
3 y; \4 v# _/ q G P2DIR |= BIT0+BIT1; //控制口RS+E P20=RS P21=E
# L8 ^6 y! W0 F$ {; v }% r" z while(1)8 I3 ?7 Y9 W5 P
{
7 I0 r0 J$ L4 F WTCOM(0X38);. u! h" O4 W g
delayus(); //1602功能设置1 f/ |. I4 o c
WTCOM(0X01);
4 ^1 z* I' @0 x- l delayus(); //1602清屏
* f* q% C$ i8 [' a WTCOM(0X06);
& h4 g2 X5 I, k! {. b delayus(); //1602光标及AC设置
# a6 l1 Q5 C+ D$ u9 y7 c! R WTCOM(0X0f);
2 }* Q3 Q: A+ p1 ` delayus(); //1602光标开关5 |% u, [5 [; w }, v
WTDATA(); //1602第一行显示
7 e! f. S, @( h s. |' o- E. ^ delayus();
/ q# h2 ~$ P+ j6 f/ Z( W( {; D WTDATA2(); //1602第二行显示
: |' m* B4 B6 F* u delayus();
# L0 Q& X8 E/ j: U& G 1 S' a7 Z1 ]/ |4 s$ ?3 N
) ]1 o& v- [2 E+ k8 ^" N
//************************************************************* 8 z+ i' {2 J4 e' z+ Y
for(i=13;i>0;i--) //移动字幕
8 P$ f$ [2 z1 E" P% H( V {
2 B; z, J! U# I" { WTCOM(0X18);
* H+ F r- P0 N4 R' n% r* P. X delayms(100);+ C; W- d z7 a$ N" @
delayms(100);$ P- X/ m0 E R" D$ Q+ c& u* ?
}
/ z7 a/ Y. k! `; g9 F9 O
8 }4 }+ J" k2 Y, q }
& j8 J$ f+ Q8 V. T: j( E 9 I2 S0 Y" L. \
}
/ y, K u. G( a/ B& i5 p& D& j
2 z, D% O& D( r! v" ~' r# x" _//延时****************************************************- x* z; j5 }8 k. \4 Q2 ^ V0 d" R
: Q6 T/ x+ b% n7 E8 [ O% Q
void delayms(uint8 z)
* C, g' a4 u( R& J& X8 c( w4 R{
7 S# R) [1 ]) `# D uint16 i,j;' I' W3 A/ A- N6 Z
for(i=z;i>0;i--)" Z+ q) Z y6 e
for(j=500;j>0;j--);
2 w6 s, p2 T$ n7 `# Z$ s( {}
; {& t% K- l/ B! \4 u5 ]
9 w1 K, o; \8 E) m+ i1 B//延时************************************************
9 K5 e- L2 q( ?/ r- @
% x# m+ u+ `& k2 ?void delayus()
8 E$ }/ H$ ]4 l) w6 j3 N2 B, X R{
+ a8 F( [- z( ?" X& M. o3 l A; X uint8 i=50;5 W% H+ U* _( w& @0 W4 z& e
while(i--);1 [2 x$ G8 p; i
}
: w7 G. Q# k3 Z8 [, S5 U/ |- o5 t" r6 j. B2 h
% B7 L- o8 q8 {2 A$ s/ G# }//写指令***************************************************1 L% t3 T `9 J" ]2 J
8 [4 c1 i1 s: f, Mvoid WTCOM(uint8 COMM) 1 Q2 u- w; T& a. }- c* e
{ 3 m# W: r- C3 o+ n( a( R9 L9 u
P1OUT &= 0;
5 p3 g3 E# ^ N P2OUT &= 0XFE;2 e0 D4 k; n; c# |0 ~4 a; w
P2OUT |= BIT1;
+ x+ M% w' o( i8 f- c9 @, M; Q P1OUT |= COMM;
* L3 o7 [& D! r' ^* z& l( ]9 C, W+ U delayms(1);; J8 V3 y/ L4 Z+ ]7 ?
P2OUT &= ~BIT1 ;, s* s/ _. d" c0 Z, _
}
; n, [1 s3 n* D; F
1 X s" t& d) _//写第一行数据**********************************************, F6 O" g8 ]( a9 a
0 c4 ]$ x/ Y# Q* k2 n: R4 Q1 B9 C$ g8 P
void WTDATA()
' G8 Z/ a0 h& n& y4 d/ P$ N3 F{
1 Y1 f b6 ^( \4 R2 @ uint8 DATA=0;$ f: k7 o/ M1 E- d0 F
WTCOM(0X80);) E- D) P, V, v% S! l( j9 g
P2OUT |= BIT0;
4 G7 v# b _2 f, b for(DATA=0;DATA<12;DATA++)8 i2 E; k3 M3 f% w% r2 A$ u, }) \
{ . }/ l& i+ Y+ I& P5 C
P1OUT &= 0;
7 s: t% s8 _( ^" t! ~ delayus();/ c5 i8 N- d5 t, x1 w& \; S& }
P2OUT |= BIT1;/ F2 C; b! `$ e/ m5 @
P1OUT |= table[DATA];4 p# B3 y4 S9 p2 `' I
delayms(100);( q3 G1 W$ u2 G+ ]9 r
P2OUT &= ~BIT1 ;' R' u" ~$ G3 D0 n1 r! r1 D
} 1 R1 l" `6 ^ O( P* }6 Y
}& @4 U, [5 q1 M1 L1 l5 K G
# z& @7 l! i% R' y+ n//写第二行数据************************************************7 m+ E( T, D/ i: m
1 P8 Z0 f0 B9 _+ R; c& m* k/ U& \; V6 j
void WTDATA2()
0 y( y) J8 s# k{; F/ W. N8 s+ d1 ?& G7 ~
uint8 DATA=0;
; h3 `+ G+ X$ m WTCOM(0X80+0X40);
" ^5 M( R6 Z& P9 @/ N/ O' } P2OUT |= BIT0;- ]3 W1 ]" m" n {/ b
for(DATA=0;DATA<7;DATA++)& G/ o3 `- T3 [8 ~2 C% l9 |+ S
{ 6 S/ O4 i7 b% d/ L. ^9 l% `
P1OUT &= 0;
( n6 g* r/ {5 L* V2 P$ _9 j delayus();; I& G' g$ |/ u# M* J5 O* f
P2OUT |= BIT1;& l8 F: v' j N0 D* {: `' |8 Y* E
P1OUT |= table2[DATA];
, ]$ `& X) L& c6 e delayms(100);
% H4 z h! w+ G' \5 k4 w4 v! r P2OUT &= ~BIT1 ;7 V: I! V6 C" J& r# }- c
}
3 B; O6 X- A+ v- @" l) U9 k4 m* @}
2 Y, Z1 x6 z& j# l# I( [( ?$ [+ {$ d1 L) u( U. m% @4 X0 H6 W
. S( U% v: `! r
啥玩意都得搞个图{:soso_e112:}
* b7 x" g2 g# A# _
$ e, o. s& t+ E8 Q2 V4 O8 y) c7 @# V- A' O- W2 k
1 g# _8 \% e. R& n
* Y. r6 c4 F! f; n
B8 s* D: z+ C6 P; ?# |$ m |
评分
-
查看全部评分
|