一个基于FPGA的红外遥控和LCD显示框架,支持红外遥控输入并在LCD上显示对应的内容,可通过修改代码实现红外遥控计算器等高级应用。
已在台湾友晶科技的DE2-115开发板上测试可用,该开发板的核心FPGA芯片型号为Intel/Altera的Cyclone IV4CE115F29,开发平台为Quartus II/Quartus Prime。若要在其他开发板上使用,可通过修改相应配置管脚来实现。
其顶层文件的代码如下:
- module irda_top(
- input clk,
- input rst,
- input key_clear,
- input iIRDA,
- output rw,
- output rs,
- output en,
- output [7:0] data_out,
- output lcd_on,
- output lcd_bg
- );
- wire [9:0] data_in;
- lcd_1602 lcd_1602_m0(
- .clk(clk),
- .rst(rst),
- .data_in(data_in),
- .ir_arri(irinf_trig),
- .key_clear(key_clear),
- .rw(rw),
- .rs(rs),
- .en(en),
- .next_data(next_data),
- .data_out(data_out),
- .lcd_on(lcd_on),
- .lcd_bg(lcd_bg)
- );
- wire[31:0] ir_data;
- wire ir_arri;
- wire [7:0] inf_data;
- wire answer_flag;
- wire irinf_trig;
- wire [127:0] answer;
- IR_RECEIVE ir_m0(
- .iCLK(clk), //clk 50MHz
- .iRST_n(rst), //reset
- .iIRDA(iIRDA), //IR code input
- .oDATA_READY(ir_arri), //data ready
- .oDATA(ir_data) //decode data output
- );
-
- lcd_inf lcd_inf_m0(
- .clk(clk),
- .rst(rst),
- .ir_arri(irinf_trig),
- .key_clear(key_clear),
- .trig(next_data),
- .answer_flag(answer_flag),
- .inf_data(inf_data),
- .answer(answer),
- .data(data_in)
- );
- data_trans data_trans_m0(
- .clk(clk),
- .rst(rst),
- .trig(ir_arri),
- .raw_data(ir_data),
- .final_data(inf_data),
- .answer_out(answer_flag),
- .ir_infready(irinf_trig),
- .answer(answer)
- );
- endmodule
复制代码 综合后的RTL图如下:
全部资料51hei下载地址:
irda_lcd_version_2.7z
(13.58 MB, 下载次数: 20)
|