|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
{:soso_e113:} 偶出炉的的MSP430单片机LCD1602液晶显示流水字幕“HELLO-EDA365”,要带头多发帖
& e- x' ]. G6 U2 L) V" U \ z0 F: `6 F; r \
" ]7 Z% u3 t3 s4 \/ y- q#include<msp430g2553.h> //msp430头文件
" l' ~' u& B. ttypedef unsigned char uint8; //宏定义
4 M+ Y7 j$ d9 b4 q( T1 {typedef unsigned int uint16;
# A/ V8 C- r% `void WTCOM(uint8 COMM); //写指令函数申明
; `+ B& u9 L. t, ~7 h8 l' S% Vvoid WTDATA(); //写第一行数据函数申明+ N% @6 ]) U1 q" |" J& e
void WTDATA2(); //写第二行数据函数申明( D/ p# Y8 i! `% f0 {1 F6 `, G
void delayms(uint8 z); //延时
/ o, @0 g7 b. U6 J3 X- Evoid delayus(); //延时! \* p2 T: r c: F2 p4 O7 u
uint8 table[]="HELLO-EDA365"; //HELLO-EDA365
9 H W3 l$ _, _+ s9 ^7 P3 o: E. h4 E% Tuint8 table2[]="WHTY_ah"; //WHTY_ah; ^: Z4 a& q o" `+ ?
void main()
2 x) Q1 B9 m+ P9 l& h{
5 a8 k) u6 Q3 \. {; I ~ uint8 i;
. J0 Y& k2 o- v; r /***************P1是数据口 P2是控制口****************************/9 F i6 Y& P' N' b1 V+ m1 }0 H
/*********主时钟MCLK用系统默认DCO****************/: B3 s9 d( _1 \9 R' r* L- Z
2 a, s8 T6 c0 J; v5 E WDTCTL=WDTPW+WDTHOLD; //关门打狗,^_^(关看门狗)& [8 u0 p& h% _! Y3 k
P1SEL=0X00; //普通IO
5 A& e& Z- r2 C* ~/ ` P1DIR |= 0XFF; //P1为输出
. z, E& z+ B2 C0 _: h P2DIR |= BIT0+BIT1; //控制口RS+E P20=RS P21=E. u" F# j6 B* i; B L- N1 U1 H% m
while(1)
" T& }, {1 e) p: X- \ {
) n+ P1 S# p9 B+ O8 \5 V) O WTCOM(0X38);$ V z7 ^, w) Z2 O$ g& M
delayus(); //1602功能设置$ q& `3 W2 P$ S& B# T) q0 ]
WTCOM(0X01);
' @1 B- e% G- l( q6 l! T delayus(); //1602清屏
: y0 A1 I% \+ x! F, S WTCOM(0X06);4 Y# [2 X7 m y3 v3 c7 @/ u
delayus(); //1602光标及AC设置
0 @' H* {9 l' i, m9 O; G WTCOM(0X0f);, d/ i$ P5 y V) q6 A g6 G( ?
delayus(); //1602光标开关
! @1 N2 {% _" u" v$ V1 e( ` WTDATA(); //1602第一行显示
) W0 t0 G% C# D$ u: \& H delayus();
1 ?* t( R/ l2 L0 W WTDATA2(); //1602第二行显示
/ N0 l2 P) j/ u8 q2 O8 ?$ F7 l delayus();) `4 n* h4 S1 B. r4 _4 q! B. z1 c
" a; d5 y2 j, V3 H
% @- M7 P5 P1 @5 Y2 x, L, P" V- V//*************************************************************
6 C- A# h, r7 G a! \5 I) {% k0 Q for(i=13;i>0;i--) //移动字幕$ _* `8 b- [ G& L# w5 {" G
{
. O0 J1 i9 r0 p0 v$ e WTCOM(0X18);3 g2 C7 d6 V. b
delayms(100);# c* c! }0 d' L& U
delayms(100);
7 A, r# \" X: X o" O1 U5 D) p } - R3 |0 C! I) t0 K/ {
' Z; D8 K2 ~- f
}2 `0 w- |/ |9 Q7 Y& i
1 I8 {4 u& W2 }1 ^
}
; {5 Y+ k2 M* R
. K7 q( u* x) m1 z+ \( w* E//延时****************************************************9 b! {. M+ f* {7 \
X7 k' `5 o8 |
void delayms(uint8 z)
% X3 X( `8 i/ b+ T{
2 m" u& Q1 ^% }4 N uint16 i,j;9 B$ N( L, Y7 [4 }2 m: I
for(i=z;i>0;i--), M+ Z& v8 F/ Z/ d$ M/ j2 k; w
for(j=500;j>0;j--);
1 @4 F; F6 J. ?* H: _}5 ?+ E' a' b3 R$ p* w5 Z1 O
2 w# f! G" V* l+ s7 z
//延时************************************************3 @4 H( D* f* V9 k
" w. Q7 w8 Y% u( Kvoid delayus()
, O! A7 u$ X% W' A4 B7 c* n{) K9 y) I: |8 }( s
uint8 i=50;
8 L5 H4 h8 U( \. i o1 S5 G while(i--);, h. a. Y( \* e: o( a
}
T+ ~! n* p$ n' Y8 D! F
2 O+ d% P; Z. G( S0 }8 l, F, o9 M
//写指令***************************************************: K! R5 A* z3 ^! u
, s$ H& ] u8 |- S8 V0 O
void WTCOM(uint8 COMM) 1 n, i- B' K+ H3 L# h
{
- L8 |2 `7 C9 N. l* O1 m1 O P1OUT &= 0;1 ]6 ^4 _+ f* U$ S/ O
P2OUT &= 0XFE;/ m, W* ?* Y) P5 J
P2OUT |= BIT1;+ P; v, L, t8 ]+ z% L
P1OUT |= COMM;
+ X6 L# C6 k2 F; F delayms(1);
: |0 D( Z+ e( C+ D) p P2OUT &= ~BIT1 ;
' i8 |* Y7 [0 d6 Z X}% ]/ t, t# A0 K/ k& k% G
0 d d& |5 P, K/ L5 H" e
//写第一行数据**********************************************+ X& B9 U8 S+ s! O; F
7 X+ W; z$ w) ?4 s u8 U- `. [
void WTDATA() ) I+ v% p. p6 m' F' ^; ?
{
) a* [4 I2 }5 Y( [3 ^* q$ Z7 S( ? uint8 DATA=0;
3 N1 r7 x7 l7 ] U0 }0 b; H/ D0 r WTCOM(0X80);
& f3 |) D- T! L3 u# m! [2 u5 T, C2 X P2OUT |= BIT0;
' v6 s, j" `% @! M# R for(DATA=0;DATA<12;DATA++)
9 d6 N ?! a3 z9 P% Q { 8 f' C/ P0 c) `6 p2 K3 y
P1OUT &= 0;( ^+ e j2 }3 \6 _
delayus();
% [% ]" p" U" W; j$ M7 g0 l2 h P2OUT |= BIT1;
3 x2 a9 o) D0 n" F# ^ r' u8 l P1OUT |= table[DATA];9 f6 S% c& i1 a! Y" ` i+ w
delayms(100);
2 a; F+ N& k. k7 t! v( }0 E& m; _ P2OUT &= ~BIT1 ;5 M, H/ }7 x$ K2 a( W+ L
} % n$ J! s+ O" _8 w, `
}7 ]9 @/ u5 S; Z
$ G+ M v ]) f! y0 s$ y
//写第二行数据************************************************" q+ ^9 y: m7 b8 K! H
$ n8 M' ~) p. \, L
void WTDATA2()
1 \- \% D! H- X7 K$ Z" E{ D( J: Q4 j' @2 P
uint8 DATA=0;
2 d4 \! b; S l WTCOM(0X80+0X40);
- b' U4 ?3 W8 `: G4 J5 R P2OUT |= BIT0;4 Q1 C/ @: p* r* m0 _1 n
for(DATA=0;DATA<7;DATA++)6 E) w2 ~" d) H* M! C5 }
{ 9 \8 E& X* w& R1 D4 W6 g* W3 v6 g
P1OUT &= 0;& j% B1 N' f; o8 B. o
delayus();
: s' W, t- |! N+ o5 Y9 y+ G P2OUT |= BIT1;
' R N8 w$ P$ w6 E. z0 `. w, N, S7 v P1OUT |= table2[DATA];9 s5 S( \$ D( Q& d" r6 S
delayms(100);
4 e& h# w7 e! ~; [7 ]8 I: k+ q P2OUT &= ~BIT1 ;
/ h3 s0 i& _0 ^: ^& a, p, e }
6 L4 k2 ?1 V2 P% H}
# [1 m6 L, |; A2 d6 U4 N8 m# ]5 I0 L3 R" g1 V2 i2 y2 e
- M' p/ V ~9 r% W, ]$ ?啥玩意都得搞个图{:soso_e112:} * H w) U/ n$ e7 @' |7 K+ _
. F, O2 y1 f4 Z8 j
! G3 [7 k* N& q9 a
2 w; j" n+ o8 c4 b5 P0 H3 f! d; K8 H/ d" ]
2 E, M4 b( { v( T
|
评分
-
查看全部评分
|