EPM240+IS61LV25616+群创AT056TN52做LCD的驱动
硬件方案是:EPM240+IS61LV25616+群创AT056TN52做LCD的驱动。通过并口方式接收外部单片机的显示数据并存入SRAM,由CPLD负责从SRAM中取数据并显示,并口协议:A1A0==00:写X坐标位置低8位,写X坐标位置高二位。
A1A0==01:写Y坐标位置低8位,写Y坐标位置高二位。
A1A0==10:写数据到SRAM,写完地址自动加1,分单点写和8点写模式;
A1A0==10:写控制寄存器,用于清屏,调置前景色和背景色
现在的问题是:
if((EB_A==EBCMD_X)&&( reg_cmd_xyhl==3'd0 )) //X address
begin
reg_cmd_x <= EB_D;
reg_cmd_xyhl <= reg_cmd_xyhl+1'b1;
end
else if((EB_A==EBCMD_X)&&( reg_cmd_xyhl==3'd1 ))
begin
reg_cmd_x <= EB_D;
reg_cmd_xyhl <= reg_cmd_xyhl+1'b1;
end
结果显示的位置错误,X坐标和Y坐标都不对,最后发现reg_cmd_x==reg_cmd_x;好像是在写低8位时EB_D被锁存了,最好把reg_cmd_x <= EB_D;改成reg_cmd_x <= Mode;(Mode为控制寄存器)就没有问题了,可以要改并口通信协议。 希望各位大侠帮小弟分析一下,调了一周没有解决,谢谢回复【楼主位】windcys
-----------------------------------------------------------------------
页:
[1]