我刚买回来的显示屏,想研究下它的显示模式,电压什么都转换正确的了
.程序就下面的
void main()
{
int i,j;
EnableAPLL( );
CLK_init();
init_cpu();
init_lcd();
cls();
wr_cmd_data(0x24,0x00,0x00);
wr_cmd(zdxsz);
for(i=0;i<128;i++)
{
for(j=0;j<30;j++)
{
wr_data(0xf0);//就这里,我想测试下能不能输出,结果全部输出都是0
wait(5000);
}
}
}
void init_cpu()
{
GPIODIR=0xff;
GPIODAT=0X00;
wait(2000);
GPIODAT=GPIODAT|0x02;
wait(2000);
escr=0x01; //设置EMIF模式
}
//写命令
void wr_cmd(uint value)
{
GPIODAT=GPIODAT|0x01; //cd=1;
GPIODAT=GPIODAT|0x04; //rd=1;
GPIODAT=GPIODAT&0xf7; //wr=0;
lcd_data=value;
GPIODAT=GPIODAT|0x08; //wr=1;
}
void wr_data(uint value)
{
GPIODAT=GPIODAT&0xfe;//cd=0;
GPIODAT=GPIODAT|0x04; //rd=1;
GPIODAT=GPIODAT&0xf7; //wr=0;
lcd_data=value;
GPIODAT=GPIODAT|0x08; //wr=1;
}
void wr_cmd_data(uint cmd,uint dat1,uint dat2)
{
wr_data(dat1);
wr_data(dat2);
wr_cmd(cmd);
}
//清屏
void cls(void)
{
int i,j;
wr_cmd_data(0x24,0x00,0x00);
wr_cmd(zdxsz);
for(i=0;i<128;i++)
{
for(j=0;j<30;j++)
{
wr_data(0x00);
}
}
wr_cmd(zddxe);
}
//LCM初始化
void init_lcd(void)
{
wr_cmd_data(wbqsz,0x00,0x00);
wr_cmd_data(wbqkd,0x1e,0x00);
wr_cmd_data(txqsz,0x00,0x00);
wr_cmd_data(txqkd,0x1e,0x00);
wr_cmd(0x81);//显示方式设置
//wr_cmd_data(gbwz,0x00,0x00)//光标位置
//wr_cmd(gbxz)//光标形状
//wr_cmd_data(wbqkd,0x00,0x00)
wr_cmd(xskg);//显示开关设置
}
void wait( unsigned int cycles )
{
int i;
for ( i = 0 ; i < cycles ; i++ ){ }
}
|