⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcu2.v

📁 本程序为Verilog扫描键盘成,然后送给51单片机处理的程序.
💻 V
字号:
/*单片机与FPGA端口定义
AD0------P142         A15----------P27
AD1------P141         A14----------P26
AD2------P143         A13----------P11
AD3------P1           A12----------P6
AD4------P2           A11----------P7
AD5------P3           A10----------P16
AD6------P4           A9----------P28
AD7------P5           A8----------P31
//硬件连接
RD------P139          WR-----------P134

cs------p31
A0------p28          //A1-----------P16

INT0----P132
//A0=0---------LED操作地址
  A1=1---------键盘操作地址
//输出
LDE1---P85           LDE2---P83
LDE3---P79           LDE4---P77
LDE5---P75           LDE6---P72
LDE7---P84           LDE8---P82
*/
module mcu(rst,cs,A0,clk,wr,rd,mcu_data,,row,column,int_flag,beep);
input wr,rd,clk,cs,A0,rst;
input[3:0] column;//列线
output[3:0] row;
wire[3:0] scan_key;

output int_flag;
output beep;
reg beep;
output [7:0]mcu_data;
reg[7:0] mcu_data;
reg state;
reg[3:0]row;
wire[3:0] wire_row;
assign wire_row=row;
wire beep_flag;
reg[7:0] temp;
reg[7:0]Lmcu_data;

assign int_flag = (scan_key != 4'b0000)?0:1; //低电平中断

key1 scan_key1(clk,rst,column,scan_key,wire_row,beep_flag);    //调用键盘扫描模块
always@(posedge clk )
  begin
      if(beep_flag) beep<=0;
      else      beep<=1;
      temp<=scan_key;
  end
//assign mcu_data=rd?8'bzzzzzzzz:temp;
always@(negedge rd or negedge cs)
  begin
       mcu_data<=temp;
      //mcu_data<=8'bzzzzzzzz;
  end
endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -