/*****************************************************
/曾经死逼在这里打不开文件 文件写的12864.H
//Clear_GDRAM_12864();//加上这句话就特别慢 显示字符
注意配置IO口的状态 初始化液晶
*******************************************************/
#include"12864_MSP430.h"//曾经死逼在这里打不开文件 文件写的12864.H
void Port_Init_12864()
{
P4SEL = 0x00;
P4DIR = 0xFF;
P5SEL = 0x00;
P5DIR|= BIT0 + BIT1 + BIT5 + BIT6 + BIT7;
PSB_SET; //液晶并口方式
RST_SET; //复位脚RST置高
}
void Write_Cmd_12864(unsigned char cmd)
{ //根据时序图写
RS_CLR; //选择指令寄存器
RW_CLR; //选择写
DataPort = cmd; //将8位数据通过P0传给12864
Delay_Nms(1); //延时,等待12864接收数据
EN_SET;
Delay_Nms(1);
EN_CLR;
}
void Write_Data_12864(unsigned char dat)//写数据的函数
{
RS_SET;
RW_CLR;
DataPort=dat;
Delay_Nms(1);
EN_SET;
Delay_Nms(1);
EN_CLR;
}
void Ini_Lcd_12864()
{
PSB_SET;
Write_Cmd_12864(0x30); //基本指令集
Delay_Nms(1);
Write_Cmd_12864(0x02); // 地址归位
Delay_Nms(1);;
Write_Cmd_12864(0x0c); //整体显示打开,游标关闭
Delay_Nms(1);;
Write_Cmd_12864(0x01); //清除显示
Delay_Nms(1);;
Write_Cmd_12864(0x06); //游标右移
Delay_Nms(1);
Write_Cmd_12864(0x80); //设定显示的起始地址
}
/*******************************************
函数名称:Clear_GDRAM
功 能:清除液晶GDRAM中的随机数据
参 数:无
返回值 :无
********************************************/
void Clear_GDRAM_12864()
{
uchar i,j,k;
Write_Cmd_12864(0x34); //打开扩展指令集
i = 0x80;
for(j = 0;j < 32;j++)
{
Write_Cmd_12864(i++);
Write_Cmd_12864(0x80);
for(k = 0;k < 16;k++)
{
Write_Data_12864(0x00);
}
}
i = 0x80;
for(j = 0;j < 32;j++)
{
Write_Cmd_12864(i++);
Write_Cmd_12864(0x88);
for(k = 0;k < 16;k++)
{
Write_Data_12864(0x00);
}
}
Write_Cmd_12864(0x30); //回到基本指令集
}
void Draw_TX_12864(uchar Yaddr,uchar Xaddr,const uchar * dp)
{
uchar j;
uchar k=0;
Write_Cmd_12864(0x34); //使用扩展指令集,关闭绘图显示
for(j=0;j<16;j++)
{
Write_Cmd_12864(Yaddr++); //Y地址
Write_Cmd_12864(Xaddr); //X地址
Write_Data_12864(dp[k++]);
Write_Data_12864(dp[k++]);
}
Write_Cmd_12864(0x36); //打开绘图显示
}