|
本来AT89S8252已经成功驱动128*128的LCD了,因为用的是普通I/O加软件时序,速度较慢,想利用SPI的端口.用89S8252的P1.5(MOSI)和p1.7(SCK),只需改动send_data(),send_command(),这2个地层函数.
下面是函数,send_command()和send_data()几乎差不多,就是DC=1改为DC=0;
问题: SCK(P1.7)无输出,当然点不亮LCD;为了排除连接电路的问题,保持连线不动,把这两个函数该为纯I/O软件产生时序,就能正常驱动彩屏了-----忘大家赐教...
void send_data(unsigned char data1)
{
SClk =0;SClk =0; // LCD need SCE fail edge,SCLK must low
CSX =0; // CSX=0,LCD enable
DC=1; DC=1; //LCD need confirm DC=1 is data
ES=0; //set SPI interrupt disable bit
SPCR=0x53; //set SPI control bit,SPIE=0,SPE=1,DORD=0,MSTR=1,
//CPOL=CPHA=0,SPR1=SPR0=1(SCK=F/128),
SPDR=data1; //send data1;
while((SPSR&0x80) == 0); //check finish send data(SPIF=1) or not
CSX =1; //CSX=1,LCD disable
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|