#include <reg51.h>
#include <intrins.h>
#define unchar unsigned char
#define unint unsigned int
//sbit cspin = P3^4;
//sbit clkpin = P3^1;
//sbit dipin = P3^2;
//sbit RDpin = P3^0;
//sbit CS1pin = P3^3;
//LCD转接板IO口
sbit cspin = P2^0;
sbit clkpin = P2^1;
sbit dipin = P2^3;
unchar buf,dat;
void lcdnop()
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
/*------------数据传送函数------------*/
void lcdtran()
{
clkpin=0;lcdnop();
clkpin=1;lcdnop();
}
/*------------写命令函数------------*/
void lcdwc(unint n)
{
int i;
cspin=0;
lcdnop();
dipin=1;
lcdnop();
lcdtran();
dipin=0;
lcdnop();
lcdtran();
dipin=0;
lcdnop();
lcdtran();
for(i=0;i<8;i++)
{
dipin=n&0x80;
lcdtran();
n<<=1;
}
dipin=0;
lcdtran();
cspin=1;
}
/*------------写数据函数------------*/
void lcdwd(buf,dat)
{
int i,j;
cspin=0;lcdnop();
dipin=1;lcdnop();
lcdtran();
dipin=0;lcdnop();
lcdtran();
dipin=1;lcdnop();
lcdtran();
buf<<=1;
for(i=0;i<7;i++)
{
//buf<<=2;
dipin=buf&0x80;
lcdtran();
buf<<=1;
}
for(j=0;j<8;j++)
{
dipin=dat&0X01;
lcdtran();
dat>>=1;
}
cspin=1 ; //lcddelay();
}
// void lcdwr(unchar buff,unchar datt)
// {
// int i,j;
// cspin=0;lcdnop();
// dipin=1;lcdnop();
// lcdtran();
// dipin=0;lcdnop();
// lcdtran();
// dipin=1;lcdnop();
// lcdtran();
// buff<<=1;
// for(i=0;i<7;i++)
// { //buf<<=2;
// dipin=buff&0x80;
// lcdtran();
// buff<<=1;
//} for(j=0;j<4;j++)
//{
//dipin=datt&0X01;
//lcdtran();
// datt>>=1;
// }
//cspin=1 ;
// // lcddelay();
// }
/*------------液晶延时函数------------*/
void lcddelay(ms)
{
int i, j;
for(i=0;i<ms;i++)
{ for(j=0;j<300;j++)
{
;
}
}
}
/*------------全屏写数据函数------------*/
void lcdwdd(dat)
{
unchar i; //buf=0;
for(i=0;i<48;i++)
{
buf=2*i;
lcdwd(buf,dat);
}
}
//void segskan(unchar _dat)
//{
//unchar m;
//for(m=0;m<96;m++)
//{
//lcdwr(m,_dat);
//lcddelay(500);
//lcdwdd(0);
//}
//}
/*------------初始化函数------------*/
void lcdinital()
{
lcdwc(0x00);_nop_();
lcdwc(0x02);_nop_();
lcdwc(0x18);_nop_();
lcdwc(0x01);_nop_();
lcdwc(0x03);_nop_();
lcdwc(0x52);_nop_();
lcdwdd(0x00);_nop_();
}
/*------------显示主函数------------*/
void main(void)
{
lcdinital();
while(1)
{
lcdwdd(0xff);
lcddelay(1000);
lcddelay(1000);
lcddelay(1000); //1
// lcdwdd(0);
// lcddelay(1000); //0
// lcddelay(1000); //0
// lcdwdd(0x01);
// lcddelay(1000);
// lcddelay(1000);
// lcddelay(1000); //COM1
// lcdwdd(0x02);
// lcddelay(1000);
// lcddelay(1000);
// lcddelay(1000); //COM2
// lcdwdd(0x04);
// lcddelay(1000);
// lcddelay(1000);
// lcddelay(1000); //COM3
// lcdwdd(0x08);
// lcddelay(1000);
// lcddelay(1000);
// lcddelay(1000); //COM4
// lcdwdd(0x10);
// lcddelay(1000);
// lcddelay(1000);
// lcddelay(1000); //COM5
// lcdwdd(0x20);
// lcddelay(1000);
// lcddelay(1000);
// lcddelay(1000); //COM6
// lcdwdd(0x40);
// lcddelay(1000);
// lcddelay(1000);
// lcddelay(1000); //COM7
// lcdwdd(0x80);
// lcddelay(1000);
// lcddelay(1000);
// lcddelay(1000); //COM8
// lcdwdd(0);
// lcddelay(1000); //0
// segskan(0xff);
// lcddelay(1000);
}
} |