|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
看了一些代码发现有些存在错误,然后自己写了一个1 W z5 C( ]/ y+ ^# F
) J' b4 U: ]# L E1 Q#include "msp430x14x.h"
4 f5 s9 m, C7 Q# n; m' i, T/ _. q! L% P
2 C# y2 Y7 M2 m6 f0 g0 B#define RS P3OUT! }. G/ Z% X: Q
#define RW P3OUT1 _, G I3 S" ~. b
#define E P3OUT+ c' a7 P- o( ^& M
#define RS_DIR P3DIR
F$ y* _' O: M, Q- K#define RW_DIR P3DIR
& @: W+ ~( _3 C: Q#define E_DIR P3DIR. u N# g$ |1 t2 @
#define DATA P4OUT
* h- _6 Z& n7 u( c- T" c% g& H, t#define DATA_DIR P4DIR& v. R! x" R1 K8 q# {& J9 G8 m
* j3 z$ q/ t& \4 ?3 c, d3 ?" t& V. P3 ~4 b
char first[]="This is ourlab";
, k6 i8 \. M2 @char second[]="It is the second";0 U3 m2 C6 }. \4 ?! C- A4 M
6 H4 T- G. D+ V% t/ q
5 }/ Q) f# o' R! u# ?void delay_ms(int x)//延时 x ms//延时只是随便写的,没有计算; r6 n u% \. q# U5 ~& G
{ int i,j;# H8 T0 y9 _4 R) f7 L
for(i=0;i<x;i++)4 W' a* V/ f5 g: s0 r" h, c
for(j=0;j<340;j++)3 J0 v! v! i4 @: @
;! Y" V [: O; B* }* X5 u7 p+ S! I$ C
}
" c$ L7 W9 `! d' N- Zvoid writedata(cmd)//写数据3 {- ^3 E/ w9 G' _% @* ]
{
+ Y; E) ]9 w4 D% K! u) U0 V$ w RS|=BIT0;
$ n. i7 ^2 j( @4 K" E+ t; o* f) b RW&=~BIT1;
2 k3 M4 M8 A s/ i# S DATA=cmd;0 k9 P0 [$ U1 s1 G- [" i
E|=BIT2;" n* { U5 n# z; ], K: Q+ v
E&=~BIT2;
% \" O1 m" i% b( T. L }
0 |' \6 g' u. {; H/ c" g5 hvoid writecom(cmd)//写指令
+ ?0 K+ ]/ H- Z+ u. t7 t {( }, A6 k- |+ ? k
RS&=~BIT0;3 S7 F; q' _+ V, [5 Y
RW&=BIT1;
! H# y# p+ C( C/ P% h0 @8 S DATA=cmd;5 C7 w* d+ H' W- Y( U% |% f7 r
E|=BIT2;
( f1 J7 M. v" X& Q( d E&=~BIT2;
2 n* D+ Z3 [$ P0 F4 V3 t }
% m5 n* f% @+ kvoid Init(void)//初始化
% f) g3 r5 q V- E6 k {
; [$ s1 d$ w q. w4 | RS_DIR|=BIT0;
' J& O/ C( c2 E8 Y; B5 `; f RW_DIR|=BIT1;
) ?8 Y( i; ~& _6 q* W E_DIR|=BIT2;
" K! o* A+ Q& G* H DATA_DIR=0XFF;//方向寄存器为输出+ _$ A9 \; E1 g3 A" h. L
writecom(0x38);0 }, H" k- c- m/ g# ?* S
writecom(0x0f);7 k+ F" m# C' A3 ^" f6 l+ Z+ R
writecom(0x06);
% ?% @1 f8 i- Z0 a4 X4 r. b9 @2 d writecom(0x01);
. ]1 z/ S: X8 I1 W& m* y+ u( C/ v `3 o4 y }
, U& ?7 m( m- G) F. T- o8 g* Ovoid main( void )% n. N) v: m/ L M' K/ C
{% K5 G6 c7 O1 s
// Stop watchdog timer to prevent time out reset
0 m( `0 v, X1 I- ?. o" `6 `% n WDTCTL = WDTPW + WDTHOLD;//开关门狗
! X% T* {' j* y! ~- Cint i;* V+ S% M! b2 a. i( C, n" R# m
Init();//初始化
% r) W% @6 q w8 W6 Owritecom(0x80);
\1 P# g; K6 \- @ p7 c7 Pdelay_ms(300);$ y/ ~2 i( W/ |( h3 t/ ~
for(i=0;i<14;i++)+ o% J* E0 @ V+ O
{( I8 A( b( A6 i5 i" N# L y* Q
writedata(first);
( ?- J$ i) u& n2 f; F/ s3 A: T, S }
# Y8 y, h$ T/ k9 }1 s4 nwritecom(0x80+0x40);
9 e* Y% M6 l5 q5 {( Sfor(i=0;i<16;i++)
0 {& K, s8 J; H/ P0 }' Q* A {% a5 L, N% T! H4 W6 L& u* ~1 P
writedata(second);
7 t8 w* B) G7 ^5 _ s) O% {- U3 R }4 M' E0 c1 @' V9 P+ N0 F
;8 C4 D( g6 D- _' J- F2 Y. d
}
0 C5 ^. t, }2 @5 j0 ]2 s, [, ^8 y( q3 B" i! D$ B
|
|