|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
{:soso_e113:} 偶出炉的的MSP430单片机LCD1602液晶显示流水字幕“HELLO-EDA365”,要带头多发帖
5 ]2 y5 |, z, i+ ?6 Y/ }5 W% I
4 [3 j$ i; w* b' `3 z( [" n. G) _1 `( c/ b
#include<msp430g2553.h> //msp430头文件
* Y4 N. k+ Q5 { Wtypedef unsigned char uint8; //宏定义6 g& r% v/ K, D& @2 @
typedef unsigned int uint16;+ w& Y \! ` H- p
void WTCOM(uint8 COMM); //写指令函数申明1 k1 u, h* z8 e x$ q/ H
void WTDATA(); //写第一行数据函数申明' W6 y, Z: D/ o/ r, q
void WTDATA2(); //写第二行数据函数申明
1 r; l' `+ A3 U7 W Jvoid delayms(uint8 z); //延时
0 a$ [8 T2 w- Pvoid delayus(); //延时7 ^; ~1 a( t. k5 h% ?7 `/ ~5 w
uint8 table[]="HELLO-EDA365"; //HELLO-EDA365# X; d, i m4 j2 t- r; i! f$ d, `. A
uint8 table2[]="WHTY_ah"; //WHTY_ah* e( ]) l m7 o, B+ c
void main()
# A; l8 ~% i% L, M& I{
/ f5 P B8 m G* ^ uint8 i;' [5 ~5 q+ |' w7 K& ?
/***************P1是数据口 P2是控制口****************************/
& M3 G2 n6 g2 R' G /*********主时钟MCLK用系统默认DCO****************/; P9 w6 S& {* v8 G
8 Q" p( Q4 p4 V c1 Z/ ]3 T
WDTCTL=WDTPW+WDTHOLD; //关门打狗,^_^(关看门狗)
# q$ D/ ^( X: \" B) F P1SEL=0X00; //普通IO
9 ]! A3 r* H$ y( T+ T& t P1DIR |= 0XFF; //P1为输出6 ^5 |. A3 {# B, o. {( n+ n: O
P2DIR |= BIT0+BIT1; //控制口RS+E P20=RS P21=E
1 n' R; ^" O1 t1 a while(1)
9 M; m4 H, V1 `8 i+ D1 u {
$ X2 }$ O7 P0 C& f1 O WTCOM(0X38);
; R/ W; ~ s4 e+ ^# B) o X delayus(); //1602功能设置+ |) g( U$ h" V; K: O7 T
WTCOM(0X01);
, f1 \0 C! ?4 Q* c' s2 ?7 Y delayus(); //1602清屏
, _! @0 }; E- M( l h$ }- ]$ ?2 N4 Q WTCOM(0X06);( c+ ~6 G, F* ^/ r5 l* ^
delayus(); //1602光标及AC设置1 G9 w: U$ n4 A* Z5 a# G
WTCOM(0X0f);" U- Q! ~* X& k# u5 o w
delayus(); //1602光标开关
2 M0 M- R, S- k1 a* k$ u8 r; O WTDATA(); //1602第一行显示
: ]; ]9 B A- j F/ ] delayus();9 P: v+ H! `( ]5 r, R% l. V
WTDATA2(); //1602第二行显示
8 G7 I% I# l# G- Z! {, h delayus();; g9 F% ~0 n( a8 G( H0 C) {
* G8 q5 j% Q2 y; ` % k% Q" E5 f. Z2 @& B6 O- s) S
//*************************************************************
% k j$ G0 d" D( T$ [: {3 d0 N' f1 B for(i=13;i>0;i--) //移动字幕0 ]8 j/ e/ W2 @4 ?5 d
{
# X& g" Q8 N) |, U WTCOM(0X18);6 F+ u x4 k+ b
delayms(100);
& c9 C& b: s+ r! U( \ delayms(100);
% E5 a9 e9 C" \( u* g1 p1 k }
1 ]+ P, ?0 C5 p6 e 2 N/ C4 E% D; |" v) A1 G6 d( k& X
}
2 S) g5 A }/ Q N$ H- ?
! A4 Z1 }! `+ M2 @$ O" g& N4 Q: B}
+ D7 `! C! R/ U. \. Q0 R' W
, b0 V+ J) N, v# a# ~//延时****************************************************
~% n6 J8 {& m( k! S+ i3 u4 a1 Y- Y
9 X g: f! O4 C' h& gvoid delayms(uint8 z)
9 y; w6 s, p% ~, T. T{7 ]( G5 m7 \- h, a# K) W
uint16 i,j;& X* F6 Q" |) O0 q
for(i=z;i>0;i--)6 @5 ~. k. p+ O% ] Y& V& ~* p
for(j=500;j>0;j--);$ j# R# T/ c( P5 }/ D
}
0 \3 u7 a2 D' |) t7 c9 T- @# B
P: G t- j6 x' i//延时************************************************
, t( m7 c+ C% x: S9 ~9 H6 N# D* x1 Q3 K4 u
void delayus()7 Y0 A0 S: S# G8 ?& k& ~
{9 B8 |( b& }4 X( F) w/ y
uint8 i=50;4 N# p4 R' H& Y" o; l
while(i--);% d6 |/ F& X' G4 U5 {* f
} # Z/ @9 b- ?1 n4 d8 ?# q8 u- C
8 X. H9 U1 Z9 ^
6 I+ ^# T# M1 x: G//写指令***************************************************
( O6 k. J4 L0 |
8 q# a0 p- \; Q/ z& a3 p. s4 j% Tvoid WTCOM(uint8 COMM)
( \% z0 t% s# i0 w7 s8 A! }5 N& r- R! Q{ 6 a- P: i5 ]1 l
P1OUT &= 0;
1 K- n5 D3 O8 d3 a5 U n( H# ^ P2OUT &= 0XFE;- p$ G5 ^( O) U8 [9 g
P2OUT |= BIT1;
) l7 `8 }) _- ]7 w+ e P1OUT |= COMM;
5 i1 J0 y0 j; |/ N% V9 V delayms(1);
' |6 t" Q. g8 ]& V6 N P2OUT &= ~BIT1 ;3 D9 W D& @5 n, ?
}
; a+ q; p% f5 Z( S$ a
* R! |0 y f# |//写第一行数据**********************************************
* g; B: e4 ~9 M4 S; @1 d5 G! L8 C, J6 O2 g4 m$ r+ a
void WTDATA()
" G( n" Q {* u n+ y) Q. v{) f3 e$ f* \+ e1 x/ O& c
uint8 DATA=0;
" B i6 ]- X7 P WTCOM(0X80);& N/ g% G. G/ B$ k$ Q" N% s: U
P2OUT |= BIT0;# K; E5 ] d/ J0 k' B0 M
for(DATA=0;DATA<12;DATA++)
; s; F4 u1 X7 V {
6 [+ E! ^4 Y/ b8 X& v P1OUT &= 0;( g; k7 e& C4 T* Y6 ]3 U' _9 f
delayus();! q, R- v. E! q( }+ a* k7 X* j& e
P2OUT |= BIT1;( N7 ?3 W! X( R3 w
P1OUT |= table[DATA];" b3 W* E! T% Z2 f- @
delayms(100);
2 z. n* f: e, p1 o7 a: E P2OUT &= ~BIT1 ;0 c. A% N5 j. m4 q* P* m+ @
} . e7 d: J% n, \. t( M$ ^, T$ E
}
4 e' i9 ~6 x7 C& c6 C {/ B& k e( r7 @2 |
//写第二行数据************************************************% \7 t. s. r3 t* h# j' e3 r0 u- L* Y
0 h, r6 F: e' Y6 }. ~$ ?" Q
void WTDATA2()
, ?4 J a/ [; W5 b/ \& W{9 z1 c2 Z! A5 X+ w2 W( t
uint8 DATA=0;9 B7 b* c, f7 S' T, [- U
WTCOM(0X80+0X40);: ~, R% b p+ L! q
P2OUT |= BIT0;! _6 \1 W/ @0 D7 n4 W6 u. J7 `
for(DATA=0;DATA<7;DATA++)# O1 ~! N& N. r/ U* Y" V4 J) l
{ 6 j' G1 w U! G7 }" X! u3 {' T! E
P1OUT &= 0;
6 L+ A$ S& `1 `" l, E' r! @$ F delayus();
* [6 ^% F' D$ C* d P2OUT |= BIT1;
) ^3 a: K1 d& b/ M P1OUT |= table2[DATA];
+ @% k& i/ A, r7 h m delayms(100);5 N+ t H5 @* m( h
P2OUT &= ~BIT1 ;- ^" F+ P' u* c3 \ D8 o' S
}
- r% _' k* s6 B8 P5 {6 J}4 w; {" _4 h! E# \
+ |7 i% T$ q0 K6 L
9 P5 M( ]7 c" z啥玩意都得搞个图{:soso_e112:} 1 x0 w/ q; G6 v: B6 G
2 ^* x1 h" a) I5 k1 `
0 N5 P: ]4 v1 k; [8 t
A# `: z# D: L3 ~% @, A k/ t7 I& q
) q) W' L% w3 U |
评分
-
查看全部评分
|