|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
{:soso_e113:} 偶出炉的的MSP430单片机LCD1602液晶显示流水字幕“HELLO-EDA365”,要带头多发帖
& {) |8 d$ g" \1 S7 U
9 ^# M4 I G$ X: o9 X }4 ?" c& ^" \
#include<msp430g2553.h> //msp430头文件
7 f' ]$ l* s$ {' ptypedef unsigned char uint8; //宏定义
$ v* b* y2 j, e8 u, T/ j9 ~typedef unsigned int uint16;
$ ~( ~' M/ o) f! G( bvoid WTCOM(uint8 COMM); //写指令函数申明
' r0 L% P* q. [) f+ {3 R' i" o4 }void WTDATA(); //写第一行数据函数申明 f2 A) Q" ~. s( u$ J
void WTDATA2(); //写第二行数据函数申明
+ ?3 e$ `9 y* [! o o4 lvoid delayms(uint8 z); //延时
I* R+ U; e! ^% Gvoid delayus(); //延时% E3 K1 [ {5 o8 O, L1 b4 v
uint8 table[]="HELLO-EDA365"; //HELLO-EDA3658 Z8 y+ W+ g/ `- ~
uint8 table2[]="WHTY_ah"; //WHTY_ah
1 C/ ~ I+ i, W6 _/ w" m7 p- Cvoid main() |5 Z6 Z+ c# m3 o/ ~
{& {$ G" g0 [2 \& t" W2 k
uint8 i;
: r: d% g+ X7 ? /***************P1是数据口 P2是控制口****************************/
" k6 o) {4 n9 M1 ?* V+ L( Z9 O. c /*********主时钟MCLK用系统默认DCO****************/4 @7 ]4 _1 v( f: w
* p+ F2 _% W5 ]& \& f$ t
WDTCTL=WDTPW+WDTHOLD; //关门打狗,^_^(关看门狗)
8 C4 G8 o" M5 e. R* |" r P1SEL=0X00; //普通IO: a& E8 k% `) |& w; b6 R4 [- n
P1DIR |= 0XFF; //P1为输出
2 F$ g/ l- n: m$ X; p3 b# o& r$ t P2DIR |= BIT0+BIT1; //控制口RS+E P20=RS P21=E
, p8 ?" P' o& Z3 H* B, S while(1)! o$ n. n1 A5 X: {5 c& U8 F- C
{' q- w$ j0 ]: r; x2 F: R
WTCOM(0X38);) R+ T; L0 {/ c1 Y
delayus(); //1602功能设置0 V. Y# s1 N0 C9 f, g3 Y, M) m
WTCOM(0X01);& K: w0 V7 I: M5 m5 i) U
delayus(); //1602清屏
7 _2 }+ Y! L- \! w1 B( W) u WTCOM(0X06);$ ^0 b# T$ C4 l, V( a1 ]0 y/ {
delayus(); //1602光标及AC设置
2 F1 P6 x" L/ c8 P# `/ I WTCOM(0X0f);
, _+ D2 R3 }$ R. O) y% f+ h; S delayus(); //1602光标开关! }6 G5 c0 f" ^
WTDATA(); //1602第一行显示1 O5 x1 h( T I X& c) d1 v
delayus();% E$ r" y: N3 y6 X0 q
WTDATA2(); //1602第二行显示( O" m% n. L7 k: F m6 E6 N
delayus();
3 ?! M0 q3 x1 P1 G8 i9 l* @2 O 6 Y& r/ {$ x T9 T
5 o! ^- S3 o, r6 g
//************************************************************* 6 A) c- q; A$ c& _7 I7 d2 x
for(i=13;i>0;i--) //移动字幕
3 Z& f) `+ [$ A; R {* A( w4 B9 Z2 Z( X) ?
WTCOM(0X18);5 n& `! l4 r* V9 f
delayms(100);- f K$ V% P; G2 E0 H
delayms(100);
' ]4 z- @0 F8 V } # u& s" k L- ^
4 I' t; H& p# [. a& v# [ }
! l" @: i! l c& M/ X$ v- z m4 i1 R
3 ^& t; L% z. Q) K [) Y( F( d}
: Z# ?( Y: F0 ~; a4 X5 u* C7 C: C$ S& ]* S) J$ f8 b9 V4 u
//延时****************************************************0 I& \" _( T/ l5 z
4 N2 ?- `6 j# a& B6 Xvoid delayms(uint8 z)
& e: p) h& a9 w% B5 Z{
, o" h3 j+ v% m) w, D+ ^3 v uint16 i,j;
; B( v4 h8 ^ o9 Z. ` for(i=z;i>0;i--)
, b) c+ T, U3 u; e% a for(j=500;j>0;j--);
6 c1 f3 h! W5 ?9 J. |} @$ | p3 c5 V5 @) B1 R
! h2 ?) _: Q& S% H
//延时************************************************5 P: q/ Z: r" l( l( }3 c8 X
9 y8 g j Y# O
void delayus()
5 [: @, w$ S) f) ?/ f! v{
/ ?8 J# W3 i8 G* h, @* }# N3 M uint8 i=50;6 N) Q1 m! E9 r" a" B- B! `2 \
while(i--);7 Z% `: a+ i( ]8 z' O; u. ?
}
# e9 f/ v, f/ u8 d% I* T; E
. a$ \/ B) {( E8 y) G
/ x" [% h! Q; n. _/ a//写指令***************************************************$ @6 Q& y5 B+ a5 e0 P; t
! b: \/ E3 v7 Z. P6 L
void WTCOM(uint8 COMM)
% }* B4 ~( x& C1 {! }! r/ n{
5 {8 m- N, g0 k# b. _' c% E$ T P1OUT &= 0;
4 D- a) U& O1 D# d: t7 |2 F3 ` P2OUT &= 0XFE;: v/ N5 C+ t1 c/ n# E: m9 }
P2OUT |= BIT1;" B0 ^& L& ~6 y
P1OUT |= COMM;
, n2 V2 g1 k \6 N% R delayms(1);
% ]4 M5 P/ a" R' f) \& K9 `$ G P2OUT &= ~BIT1 ;
; Y5 O) U; l0 ~) q0 @6 s+ E" B* J}4 j# B( a+ X- ?
# s9 J9 b& H2 q! k4 E
//写第一行数据**********************************************
~! A2 w5 B3 Z$ i$ J9 Z
0 W8 m1 p, a/ W: \2 p6 ^void WTDATA()
1 j3 O3 q2 {. _5 R. |{
* m! D+ j" O0 A9 b' Q7 H$ `- a uint8 DATA=0;$ y' t9 l$ D/ G
WTCOM(0X80);
/ F: e1 P: P$ T' }' _$ y P2OUT |= BIT0;" ^: F' j f3 p0 V
for(DATA=0;DATA<12;DATA++)" Y! ^1 @! U( _
{
: E- I( `. m; S3 u7 S P1OUT &= 0;
( d7 N% u, i* B delayus();2 Z. C( P% b2 q7 t+ D* k
P2OUT |= BIT1;; q: f) o | |: w" o/ {* C# @( U" w
P1OUT |= table[DATA];
$ X9 i0 a8 h+ _, }- Y5 H delayms(100);
+ q, {9 s& Y9 D# O3 _ P2OUT &= ~BIT1 ;$ G' U! Z- }/ {4 U
} 9 U$ P! H% K0 S- u
}
7 }* g% k: f4 v" I0 \9 @1 c
+ C3 x9 V2 I3 d//写第二行数据************************************************
8 M1 U7 \( C$ P4 ~+ A4 F/ P5 J" e6 f
void WTDATA2()
5 N9 ~( @8 G. i) H) }, \& E2 Z{
% J. F( [) D" c+ d0 x uint8 DATA=0;$ T9 J4 `6 j$ q6 S: e
WTCOM(0X80+0X40);; Y- a( @- e5 w7 I) f @( z
P2OUT |= BIT0;5 f" I; o9 t x; j
for(DATA=0;DATA<7;DATA++)9 _7 e1 C; `2 s7 j4 L
{
5 k6 [0 J7 I7 J+ c, ?7 V% V( I0 r P1OUT &= 0;
8 {7 I9 t. Y# e& t% e/ d delayus();5 \1 A9 o, k0 V' W7 b- Z
P2OUT |= BIT1;; Z/ N: \1 M; t. q4 j- J5 [
P1OUT |= table2[DATA];- o8 U. S; R1 ]4 k7 Y% P7 x
delayms(100);
! u7 r1 N% [9 O6 i- K P2OUT &= ~BIT1 ;
0 C0 n& E* h& i8 X9 F }
$ ~# f$ B" y# i}
) G( _ p1 U( u% C
( c6 g1 s8 \/ p* A+ f
) I1 H# I5 H) j* G P啥玩意都得搞个图{:soso_e112:} - X8 ^$ K5 b/ Z' a8 e
6 I5 m' R% j$ G; n3 F/ S1 m
/ Z+ X/ O! q' U G
! F7 Q; p; l: a8 b$ V" t7 ?6 }
: J t4 L- T" }, K1 ~. x
8 s: j) `, ^: j8 p2 B
|
评分
-
查看全部评分
|