|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
{:soso_e113:} 偶出炉的的MSP430单片机LCD1602液晶显示流水字幕“HELLO-EDA365”,要带头多发帖
6 ]0 c' o3 x, l* O0 s h9 R9 S8 ~0 ^4 o( B
H2 }) G7 @+ {6 e3 S3 X#include<msp430g2553.h> //msp430头文件
0 ]/ p7 S0 ^ m3 c2 P2 Ctypedef unsigned char uint8; //宏定义
& `* I1 w, |; g' v. ttypedef unsigned int uint16;* L7 L, y% i& B* Q+ B
void WTCOM(uint8 COMM); //写指令函数申明
; l: \1 O; h% [" \1 I3 uvoid WTDATA(); //写第一行数据函数申明
. U, [1 b8 e: [1 b2 F; ?# V6 Avoid WTDATA2(); //写第二行数据函数申明$ G/ x, u4 X3 f4 Q7 B
void delayms(uint8 z); //延时
' u# Z* \4 @' ?* h' r( ^. h' p9 G& evoid delayus(); //延时 o0 T" ~5 e T# `4 l( @8 ]- C
uint8 table[]="HELLO-EDA365"; //HELLO-EDA365, D& R- p: i' o% g& ^
uint8 table2[]="WHTY_ah"; //WHTY_ah
8 O% J- f* z! [/ A& u3 C0 Mvoid main()2 [% L( s5 i% F" a, A9 |
{
: h3 e( D8 }9 I' b" o uint8 i;
( v8 G6 D3 x. Q /***************P1是数据口 P2是控制口****************************/
4 _- H1 \- L* z9 a /*********主时钟MCLK用系统默认DCO****************/
! T% b H* H7 M7 v' Y 1 ]/ d {4 e# j4 s
WDTCTL=WDTPW+WDTHOLD; //关门打狗,^_^(关看门狗)
1 h9 d1 j6 O( A: k4 t2 G q6 q P1SEL=0X00; //普通IO A8 h1 ?- c1 e! T
P1DIR |= 0XFF; //P1为输出
4 y, e4 Z+ H7 O- o P2DIR |= BIT0+BIT1; //控制口RS+E P20=RS P21=E9 c& L5 V0 F* p; ~
while(1). T: F5 r& z$ z' h' B5 A
{) I# Q+ O" Z$ F& M- @' @
WTCOM(0X38);
( R( [# E7 l! P$ j# C delayus(); //1602功能设置
$ U' T& K6 m9 w4 g+ V WTCOM(0X01);/ C) L- {( _! J. F0 V
delayus(); //1602清屏' z4 c5 _% `$ \- t3 n3 |
WTCOM(0X06);
4 n0 u! B0 {4 |' j/ @; }/ G+ o delayus(); //1602光标及AC设置- A! E4 Z& s: @3 }* F {
WTCOM(0X0f);) q( U5 ^$ C/ m* v( e2 A+ }% ]2 c
delayus(); //1602光标开关
8 d' E: G* A3 M- n6 \! b WTDATA(); //1602第一行显示6 }. c$ \4 s0 C7 p8 t: E) C |
delayus();/ j+ f" F! I3 g, v$ Y
WTDATA2(); //1602第二行显示. k" W+ [; P6 x9 N* j2 {
delayus();
% V4 J. Y+ t( S: g( T , B2 B( q$ u5 m
9 `5 D7 C8 m5 n3 B1 C, M9 k T% D. ^& P. `
//************************************************************* " u2 \# \ ^0 a. H! ]- U
for(i=13;i>0;i--) //移动字幕* @$ W) g+ h; T* ~
{( j3 W4 b6 x" Z# q" A7 ~
WTCOM(0X18);
4 j7 `+ Q# B) I8 ^& z& m4 f8 G delayms(100);5 h* X8 G( r! Y
delayms(100);
# G% r9 h; Y L7 z, Y1 q; @ }
+ H* r4 @% p4 o, e! l0 z- k
; X. D, T, ^& T: v }
, T$ R# ~. t0 F
% p( O8 z8 v( ]. h7 b8 q# G u! X}
* ~# z: K. \# G/ w# G- h4 u4 Z
) C/ D1 `1 \! D$ w, m& S//延时****************************************************( n4 i/ O$ a4 I: t
! z7 `$ I0 }- N. n% H* U: f
void delayms(uint8 z)
$ X5 f% i/ \% U, } ?/ D0 W3 X{
/ \! ?4 ]5 V2 l: z0 |# u2 R* C uint16 i,j;
* R. {& N2 [6 ?! v( [6 h for(i=z;i>0;i--), [" q* g. j$ A- C) s
for(j=500;j>0;j--);
3 k% A9 i* m/ G9 M9 l}
6 F" @6 ], y. q. H0 u3 D, m% ~2 w( o W8 n5 T, m& J7 x8 Z; m
//延时************************************************
5 O& _6 b r' E& R. }9 q& X, [3 n6 t# F: p
void delayus(), B7 s ^2 m7 N" j
{& c3 V' x# T8 n
uint8 i=50;
9 t: [% Z/ }$ W+ V while(i--);- n& F) R/ {0 c w; k+ x
}
4 ^6 m8 D6 h3 f4 D
! z1 T# z. y. i: s, ^% ^4 P
1 I9 m, }6 p: ]& L% Q8 ]' o//写指令***************************************************
- Q1 P6 V" h( z5 U# G$ _' j4 T) z7 w0 O
void WTCOM(uint8 COMM) ' w2 n: p) H% x$ I- M4 ]
{
2 n/ u j* L( i3 g P1OUT &= 0;
# [) E& {! t: w0 b/ |' |, q P2OUT &= 0XFE;! U( G( G0 L i) V0 s- w
P2OUT |= BIT1;# E/ D9 W7 w! e+ f9 d4 c
P1OUT |= COMM;$ l, z, x" z* U
delayms(1);
" V H* n! [" x P2OUT &= ~BIT1 ;
( l7 s/ G% E/ k/ s1 }' t+ h* C7 g7 e}
. e9 s2 P" F4 K& `2 l
' ]& W+ U9 ~( x" u) F//写第一行数据**********************************************. Z+ i! b d" n. b6 n8 ]
2 z4 [4 _8 T) uvoid WTDATA()
( s, ~3 F9 n# Z3 \0 B( Y{1 R% f+ |. v/ {8 ?- ~1 O% Q
uint8 DATA=0;
" c# u* z& _) S WTCOM(0X80);
% ~# i( _$ p7 A( w: S* F P2OUT |= BIT0;" d3 }1 L( \3 @, ?4 x
for(DATA=0;DATA<12;DATA++)
* `! b7 Q5 c# {4 a% i% r5 }# C: A { . t) Y7 ]9 c) {3 B- @, o3 f2 @
P1OUT &= 0;
2 A( z: t( T u3 q2 k' Y- a( i delayus();
1 L2 T) H8 y& T P2OUT |= BIT1;
; f* W F b. @0 f7 X* p; \! l P1OUT |= table[DATA];
F2 |% |! R7 |# A5 M delayms(100);
! q: ^8 i l% E" E P2OUT &= ~BIT1 ;: G; ^0 A) l) z! V( k2 J: M, S
}
" t. w# r7 n$ U& L- E9 f4 l3 y. w}
N" d3 Q; R* c) p) k
3 E3 k; C% f4 u6 Q5 r2 d: x3 o//写第二行数据************************************************
$ O" C! U8 Y' a6 v6 {$ U |2 Z& Y
! [3 f7 F" F ~# Pvoid WTDATA2() + ]4 c+ x0 z0 B. S& y' p$ Z
{
( m' O7 F& m( r0 r ~9 j( I uint8 DATA=0;% y0 G1 A/ F+ B8 `4 ?- Q
WTCOM(0X80+0X40);
- [' K; q) D7 K P2OUT |= BIT0;
& M: p. G' ^' v, U for(DATA=0;DATA<7;DATA++)
9 v6 F" E0 A$ r; u2 E' {8 I& ` {
+ L+ i0 o- K) ]1 E! I P1OUT &= 0;8 a4 l8 o, \: B1 n" A
delayus();0 I7 r# S+ ?6 _# g9 H
P2OUT |= BIT1;
, _1 D6 t6 ~7 A: H5 _& T P1OUT |= table2[DATA];# \9 p+ ~" _/ ~; r1 I) S, x
delayms(100);% Y3 m1 H2 B9 ]0 v7 h, h
P2OUT &= ~BIT1 ;
; D4 K* t& q* t5 w2 D: u }
( b3 g2 V# A& G" Z- ^: |}
9 e% y6 Y4 e+ p7 R
+ Q+ H' p0 v7 f
& x: q0 K {7 S. N7 e; e, T啥玩意都得搞个图{:soso_e112:} , G! t/ U4 D# G2 q7 U9 J4 e7 u
: Q: Q5 {; a- S9 c; C
, C' b) l. u2 ^* u8 d4 L
# ]; O! T1 W- D
0 U$ g2 {/ C6 X" Q, s' J' h3 {$ w0 }: l, O/ C2 L) X( M8 m
|
评分
-
查看全部评分
|