• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

串口控制输出pwm设计Verilog代码Quartus仿真

9小时前
170
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2411141R533109.doc

共1个文件

名称:串口控制输出pwm设计Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:

串口控制输出pwm

通过串口输入数字来控制pwm波的占空比

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. Testbench

6. 仿真图

接收到10,输出占空比10%的pwm

接收到30,输出占空比30%的pwm

接收到50,输出占空比50%的pwm

接收到80,输出占空比80%的pwm

部分代码展示:

module?my_uart_rx(clk,rst_n,rs232_rx,clk_bps,rx_data,rx_en);
input?clk;//?50MHz主时钟
input?rst_n;//低电平复位信号
input?rs232_rx;//?RS232接收数据信号
input?clk_bps;//?clk_bps的高电平为接收或者发送数据位的中间采样点
output[7:0]?rx_data;//接收数据寄存器,保存直至下一个数据来到?
output?rx_en;//接收数据有效
//----------------------------------------------------------------
reg?rs232_rx0,rs232_rx1,rs232_rx2;//接收数据寄存器,滤波用
wire?neg_rs232_rx;//表示数据线接收到下降沿
always?@?(posedge?clk?or?negedge?rst_n)?begin
if(!rst_n)?begin
rs232_rx0?<=?1'b1;
rs232_rx1?<=?1'b1;
rs232_rx2?<=?1'b1;
end
else?begin
rs232_rx0?<=?rs232_rx;
rs232_rx1?<=?rs232_rx0;
rs232_rx2?<=?rs232_rx1;
end
end
assign?neg_rs232_rx?=?rs232_rx2?&?~rs232_rx1;//接收到下降沿后neg_rs232_rx置高一个时钟周期
//----------------------------------------------------------------
reg[3:0]num;//移位次数
reg?rx_int;//接收数据中断信号,接收到数据期间始终为高电平
always?@?(posedge?clk?or?negedge?rst_n)?begin
if(!rst_n)?begin
rx_int?<=?1'b0;
end
else?if(neg_rs232_rx)?begin
rx_int?<=?1'b1;//接收数据中断信号使能
end
else?if(num==4'd11)?begin
rx_int?<=?1'b0;//接收数据中断信号关闭
end

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1365

  • 2-2411141R533109.doc
    下载

相关推荐