基于430的OCM12864-9驱动
#include<msp430x14x.h>
#include<math.h>
typedef unsigned char uchar;
typedef unsigned int uint;
#define lcddata_out P5OUT
#define lcddata_in P5IN
#define set_rs() (P3DIR|=BIT0, P3OUT|=BIT0)
#define clear_rs() (P3DIR|=BIT0, P3OUT&=~BIT0)
#define set_rw() (P3DIR|=BIT1, P3OUT|=BIT1)
#define clear_rw() (P3DIR|=BIT1, P3OUT&=~BIT1)
#define set_en() (P3DIR|=BIT2, P3OUT|=BIT2)
#define clear_en() (P3DIR|=BIT2, P3OUT&=~BIT2)
#define set_cs() (P3DIR|=BIT3, P3OUT|=BIT3)
#define clear_cs() (P3DIR|=BIT3, P3OUT&=~BIT3)
#define set_reset() (P1DIR|=BIT4, P1OUT|=BIT4)
#define clear_reset() (P1DIR|=BIT4, P1OUT&=~BIT4)
#define colse_led() (P4DIR|=BIT1, P4OUT&=~BIT1)
#define open_led() (P4DIR|=BIT1, P4OUT|=BIT1)
const uchar adj_page[]={7,6,5,4,3,2,1,0};
const uchar ASCIIchardot[16*96];
const uchar tab[5*32];
////*****************////
////*****函数声明****////
////*****************////
void delay(unsigned long v);
void check_busy();
void write_data(uchar dat);
void write_command(uchar command);
void reset(void);
void clear_screen(uchar m);
void lcd_initial();
void set_page_address(uchar page);
void set_colume_address(uchar colume);
void disp_word(uchar col,uchar pag,uchar ascii);
void disp_chn(uchar col,uchar pag,uchar ascii);
void disp_str(uchar col,uchar page,uchar *cn);
void clk_initial();
void point(uchar x,uchar y);
void disp_bmp( uchar const *puts );
////*****************////
////*****延时函数****////
////*****************////
void delay(unsigned long v)
{
while(v--);
}
////*****************////
////*****判忙函数****////
////*****************////
void check_busy()
{
uchar read_data=0xff;
clear_rs();
set_rw();
clear_cs();