#include <reg52.h>
#include <intrins.h>
#include <Ctype.h>
sbit sid=P3^2;
sbit sclk=P3^1;
sbit rs=P3^0;
sbit reset=P1^0;
sbit cs1=P1^1;
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
void transfer_command(uchar data1)
{
uchar i;
cs1=0;
rs=0;
for(i=0;i<8;i++)
{
sclk=0;
if(data1&0x80) sid=1;
else sid=0;
sclk=1;
data1<<=1;
}
cs1=1;
}
void transfer_data(int data1)
{
char i;
cs1=0;
rs=1;
for(i=0;i<8;i++)
{
sclk=0;
if(data1&0x80) sid=1;
else sid=0;
sclk=1;
data1=data1<<=1;
}
cs1=1;
}
void delay(int i)
{
int j,k;
for(j=0;j<i;j++)
for(k=0;k<110;k++);
}
void main()
{
uchar i;
cs1=0;
reset=0; //低電平復位
delay(100);
reset=1; //復位完畢
delay(100);
transfer_command(0xe2); //軟復位
delay(10);
transfer_command(0x2c); //升壓步聚1
delay(5);
transfer_command(0x2e); //升壓步聚2
delay(5);
transfer_command(0x2f); //升壓步聚3
delay(10);
transfer_command(0x27); //粗調對比度,可設置范圍0x20~0x27
transfer_command(0x81); //微調對比度
transfer_command(0x28); //0x1a,微調對比度的值,可設置范圍0x00~0x3f 與上一條是雙指令上一條的0x81不動,下面的才是值
transfer_command(0xa2); //1/7偏壓比(bias)一般不改0xa2是1/9
// transfer_command(0xc8); //行掃描順序:從上到下
// transfer_command(0xa0); //列掃描順序:從左到右
// transfer_command(0x40); //起始行:第一行開始
transfer_command(0xaf); //開顯示
for(i=0;i<20;i++)
{transfer_data(0x55);}
while(1);
} |