#include "lcd.h"
void lcddelay(unsigned int del)
{
unsigned int i;
for(i=0;i<del;++i)
{
}
}
void wr_lcd(unsigned char dat_com,unsigned char content)
{
unsigned char c,i,j,x;
lcddelay(10);
c=content;
CS=1;
SCLK=0;
//写五个1
STD=1;
for(i=0;i<5;++i)
{
SCLK=1;
SCLK=0;
}
//写一个0表示对lcd进行写
STD=0;
SCLK=1;
SCLK=0;
//写指令还是写数据
if(dat_com)
{
STD=1;
}
else
{
STD=0;
}
SCLK=1;
SCLK=0;
//再写一个0
STD=0;
SCLK=1;
SCLK=0;
//分别写入高四位和低四位
for(j=0;j<2;++j)
{
for(i=0;i<4;++i)
{
x=c&0x80;
c=c<<1;
if(x==0)
{
STD=0;
}
else
{
STD=1;
}
SCLK=1;
SCLK=0;
}
STD=0;
for(i=0;i<4;++i)
{
SCLK=1;
SCLK=0;
}
}
CS=0;
}
void lcd_init(void)
{
wr_lcd(comm,0x30);//基本指令集BIS(Basic Instruction Set)
wr_lcd(comm,0x0c);//显示使能
wr_lcd (comm,0x01);//清屏,地址指针指向00H
lcddelay (50);
wr_lcd (comm,0x06); //光标的移动方向
wr_lcd (comm,0x0c); //开显示,关游标
}
void chn_dis(unsigned char*content)
{
unsigned char i,j;
wr_lcd (comm,0x80);
for (j=0;j<8;j++)
{
for (i=0;i<2;i++)
wr_lcd (dat,content[j*2+i]);
}
wr_lcd (comm,0x90);
for (j=0;j<8;j++)
{
for (i=0;i<2;i++)
wr_lcd (dat,content[16+j*2+i]);
}
}