FPGA控制LCD12864显示屏显示图片实验Verilog逻辑源码
时间: 2023-08-01 20:09:40 浏览: 126
好的,下面是FPGA控制LCD12864显示屏显示图片实验Verilog逻辑源码示例:
```verilog
module LCD12864_display_picture(
input clk, //时钟信号
input rst, //重置信号
output reg [7:0] LCD_data, //LCD数据信号
output reg LCD_RS, //LCD RS信号
output reg LCD_RW, //LCD RW信号
output reg LCD_EN //LCD EN信号
);
//定义显示的图片数据
reg [7:0] picture[0:7] = {8'h1C, 8'h3E, 8'h7F, 8'hE7, 8'hC3, 8'hC3, 8'hE7, 8'h7F};
//定义控制LCD显示的状态
reg [2:0] state = 3'b000;
//定义计数器,用于控制LCD显示的速度
reg [7:0] count = 8'd0;
always @(posedge clk or posedge rst) begin
if(rst) begin
state <= 3'b000;
count <= 8'd0;
LCD_RS <= 1'b0;
LCD_RW <= 1'b0;
LCD_EN <= 1'b0;
LCD_data <= 8'h00;
end
else begin
case(state)
3'b000: begin //初始化
if(count < 8'd10) begin //延时一段时间,等待LCD初始化完成
count <= count + 1;
LCD_RS <= 1'b0;
LCD_RW <= 1'b0;
LCD_EN <= 1'b1;
LCD_data <= 8'h38;
end
else begin
count <= 8'd0;
state <= 3'b001;
end
end
3'b001: begin //清屏
if(count < 8'd10) begin //延时一段时间,等待清屏完成
count <= count + 1;
LCD_RS <= 1'b0;
LCD_RW <= 1'b0;
LCD_EN <= 1'b1;
LCD_data <= 8'h01;
end
else begin
count <= 8'd0;
state <= 3'b010;
end
end
3'b010: begin //设置显示模式
if(count < 8'd10) begin //延时一段时间,等待设置完成
count <= count + 1;
LCD_RS <= 1'b0;
LCD_RW <= 1'b0;
LCD_EN <= 1'b1;
LCD_data <= 8'h0C;
end
else begin
count <= 8'd0;
state <= 3'b011;
end
end
3'b011: begin //显示图片
if(count < 8'd100) begin //延时一段时间,控制显示速度
count <= count + 1;
LCD_RS <= 1'b1;
LCD_RW <= 1'b0;
LCD_EN <= 1'b1;
LCD_data <= picture[count%8];
end
else begin
count <= 8'd0;
state <= 3'b100;
end
end
3'b100: begin //结束
LCD_RS <= 1'b0;
LCD_RW <= 1'b0;
LCD_EN <= 1'b0;
LCD_data <= 8'h00;
end
endcase
end
end
endmodule
```
这个程序实现了FPGA控制LCD12864显示屏显示图片的功能。当时钟信号上升沿到来时,会根据状态寄存器的状态来进行不同的操作。初始状态为初始化,会等待一段时间后发送指令给LCD进行初始化操作。然后进入清屏状态,同样是在等待一段时间后发送指令给LCD进行清屏。接着进入设置显示模式状态,同样是在等待一段时间后发送指令给LCD进行设置。最后进入显示图片状态,通过计数器控制显示速度,每次发送一个字节的图片数据给LCD进行显示。最后进入结束状态。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)