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

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

软件:VIVADO

语言:Verilog

代码功能:

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

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

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

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


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


演示视频:

设计文档:

设计文档.doc

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;

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 可通过UART串口修改PWM占空比设计Verilog代码VIVADO仿真

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员