|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
看了一些代码发现有些存在错误,然后自己写了一个; l& w9 H s) ~0 H
/ }0 A" D6 u3 Q#include "msp430x14x.h"4 ^: z- t. L* s9 g2 ^! B5 [
; t+ ]* C% O/ H; E
; g1 V A+ O4 B. z1 T/ w#define RS P3OUT' r" U* N3 u1 f" ?7 j
#define RW P3OUT m) L* r3 Y T; B
#define E P3OUT5 K% m9 ^4 G- A* R8 b
#define RS_DIR P3DIR
1 {% `, ~% |1 n: E! O#define RW_DIR P3DIR5 g# x. A* H$ W
#define E_DIR P3DIR
2 [6 g4 G3 M8 a) L1 }( _#define DATA P4OUT
( G3 i/ P0 U& R: S0 p, w#define DATA_DIR P4DIR: V8 k) ~$ ]' n p8 D: w8 e
( R2 w; T" U) \% y6 `+ g
, V+ b' ?; m" o' Jchar first[]="This is ourlab";$ M3 \5 G5 c* l6 M9 \
char second[]="It is the second";; b2 J0 Z. C, x8 |
/ g6 p$ x. ~/ p, j
- I( a6 }* x0 `7 v: E1 _5 `3 @void delay_ms(int x)//延时 x ms//延时只是随便写的,没有计算
; x& ]' J, y3 I9 y- j; J0 O" J { int i,j; M ~5 O( V7 H. y2 O
for(i=0;i<x;i++)- N& I# @$ t; h8 j: m- y1 C
for(j=0;j<340;j++)7 ]5 b& r W O% Q" O! k
;' w( N Y/ G" c+ V
}
+ A; `: S1 Z" j( d% B- ^void writedata(cmd)//写数据5 |& G, T% ]' n) p+ u3 f: O
{
9 p3 j( {5 n) h1 O. F RS|=BIT0;' B v. c e0 W0 ^, D
RW&=~BIT1;, @) \) z; G* C: A6 P
DATA=cmd;
6 l$ a/ Y" o. K. o8 G( G E|=BIT2;
, n- F% X4 L3 Z( B E&=~BIT2;: n0 X; h" m$ \' v
}+ D6 J- ]0 t. _+ O
void writecom(cmd)//写指令# _6 W, R' ]0 Z! [5 Z7 }6 Z
{
: {+ |$ g! v* e: Z6 U RS&=~BIT0;9 l" V% Q, N, C% U! q
RW&=BIT1;, E; A: {% T, |5 P
DATA=cmd;4 D4 ?- x% [! W/ k. H' Z9 W6 K
E|=BIT2;- _! l6 |/ L* y3 U
E&=~BIT2;% D! m* g0 S3 `
}
$ {" B2 t/ p3 ]! Hvoid Init(void)//初始化( o7 A6 Z- G, E5 R7 v5 [5 ]
{
. k& G. Y* M# }3 ?5 I/ g RS_DIR|=BIT0;
' W5 V. E+ z9 g( q- O RW_DIR|=BIT1;% W+ d3 {8 o+ q3 R$ P5 U
E_DIR|=BIT2;
% }4 [8 T0 t/ ^$ F; i/ @* i DATA_DIR=0XFF;//方向寄存器为输出
+ L1 E- b: T+ o writecom(0x38);
+ x: t( F7 ^3 I+ F8 a, l! |+ `6 g( Q writecom(0x0f);
* b* ]# C# O0 X8 ~0 u/ v- s2 A writecom(0x06);
& ?; j- V/ h8 N2 {+ C- J: \' o; W+ H writecom(0x01);# b/ N" J% v0 u$ ]7 e+ Y
}0 w, Z d% z) e5 u
void main( void )1 @; q" g, Y. I* r m8 r& i
{
) p$ ~0 o3 ?4 A6 o: N; h // Stop watchdog timer to prevent time out reset
0 o m9 q. \7 c7 ^ WDTCTL = WDTPW + WDTHOLD;//开关门狗% K; R9 e# m& U* r. W- t) q2 U6 h0 m
int i;
+ d0 i/ h ^: O LInit();//初始化
+ e; z, H4 U2 r, B* M' dwritecom(0x80);) ~7 y8 T3 m" H( r! M u
delay_ms(300);# {& _8 X+ F5 X8 a; e
for(i=0;i<14;i++)
- y2 U; B9 T+ v* t {! t5 |8 f9 l) o, a" d) w
writedata(first);
9 x1 i5 i# D" n8 D, f) N+ C& { }; ^) x& I: G; x* D# I {
writecom(0x80+0x40);. x6 E, c" L5 ^1 i% _& n( i/ G( p
for(i=0;i<16;i++)5 U# f6 D; N$ e% k/ [8 c
{, Q% t" G4 ?9 Z6 `+ E
writedata(second);
( Q; C# B/ X+ \ M }0 Q0 ~4 ~7 y0 Y$ r' L
;, Q; d- Y P5 s7 r( Z- L
}+ r) L( z+ ?2 }) i6 G& k* f
: M) ~( U$ R2 p" o
|
|