|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
{:soso_e113:} 偶出炉的的MSP430单片机LCD1602液晶显示流水字幕“HELLO-EDA365”,要带头多发帖
6 d! F& ]+ L& n; A( \$ y
* J5 m; W* B( R' \2 S* I, X0 J9 G, j5 `! Y7 z: H! E9 M
#include<msp430g2553.h> //msp430头文件% o6 W: f! d q! A& K5 W
typedef unsigned char uint8; //宏定义, I0 U6 W, N2 M0 k* T! }
typedef unsigned int uint16;8 j9 c0 v( V* K$ ^/ C8 ]
void WTCOM(uint8 COMM); //写指令函数申明. G; O" @6 c% h: D. `% Y9 t3 p
void WTDATA(); //写第一行数据函数申明
4 s* z/ o9 C8 c) ^+ @* b6 F2 `void WTDATA2(); //写第二行数据函数申明8 q2 ^9 `8 [- B" x1 t
void delayms(uint8 z); //延时
- H ?0 I. I# [- L t% mvoid delayus(); //延时3 B4 H$ o: _0 a7 r9 W
uint8 table[]="HELLO-EDA365"; //HELLO-EDA365
4 J1 S, t% U/ H8 r4 b0 r' {& Duint8 table2[]="WHTY_ah"; //WHTY_ah
& {; U$ l# ]8 P5 N8 I4 P6 }, x1 h gvoid main(). X' r/ b/ p1 y2 C8 n! y* Y
{- e" D5 {+ e3 {
uint8 i;
# n7 l7 G1 F+ F0 s /***************P1是数据口 P2是控制口****************************/
" N. ]( D; z! p3 T$ _ /*********主时钟MCLK用系统默认DCO****************/- |) ]" A! v* ^7 b
6 R, o3 E; `0 C
WDTCTL=WDTPW+WDTHOLD; //关门打狗,^_^(关看门狗)
" {/ d g9 ?9 H9 j" V$ e P1SEL=0X00; //普通IO
9 C8 O% @& }# \7 Z" V1 U6 Y P1DIR |= 0XFF; //P1为输出% S2 i* k7 ?: J, S
P2DIR |= BIT0+BIT1; //控制口RS+E P20=RS P21=E" C) L, r9 d! F+ {9 s) A# ?
while(1)& g# S3 H1 q5 d+ Y& u5 D9 t
{
* `/ K! o3 W7 U4 h" w6 x WTCOM(0X38);
- Z! L( D* |; L+ d% M+ ] delayus(); //1602功能设置
: c. Z( P* u; N1 X+ e) B WTCOM(0X01);
3 }: I! G; f3 T! }7 ~9 R4 m delayus(); //1602清屏* b# e N5 g B, Y7 b% G
WTCOM(0X06);* b2 _: m5 B* U- O6 p. m
delayus(); //1602光标及AC设置
8 l) r/ e* g: B" B$ W' d2 B WTCOM(0X0f);
$ x! |/ ^6 W3 j; L+ r delayus(); //1602光标开关
" r4 _" L2 Q6 y, O) e, x, ? WTDATA(); //1602第一行显示
$ h7 U5 O. W- b6 ^ delayus();
. y, x: w& p+ K; Z# y; C [ WTDATA2(); //1602第二行显示7 x3 C8 p: E! l' n( ?# E
delayus();5 E5 y3 r H, j$ [
: p+ r8 ~. i6 O* o9 L/ R6 n; L5 V
: _+ p: d+ x$ T" f% l3 t* H: U+ I7 F//************************************************************* " y8 L% S9 R& J
for(i=13;i>0;i--) //移动字幕6 ~4 R6 R' }. R2 `8 \
{
) W4 j8 N! C& U3 j7 r0 f& V0 W3 w WTCOM(0X18);! R6 Y$ I; L6 U* s. _
delayms(100);2 W! A. y* c7 u4 p' ~. D
delayms(100);- y* O8 G# P6 D. d, I* @) h
}
$ H3 Y3 @3 ^/ K- T' k: l 0 ?+ n( _ Q3 r: ^. U, U+ ?2 \5 ]
}
' ^; ]5 I* Y; l7 Z( ^8 g # D: U4 j0 h, [, u$ U
}7 g6 O. U$ e4 j5 ~, N
& m3 Z" h1 V& z2 q. e0 X) l2 T& `//延时****************************************************
( f& x" \; ]; B* |$ b0 _2 c7 U9 Q% D0 Y7 i3 j
void delayms(uint8 z)
) k7 y8 Y0 a3 _. a7 q1 w6 K{
/ j2 b* `4 v: ^. m uint16 i,j; g' X) r0 k, u, C
for(i=z;i>0;i--)6 Q7 q6 B: A4 {$ ^, z$ H% v
for(j=500;j>0;j--);" ]8 G* Z6 |) S0 Y
}
/ W7 [2 P1 C2 I* G+ Q4 h: b; T* |8 H( a
: L8 D$ L- z$ A8 t3 U. g+ H//延时************************************************
: O% j3 o; q& | S$ W% G* G9 F# U. H# w# x! r# v+ D
void delayus()
; n! |' G! K: L/ }3 N, ^9 @+ L{# k1 Y2 u( w/ L/ W
uint8 i=50;5 c4 {- F8 l. e: X
while(i--);* `) F& }% o8 {- i3 c' M c; P
}
4 d3 p, G! X4 b9 t
% x. M) B8 J# j' q. _8 @+ B- l" I. U' c% P! m& [9 `1 a
//写指令***************************************************5 q8 p3 m0 A7 l, P
: k# Q- C* j5 d! i- s
void WTCOM(uint8 COMM) . h$ f* v: P8 y# I3 C4 c
{ - m9 |5 |3 m: Y, p- V# \
P1OUT &= 0;6 `9 N7 d) {7 Y, P$ `2 P. j
P2OUT &= 0XFE;
6 N) z; t- \" X P2OUT |= BIT1;+ n% S# }+ H, W8 T. R) |
P1OUT |= COMM;6 a- |, q+ l. d. r
delayms(1);
9 G# K0 Z+ m7 g1 D P2OUT &= ~BIT1 ;
* D6 Y1 D0 n, X" C; R4 n l}
! J: T; `. [4 W( Y1 t9 U% y) ]! z
! a& y5 p$ r0 r: z4 \( I m//写第一行数据**********************************************
, K! C; M; T! L8 e, ~2 B
4 N4 U& |7 d" h* z9 I+ C6 [void WTDATA()
# b. h: z7 Z. K{
5 |2 [8 C) Q+ {1 m& @ uint8 DATA=0; J# H) O9 D- |$ {3 y; f. k. V: C
WTCOM(0X80);
]9 W$ Y- e5 }2 j7 m: l6 F& l P2OUT |= BIT0;; B7 m( ~+ i5 ~8 Z! _/ t
for(DATA=0;DATA<12;DATA++)
) S/ x) n' u8 E! k# Z4 {! [9 s0 G* x# w { 1 P( q& v) e" F* o' A
P1OUT &= 0;
4 U+ h$ @6 `8 p1 _4 ^9 L5 |$ P delayus();
: Q3 o* D8 [+ a2 f1 V P2OUT |= BIT1;2 h' R' ^" J* k, N
P1OUT |= table[DATA];
! O4 y: p; C/ Z$ z' P. l" ?* v delayms(100);
. F, `6 ~$ ~8 E, v( U P2OUT &= ~BIT1 ;
4 q7 j' M9 v6 E9 _ } ; v( d* M1 i9 a ^
}! p1 N+ i9 `. ]1 K
5 r1 ~8 [* B5 I//写第二行数据************************************************
8 U1 E$ @3 ?' z$ C" h( g- y" `9 _3 R. [8 G+ W
void WTDATA2() + S1 J8 h. I+ F5 ^/ f( ]
{
' |4 ]: r6 ?+ ?$ D uint8 DATA=0;7 V. y5 T& D9 X3 b5 Y) L: P3 `! r
WTCOM(0X80+0X40);
" [4 b: b: x3 {$ a P2OUT |= BIT0;
; a7 E/ ]+ K7 V. [ for(DATA=0;DATA<7;DATA++)
, L6 T! T; z( `3 O$ u9 Q { ! m8 i) t p" `" V7 F4 W
P1OUT &= 0;% i' D: d5 K! ~
delayus();
. ?$ W/ k6 e6 o4 E6 H/ b P2OUT |= BIT1;# _3 M& N. Y0 ]) |6 v
P1OUT |= table2[DATA];; `7 g" J/ c/ z4 A- Q/ v+ n
delayms(100);
: U/ j5 U7 C: \3 D P2OUT &= ~BIT1 ;
* w8 X; B; D- O) w- {1 n) g }
7 j: c+ t5 K8 l3 e2 i% `0 N5 C}
6 v8 ?# J1 ~9 S H4 Z4 m) y7 I5 `" ~6 t; @; M
v3 V. i, O- x5 Z9 }
啥玩意都得搞个图{:soso_e112:}
9 G# F) E6 a8 `
' e+ g* E% `: D+ d% [9 Q2 c) ]' ^
, j9 Q% e3 p& w* X8 ], ^ k1 L" ]6 g3 [% p( r# i7 h0 |) Z
- I& W( Z! Q) v1 a: X/ l |
评分
-
查看全部评分
|