#include"STC12C5A60S2.h"
#include<intrins.h>
sbit CS=P3^6;
sbit SID=P3^7;
sbit SCLK=P0^6;
unsigned char com,date;
void Write_12864(com,date)
{ unsigned int temp,temp1,temp2,temp3,temp4,i;
CS=0;
SCLK=0;
CS=1;
for(i=8;i>0;i--) //资料同步1 1 1 1 1 rw rs 0
{
SCLK=0;
temp=com&0x80;
if(temp)
{
SID=1;
}
else
{
SID=0;
}
com<<=1;
SCLK=1;
}
for(i=8;i>0;i--) //写数据
{
SCLK=0;
temp1=date&0xf0; //高4位
temp2=temp1&0x80;
if(temp2)
{
SID=1;
}
else
{
SID=0;
}
temp1<<=1;
SCLK=1;
}
for(i=8;i>0;i--) //写命令
{
SCLK=0;
temp3=date&0x0f; //低4位
temp4=(temp3<<4)&0x80;
if(temp4)
{
SID=1;
_nop_();
}
else
{
SID=0;
_nop_();
}
temp3<<=1;
SCLK=1;
}
CS=0;
}
void Init_12864()
{
Write_12864(0xf8,0x01); //清屏
Write_12864(0xf8,0x0f); //整体显示打开 ,光标闪烁,反白。
Write_12864(0xf8,0x30); //选择8bit数据流
}
void display_12864()
{ Write_12864(0xf8,0x80); //显示地址 0x80
Write_12864(0xfa,0x11); //显示内容
}
void main ()
{
Init_12864();
while(1)
{
display_12864();
}
} |