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

可通过UART串口修改PWM占空比设计Verilog代码VIVADO仿真

08/30 13:11
1776
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2409191PS44U.doc

共1个文件

名称:可通过UART串口修改PWM占空比设计Verilog代码VIVADO仿真

软件:VIVADO

语言:Verilog

代码功能:

可通过UART串口修改PWM占空比

1、设计UART串口接收模块,接收串口数据

2、设计PWM波产生模块,产生的PWM占空比可调

3、使用串口接收数据调整占空比

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

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. Testbench

6. 仿真图

部分代码展示:

//将接收的串行数据并行输出
//波特率为9600bit/s
//带有奇偶校验位
module UART_rx(clk,rst_p,rs232_rx,receive_data);
input      clk;//1M
input      rst_p;//高电平复位
input      rs232_rx;//串行接收数据       
output [7:0] receive_data;//接收数据
reg [7:0] receive_data;//接收数据
wire[15:0]  bps_cnt;//波特率分频计数器
wire[15:0]  bps_cnt_mid;//波特率分频计数器/2
assign bps_cnt=16'd104;//1000000/9600=104
assign bps_cnt_mid=16'd52;
reg       rx_mid=0;                              
reg       rx_en=0;
reg[15:0]  cnt=16'd0;
reg[3:0]  num=4'd0;
reg rx_r0,rx_r1; 
always @(posedge clk or posedge rst_p)      //rs232_rx下降沿检测
if(rst_p)//复位
   begin
    rx_r0<=1'b1;
    rx_r1<=1'b1;
   end
else//D触发器打2拍
   begin
    rx_r0<=rs232_rx;//延迟1时钟
    rx_r1<=rx_r0;//延迟2时钟
   end
wire    rx_req;//rs232_rx下降沿信号
assign  rx_req = ~rx_r0 & rx_r1; //rs232_rx下降沿,rx有下降沿表示起始位
wire    rx_done;//接收完成信号
assign  rx_done = (cnt==bps_cnt_mid && num==4'd10); ////1位起始位、8位数据位、1位校验位,停止位1位,共11位,即0~10。
always @(posedge clk or posedge rst_p)             
if(rst_p)
   rx_en<=1'b0;
else
   if(rx_req)//rs232_rx下降沿信号
      rx_en<=1'b1;//启动接收
   else
      if(rx_done)//接收完成
         rx_en<=1'b0;//停止接收
      else
         rx_en<=rx_en;
always @(posedge clk or posedge rst_p)
if(rst_p)
   rx_mid<=1'b0;
else
   if(rx_en)//启动接收
      if(cnt==bps_cnt_mid)
      rx_mid<=1'b1;//接收时,在信号中间采样,即计数值的一半处
   else
      rx_mid<=1'b0;
   else
      rx_mid<=1'b0;
always @(posedge clk or posedge rst_p)
if(rst_p)
   cnt<=16'd0;
else
   if(rx_done)//接收完成
      cnt<=16'd0;
else
     if(rx_en)//接收时
       if(cnt==bps_cnt)//按波特率计数
          cnt<=16'd0;
       else
         cnt<=cnt+16'b1;//计数
     else
       cnt<=16'd0;

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

  • 2-2409191PS44U.doc
    下载

相关推荐