差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版 两侧同时换到之后的修订记录
图片显示系统设计 [2018/11/01 10:26]
anran [实验原理]
图片显示系统设计 [2018/11/01 10:27]
anran [实验原理]
行 117: 行 117:
 LCD_WriteCommand(0x29);​ //Display on  LCD_WriteCommand(0x29);​ //Display on 
 } }
-<\code>+</code>
  
 创建存储器,将初始化过程中写的所有指令和数据存储,同时存储的还有指令或数据标志,例如初始化第1条指令为8'​h11,我们增加最高位1‘b0组成9位位宽数据。存储器部分指令和数据如下: 创建存储器,将初始化过程中写的所有指令和数据存储,同时存储的还有指令或数据标志,例如初始化第1条指令为8'​h11,我们增加最高位1‘b0组成9位位宽数据。存储器部分指令和数据如下:
行 128: 行 128:
     reg_init[ 3]    =   ​{1'​b1,​8'​h3c}; ​     reg_init[ 3]    =   ​{1'​b1,​8'​h3c}; ​
     reg_init[ 4]    =   ​{1'​b1,​8'​h3c};  ​     reg_init[ 4]    =   ​{1'​b1,​8'​h3c};  ​
-<\code>+</code>
  
 从51例程中可以看到,整个初始化过程都在给液晶屏写指令或数据,通过查看写指令或写数据的时序发现,唯一不同的就是对A0(对应底板液晶屏模块中的D/​C信号)的控制,程序实现如下: 从51例程中可以看到,整个初始化过程都在给液晶屏写指令或数据,通过查看写指令或写数据的时序发现,唯一不同的就是对A0(对应底板液晶屏模块中的D/​C信号)的控制,程序实现如下:
行 146: 行 146:
     CSB=1;  ​     CSB=1;  ​
 } }
-<\code>+</code>
  
 FPGA驱动液晶屏的设计使用状态机完成,将写数据与写指令的SPI时序整合成一个状态,另加一位指令数据控制位,程序实现如下: FPGA驱动液晶屏的设计使用状态机完成,将写数据与写指令的SPI时序整合成一个状态,另加一位指令数据控制位,程序实现如下:
行 176: 行 176:
         endcase         endcase
     end     end
-<\code>+</code>
  
 初始化指令和数据都放到存储器中了,数据写入的SPI串行时序也已经设计成了一个状态,初始化状态只需要在复位后将存储器中的指令或数据通过WRITE状态发送给液晶屏,程序实现如下: 初始化指令和数据都放到存储器中了,数据写入的SPI串行时序也已经设计成了一个状态,初始化状态只需要在复位后将存储器中的指令或数据通过WRITE状态发送给液晶屏,程序实现如下:
行 202: 行 202:
         endcase         endcase
     end     end
-<\code>+</code>
  
 初始化完成,进入刷屏状态,刷屏数据写入前首先进行区域坐标的定位,然后刷写数据,图片采用单色显示,图片ram中每位数表示一个液晶屏一个像素点的亮还是灭,彩色液晶屏本实验采用16bit格式,即需要16bit数据决定像素的颜色,16bit数据分两次发送,最终从ram模块中获取的数据每位数据都要转换成16bit的数据,0转换成背景色对应的数据,1转换成顶层色对应的数据,程序实现如下: 初始化完成,进入刷屏状态,刷屏数据写入前首先进行区域坐标的定位,然后刷写数据,图片采用单色显示,图片ram中每位数表示一个液晶屏一个像素点的亮还是灭,彩色液晶屏本实验采用16bit格式,即需要16bit数据决定像素的颜色,16bit数据分两次发送,最终从ram模块中获取的数据每位数据都要转换成16bit的数据,0转换成背景色对应的数据,1转换成顶层色对应的数据,程序实现如下:
行 244: 行 244:
 endcase ​ endcase ​
 end end
-<\code>+</code>
  
 ===系统总体实现=== ===系统总体实现===
行 261: 行 261:
 0X00,​0X00,​0X00,​0X00,​0X00,​0X00,​0X00,​0X00,​0XF8,​0X00,​0X00,​0X00,​0X00,​0X00,​0X00,​0X00,​ 0X00,​0X00,​0X00,​0X00,​0X00,​0X00,​0X00,​0X00,​0XF8,​0X00,​0X00,​0X00,​0X00,​0X00,​0X00,​0X00,​
 0X00,​0X00,​0X00,​0X00,​0X00,​0X00,​0X00,​0X07,​0XFF,​0X00,​0X00,​0X00,​0X00,​0X00,​0X00,​0X00,​ 0X00,​0X00,​0X00,​0X00,​0X00,​0X00,​0X00,​0X07,​0XFF,​0X00,​0X00,​0X00,​0X00,​0X00,​0X00,​0X00,​
-<\code>+</code>
  
 使用编辑器的查找替换功能,将数据处理成下图格式 使用编辑器的查找替换功能,将数据处理成下图格式
行 271: 行 271:
 132'​h0000000000000000F800000000000000,​ 132'​h0000000000000000F800000000000000,​
 132'​h0000000000000007FF00000000000000,​ 132'​h0000000000000007FF00000000000000,​
-<\code>+</code>
  
 创建ram模块,将图片数据初始化到ram中,程序实现图下: 创建ram模块,将图片数据初始化到ram中,程序实现图下:
行 284: 行 284:
         8'​d3 ​ : Q = 132'​h0000000000000000F800000000000000;​         8'​d3 ​ : Q = 132'​h0000000000000000F800000000000000;​
         8'​d4 ​ : Q = 132'​h0000000000000007FF00000000000000;​         8'​d4 ​ : Q = 132'​h0000000000000007FF00000000000000;​
-<\code>+</code>
  
 存储图片数据的ram本实验采用分布式ram搭建,前面波形信号发生器实验中讲过ram IP核的例化及使用方法,有兴趣的同学可以自己尝试一下。 存储图片数据的ram本实验采用分布式ram搭建,前面波形信号发生器实验中讲过ram IP核的例化及使用方法,有兴趣的同学可以自己尝试一下。