|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
{:soso_e113:} 偶出炉的的MSP430单片机LCD1602液晶显示流水字幕“HELLO-EDA365”,要带头多发帖- y7 j' O8 q2 l* T0 n$ J
7 _$ Z& d: K c( O
) q6 M6 D z, @+ e% P/ W3 ]#include<msp430g2553.h> //msp430头文件
7 S# ?+ ~1 e6 P4 rtypedef unsigned char uint8; //宏定义* {: v& I/ n& p4 ~7 A/ Q0 ?
typedef unsigned int uint16;
/ Q) U( r& q% G0 I& @# Zvoid WTCOM(uint8 COMM); //写指令函数申明, v' @. P" Z u& w7 w
void WTDATA(); //写第一行数据函数申明- D, I7 a' S9 Q0 w' z7 t& y
void WTDATA2(); //写第二行数据函数申明
Z0 ?( ]; p5 z J+ l8 l, rvoid delayms(uint8 z); //延时3 P. z$ {2 h+ D3 [) e1 X" k3 ~6 s
void delayus(); //延时* u! K' X Z7 k9 z# w# e, g1 Z
uint8 table[]="HELLO-EDA365"; //HELLO-EDA365
8 U0 u9 `7 ]9 Y5 \0 Muint8 table2[]="WHTY_ah"; //WHTY_ah [1 T0 H$ I( T$ T2 l* E* T
void main()5 B& g, g* I& i. f
{+ l" D$ x3 w; G) s' v4 p
uint8 i;
* Q( ]- M( ^8 v8 |. w. I /***************P1是数据口 P2是控制口****************************/1 j/ n8 U3 a. Z# ?9 m2 I$ L% t
/*********主时钟MCLK用系统默认DCO****************// p9 @& ]; T! Z, G8 k
3 F: [. P; F; |2 [ WDTCTL=WDTPW+WDTHOLD; //关门打狗,^_^(关看门狗)0 e$ [6 e0 V7 V9 L: }6 e! Q
P1SEL=0X00; //普通IO1 x: r- q! j$ X- b9 }7 _7 u
P1DIR |= 0XFF; //P1为输出) k4 H8 \! Y* \: t1 \
P2DIR |= BIT0+BIT1; //控制口RS+E P20=RS P21=E6 z/ {4 q6 P, n% |: L5 j
while(1)
- c+ [0 [2 _- N$ O2 P$ J {! Q3 I @& t2 z- K& g
WTCOM(0X38);# D& B3 O) d& g* x# l- G
delayus(); //1602功能设置
0 L/ v! g- |8 a: l+ M Q WTCOM(0X01);) \* }2 {5 u1 w; H) w/ B' I# w" q
delayus(); //1602清屏0 x" n( T/ |- m+ d& z- v x9 }
WTCOM(0X06);
5 |% B5 q" E, I1 @0 U delayus(); //1602光标及AC设置
7 M( i7 H5 Z) D. o! v3 _/ i" R: L WTCOM(0X0f);
8 M1 r* g- q: ]9 [' [% V delayus(); //1602光标开关! O8 J9 N* t6 {: s: U
WTDATA(); //1602第一行显示7 v5 U) K2 `1 I0 q. P
delayus();
5 ?! f+ i, F1 O WTDATA2(); //1602第二行显示
/ U! [6 l& _+ z' `- C" h% Q6 [; t delayus();
$ d# f/ j" \) L $ [2 ]- y' K+ q2 c8 }: `, m
' O9 L2 \- I2 R: ?2 v- X2 ]) T//************************************************************* 5 L. H' M3 o' a f
for(i=13;i>0;i--) //移动字幕2 \8 {5 K! c. g1 X: v/ e
{6 `' t% i; t' h( d
WTCOM(0X18);3 r3 \( e% |. A& C! f
delayms(100);
, m: W' |7 Z# O& d2 O' T delayms(100);
8 D5 O7 y8 e9 [* A- o, F }
% K8 O/ u: R9 D! `! F, o8 f ( u, U9 Q& v# T: E
}4 c9 J: Q4 t% Q+ V4 B+ h
/ k n* y& T+ d9 @}
( k/ A; E( s; V* n4 Y7 @1 t& D9 C
//延时****************************************************$ a5 G8 a5 K, ~* I( i7 ~1 A
/ I( b+ h6 ~4 ^- C( P+ \void delayms(uint8 z)
" ?1 b" H0 N3 p) ]2 h. w{
, [2 V+ R' [0 x& A# v& p) I uint16 i,j;
2 W) N/ ?) Z" E5 ?6 B% R( d for(i=z;i>0;i--)
, ?$ y' W% ^( z$ [9 A0 t+ J, ` for(j=500;j>0;j--);
- }1 p% \0 q. w8 t" D0 ?% A2 b4 }}% x% [1 P4 Q; L9 O/ \* ]
9 {( ~! j- f; n' Z. Q; ], L1 D2 U
//延时************************************************ T7 w& _" y( R
! w" z( G1 y# Y- M# O& Q$ fvoid delayus()
* C6 r& \( x( A" c9 y" |9 D{
* G5 n. f P- B! Y- x k! x uint8 i=50;
3 R# h* X/ N, ^7 U4 c- W1 k Q while(i--);
3 h3 w' Z7 Q8 i1 Z, N}
5 A; [( c3 r7 n, r) q$ Y, x2 ?7 M1 |
# ?2 O% i" r1 P& _! b//写指令***************************************************
/ `2 e4 M) J/ V4 b# m" q. [ G9 h7 y- x1 K* }5 T/ p) s$ `
void WTCOM(uint8 COMM)
; i- W- N% X" `8 o& i/ |, C: a4 P2 h$ c{ ; {- k5 V( N+ U" k1 d
P1OUT &= 0;
$ u/ k s. G% Q* [+ l A* b9 x P2OUT &= 0XFE;
1 t3 ]* z; J4 h, t P2OUT |= BIT1;; N/ a7 m" f! Y. L2 X
P1OUT |= COMM;
) l1 B' S, N. s9 e4 B6 ^ delayms(1);
1 O* ^ M/ k! s- a P2OUT &= ~BIT1 ;/ h% ~6 V& ~* G, B
}
* X* P& `, y3 d" O4 k4 }3 O* H o! P
//写第一行数据**********************************************+ s: H- E- t4 Z( i; O" }1 Y
! ]; v, w9 s& N8 e7 {/ b+ o& qvoid WTDATA()
8 Y. ]( W; S$ ~/ x/ P& I{4 J: ^, Z K9 [/ j }" k
uint8 DATA=0;
& P6 Z/ Q: d3 u( b. G WTCOM(0X80);
7 H$ Z P% c6 N. V. I8 X P2OUT |= BIT0;* m2 I& E: I! a& ^: t! P6 G2 h9 h% n
for(DATA=0;DATA<12;DATA++)9 H" \1 M: \+ H7 S
{ 2 r0 l$ I; ~, {
P1OUT &= 0; U/ p) g& y2 Q! S& X
delayus();
5 E1 l) ~4 Z( O) s' D8 w P2OUT |= BIT1;
6 i0 @( w" I! d/ f P1OUT |= table[DATA];
, u7 ~& ~! {: F1 s+ c s; t( ? delayms(100);
5 \4 x& W% @% {: ?7 e4 d P2OUT &= ~BIT1 ;
- H* U' }; v! O/ p }
+ A" i" w3 J! `4 `. O/ C}
" O) M; x2 z' a2 X6 h4 H0 ]) j) U4 p' }' Z
//写第二行数据************************************************. ]/ |9 Z9 m* c6 X/ e& E
: W" w1 u" ]1 f, g4 P
void WTDATA2() g- ~5 Z' ]( `: T# s
{
) H; a; S( E4 a) `7 r uint8 DATA=0;
/ V4 |/ I" @2 \/ v5 c* l; w4 S1 ` WTCOM(0X80+0X40);
1 \0 B' O5 t% v5 A$ ~ P2OUT |= BIT0;
1 U7 U0 a2 j) e" G9 G for(DATA=0;DATA<7;DATA++), a) x! Y9 V9 G/ j# o
{ . ~6 R* P& G6 i- K
P1OUT &= 0;
4 h! m* C n5 a2 H1 } delayus();+ X+ T. f, ?- a
P2OUT |= BIT1;2 d$ A& }9 R$ ?3 r8 f+ r# v: n" y
P1OUT |= table2[DATA];/ T; [. z" @0 G* c3 Y3 O
delayms(100);
6 E1 {( u4 E+ | P2OUT &= ~BIT1 ;! ^% R& C9 B5 [, M3 x( s
}
+ I/ U) @2 J% s! g}
- C; o# x2 S$ _, }
% q3 K# i n& _6 e' C
, D8 g8 Z# o; c2 f5 f啥玩意都得搞个图{:soso_e112:}
% W( ]7 o+ e% Y- r6 t% k) T- h5 D- L+ l0 |* Z1 L
2 s+ x7 D+ L' C1 x
: o( X: S1 T7 c6 S) o0 T0 N- l$ Q
+ o3 u5 Y# ?$ p' L. M2 K/ T7 g1 m3 ~ M R8 {
|
评分
-
查看全部评分
|