|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
看了一些代码发现有些存在错误,然后自己写了一个8 O& [- u8 p5 _; y
) t/ e5 T9 e# I9 Y#include "msp430x14x.h"
, E( R9 s! b" Y% f, r/ J! V" K3 t) u
) b3 j" H) c' Y
#define RS P3OUT
% f& h w5 z1 S/ W) l#define RW P3OUT
8 u2 w. ]) U( Y# s% w/ V#define E P3OUT1 H! u% V) r! L$ _) l: |8 @! r
#define RS_DIR P3DIR
2 e4 L5 a$ [* [& w% K8 ]+ p/ p#define RW_DIR P3DIR) b# M( k; x0 w* P& f+ x; x' N% _
#define E_DIR P3DIR
3 G& j; K6 E8 b( L, ?#define DATA P4OUT* H9 \$ x; ]0 K3 ? m, y1 c
#define DATA_DIR P4DIR
* f7 j9 @) P7 z2 a$ S* P O. R$ T' Y: o# Y. v* ^$ O1 ^
& s. E/ V& x5 J- } `
char first[]="This is ourlab";
6 T# { A. Q/ M9 y- Dchar second[]="It is the second";9 C/ V* j ?) o) A# d( c6 o
$ T" G V, [: H/ @2 c; V, d: n# j1 d9 g$ `# N/ h+ P& v' J* [
void delay_ms(int x)//延时 x ms//延时只是随便写的,没有计算6 P1 Z! U/ D3 W$ d
{ int i,j; y1 y) U$ E3 j$ C
for(i=0;i<x;i++)1 }! \& [& ]9 n6 k2 n9 M: J5 \2 {) j
for(j=0;j<340;j++)
, N9 Y9 R% S7 U9 V7 q; Y9 [2 A ;0 b5 m5 z# K7 v; ?1 W
}
& }4 l* _0 r" y+ e$ t+ c. mvoid writedata(cmd)//写数据
5 O$ W( A# o) O' ]$ h {
& @9 G0 p2 ^% L; Y/ H4 } RS|=BIT0;
7 w: T' Y4 j d# T* | F4 H+ W7 S RW&=~BIT1;
; E, U7 b8 z5 k& x5 M6 V, Y& Z" V0 C DATA=cmd;
4 J$ s2 b+ \6 q& M E|=BIT2;
* h( m- ]/ P# @2 o: n E&=~BIT2;* [" _) c+ A$ k. {( _6 L: x
}
: p9 J, x, E& J* a& S4 f# [- _void writecom(cmd)//写指令9 x! e3 z) [- c5 O: V; P
{# o+ \3 q- z# M
RS&=~BIT0;
# Z/ { h9 J4 t# J2 S" h: h RW&=BIT1;
! W" B7 x8 k( s* ]& u' X DATA=cmd;
5 t m8 W7 H+ P E|=BIT2;
2 v" A/ S& Z& L' E; P E&=~BIT2;
7 ~& ~+ }1 n0 E1 T. H3 H8 M$ u }8 \+ u1 |0 N7 x: F, ]) }* b8 N
void Init(void)//初始化
/ e! ?9 m* T9 \1 j {. P& W6 K& q" m4 a- T2 M
RS_DIR|=BIT0;
! s7 l4 Z3 E+ A" U" ~ RW_DIR|=BIT1;
( x" @. Z: `: \& H) h E_DIR|=BIT2;) ^0 D0 g- z z/ Z! v9 m; u
DATA_DIR=0XFF;//方向寄存器为输出
. r/ p" m( s8 o6 I' s" Z1 i5 X6 i writecom(0x38);6 d( J M6 M' X5 Z0 q% g( B
writecom(0x0f);
( V; q; G$ ]9 _1 t9 y: r writecom(0x06);+ y+ ?8 P2 t. t) t: m1 y/ Z# Z
writecom(0x01);
9 `# `. P) t+ U2 v1 p) X }
% B9 g; t8 J9 Lvoid main( void )
1 ?/ A5 G# o; i/ G* ]! d: \{. e. z( P, K; a3 u" X
// Stop watchdog timer to prevent time out reset
- _; i- f- a6 i) D! }& d WDTCTL = WDTPW + WDTHOLD;//开关门狗1 L& V" g9 Y# h0 J8 k# d
int i;, l: E$ p7 K$ M. p" h% G( d
Init();//初始化
: O2 i, q2 k ?0 Pwritecom(0x80);1 \, }' Y% O) p1 K/ x
delay_ms(300);% G9 Q' _* d9 N, B' t& A
for(i=0;i<14;i++)1 y4 Z8 w4 v3 q: D* \" \
{
% Q- H2 G; z0 L0 `% q! g+ C) @9 ` i writedata(first);( \/ i y; M: W8 X; n
}
2 W9 E$ g% P+ p7 S iwritecom(0x80+0x40);
( L# m8 n( t3 Q& C1 L/ ^7 k+ j& Jfor(i=0;i<16;i++)0 ~* l! p/ x- Y: R% ^2 Y
{! R! B# Q0 t4 h- ~( E
writedata(second);
% G# b' g S+ E9 ~ }/ A0 N6 Q- A$ T- W0 s9 m1 I4 b
;' c5 [+ X3 _, z8 ?
}5 e) W9 c% l8 k. x* |( \8 D8 @: e
3 i y7 Z6 z, @) }$ r9 l
|
|