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

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

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

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
    下载

相关推荐