//mma7361 使用0809模数转换
#include<reg52.h>
#include<math.h>
#define uchar unsigned char
#define uint unsigned int
uchar FFWW[]={0x30,0x60,0xc0,0x90};
uchar ffw[]={0x3f,0x6f,0xcf,0x9f};
uchar REVV[]={0x90,0xc0,0x60,0x30};
uchar rev[]={0x9f,0xcf,0x6f,0x3f};
/* 7361接口设定:x,y,z,分别接IN0,IN1,IN2;
*/
sbit sleep=P2^3;
void init_7361();
void init_7361()
{ sleep=1;
}
/* lcd 接口设定:p0,RS,RW,E对应p0,p2.0,p2.1,p2.2 */
sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;
sbit BF=P0^7;
#define LCDP P0
uchar disp[5];
void write_inst(char); // 写入指令函数
void write_char(char); // 写入字元函数
void check_BF(void); // 检查忙碌函数
void init_LCM(void); // 声明LCM初始设定函数
void display(void); //显示函数
//====初始设定函数(8位元传输模式)===================
void init_LCM(void)
{ write_inst(0x30); // 设定功能-8位元-基本指令
write_inst(0x30); // 设定功能-8位元-基本指令
write_inst(0x30); // 英文LCM相容设定,中交LCM可忽略
write_inst(0x38); // 英文LCM设定两列,中交LCM可忽略
write_inst(0x08); // 显示功能-关显示幕-无游标-游标不闪
write_inst(0x01); // 清除显示幕(填0x20,I/D=1)
write_inst(0x06); // 输入模式-位址递增-关显示幕
write_inst(0x0c); // 显示功能-开显示幕-无游标-游标不闪
} // init_LCM()函数结束
//==== 写入指令函数 ================================
void write_inst(char inst)
{ check_BF(); // 检查是否忙碌
LCDP = inst; // LCM读入MPU指令
RS = 0; RW = 0; E = 1; // 写入指令至LCM
check_BF(); // 检查是否忙碌
} // write_inst()函数结束
//==== 写入字元资料函数 ============================
void write_char(char chardata)
{ check_BF(); // 检查是否忙碌
LCDP = chardata; // LCM读入字元
RS = 1; RW = 0 ;E = 1; // 写入资料至LCM
check_BF(); // 检查是否忙碌
} // write_char()函数结束
//====检查忙碌函数================================
void check_BF(void)
{ E=0; // 禁止读写动作