
基于FPGA的LCD12864显示屏图片显示实验(含Verilog代码及Quartus 11.0项目文件).zip
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本资源提供了一个使用FPGA实现LCD12864显示屏图像展示的实验教程,包含详细的Verilog源代码和Quartus 11.0工程文件。适合于学习数字系统设计与嵌入式显示技术的学生及工程师参考。
FPGA控制LCD12864显示屏显示图片实验的Verilog逻辑源码适用于Quartus 11.0工程文件,并且使用的是CYCLONE4E系列中的EP4CE6E22C8型号,可以作为学习设计参考。
模块定义如下:
```verilog
module LCD12864(clk, rst, lcd12864_rs, lcd12864_rw, lcd12864_en, lcd12864_data, psb);
input clk; // 系统时钟
input rst; // 复位信号
output lcd12864_rs; // 1: 数据模式;0: 指令模式
output lcd12864_rw; // 1: 读操作;0: 写操作
output lcd12864_en; //使能信号,写操作时在下降沿将数据送出;读操作时保持高电平
output psb;
output [7:0] lcd12864_data; // LCD 数据总线
reg lcd12864_rs, lcd12864_en;
reg[7:0] lcd12864_data;
// 状态机相关寄存器
reg [3:0] state;
reg [3:0] next_state;
// 计数器
reg [14:0] div_cnt; // 分频计数器
reg [9:0] cnt; // 写操作计数器
wire[7:0] data; // 要显示的数据
reg clk_div; //分频时钟
// 状态机参数定义
parameter idle = 4b0000, setbase_1 = 4b0001, setmode_1 = 4b0010,
setcurs_1 = 4b0111, setexte_1 = 4b0100,
setexte_2 = 4b1100, wr_y_addr_1 = 4b1101,
wr_y_addr_2 = 4b1111,
wr_x_addr_1 = 4b1110, wr_x_addr_2 = 4b1010,
wr_data_1 = 4b1011,
wr_data_2 = 4b`b`b;
assign lcd12864_rw = 1b0; // 对LCD始终为写操作
assign psb=1b1; // 开背光灯
//时钟分频模块
always @(posedge clk or negedge rst) begin
if(!rst)
div_cnt <= 15d0;
else if(div_cnt==16h4000) begin
div_cnt <= 15d`b; // `b为具体数值,此处示例未给出实际值,请根据实际情况填写。
clk_div<=~clk_div;
end
else
div_cnt <= div_cnt+ 1b1;
end
//状态机转向模块
always @(posedge clk_div or negedge rst) begin
if(!rst)
state <= idle; // `b为具体数值,此处示例未给出实际值,请根据实际情况填写。
else
state <= next_state;
end
```
这段代码定义了一个用于控制LCD12864显示屏的模块,并通过FPGA实现对屏幕的操作。其中包括了时钟分频、状态机和数据传输等部分,可以根据具体需求进行修改和完善。
全部评论 (0)


