|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
看了一些代码发现有些存在错误,然后自己写了一个6 L! u6 i! S6 _) A% c) Q
$ a: h* O0 L l! E5 h9 L" d& v
#include "msp430x14x.h"$ B7 y, y% q, y
4 T, M2 P& W q1 K% l ?- D) Y+ J; ]
) Q s& k7 W; C/ Q0 m+ n( \#define RS P3OUT/ q' X( [& i5 S8 z
#define RW P3OUT8 o" `! z5 e* M* Q6 `# d- l8 R7 O
#define E P3OUT
" d5 p- n% j% L$ G# M" p#define RS_DIR P3DIR2 [! L( E$ N3 a7 o; |
#define RW_DIR P3DIR- b8 g( h+ p. R3 P8 ~
#define E_DIR P3DIR
# j/ x, v. G. n4 _7 [: l#define DATA P4OUT+ {+ N( a; @5 ?8 E; ~9 A0 P
#define DATA_DIR P4DIR
! X+ c9 K2 X- i/ C1 p: J5 y# a, R0 P: W6 S2 d
/ e) f- l$ {4 c5 r# a% }8 e6 K% s) }char first[]="This is ourlab";5 ?% U4 R1 B/ }6 t1 ]
char second[]="It is the second";+ T( c8 L+ [6 q3 `1 W ~) K g! Z
3 S# Z% v1 y# p1 `& p# B' z o
1 K6 p8 \( d! r! Y7 ]5 g1 e( h5 Gvoid delay_ms(int x)//延时 x ms//延时只是随便写的,没有计算- k6 {% u( m5 e2 j3 Q
{ int i,j;
[- q: f9 H s$ ^& F for(i=0;i<x;i++)
4 b2 O) S u+ H7 p2 ~- a, n. @ for(j=0;j<340;j++)' v- Y" d, _9 M( Z2 P# I/ [) B
;, G9 q2 ]$ w/ [. j. a9 c
}1 a8 M2 i/ p, G- {
void writedata(cmd)//写数据
' ~% o/ |/ n o, H+ T) V {
7 M& e' m8 m! F RS|=BIT0;1 @' H) d( o% H% S
RW&=~BIT1;2 O% h; g& d" A4 T9 G
DATA=cmd;( W! \8 {/ U) _9 s1 a
E|=BIT2;
; f- w! b1 X9 e( k4 @ E&=~BIT2;- I+ ]" z* C7 a4 l" W# p! u
}
6 j" S1 M t7 J/ t$ vvoid writecom(cmd)//写指令
4 l _7 D( {; Y* [" W {
& |& L3 u- z0 I RS&=~BIT0;
2 p& n7 P8 d) F3 T Z" w RW&=BIT1;
. j& H+ ]8 E$ C. O& L DATA=cmd;( J6 k3 R& d' A& [% ]5 @- `5 i
E|=BIT2;' J3 y! X# X. m/ O3 U' R) _) ]
E&=~BIT2;
8 W/ [2 |2 E+ J6 A& j }
& L+ W2 q _" [( Wvoid Init(void)//初始化& `6 S# Z, V, K2 K
{
9 z" h+ @( i6 q& ~) j RS_DIR|=BIT0;5 | {( v" H( g% R7 L: c6 t: g) D x. M
RW_DIR|=BIT1;
" S" h' |- X h$ {4 o4 W E_DIR|=BIT2;
4 H+ i* K; B4 e7 Q1 P DATA_DIR=0XFF;//方向寄存器为输出
; ^* z% w5 x F; O' A } writecom(0x38);
9 h4 ~+ @) x, o( S8 z0 R writecom(0x0f);& |% }6 l- I$ T/ W, z. [
writecom(0x06);
$ R9 q9 m$ k- ^/ b: N writecom(0x01);5 o' e0 `; a$ z, [5 b# r8 Q
}9 V" G) w* O1 s8 W
void main( void )
5 D) s4 \) Y+ E1 C* x{. f8 A& k/ p+ E
// Stop watchdog timer to prevent time out reset
# Y! v% H8 ?6 `3 Q# v WDTCTL = WDTPW + WDTHOLD;//开关门狗
6 w* x& k, O' W9 Rint i;, b1 f) \" Z6 L$ K$ ]: b0 A
Init();//初始化
+ ~% j; {4 v) y, m+ S* c4 }writecom(0x80);
+ ^" `9 v1 E# ~7 Y) jdelay_ms(300);
# Z0 L B9 z! B+ z, tfor(i=0;i<14;i++)
9 ~- `7 \. D/ }/ ?$ L, m {
, O, i. A* W" T5 C* { writedata(first);
4 U$ L4 Y& W' h3 |; v- z }) R$ i: c2 [6 N7 F
writecom(0x80+0x40);
; l/ N5 U% F6 ?for(i=0;i<16;i++)
& k5 z2 ^/ \' D4 m; l {" u) R2 {+ ^! l0 k9 V# ^: p: n
writedata(second);! H( f- _; F/ }. A
}
9 w: I# @, m9 r0 r8 n;" G; T* x2 E! x
}2 b* D% U. d1 {
9 Y! G1 b# I0 p; D! H O/ Q
|
|