您好,欢迎来到好走旅游网。
搜索
您的当前位置:首页串口通信发送接口

串口通信发送接口

来源:好走旅游网
串行通信发送接口

功能:通过DE2的拨码开关来选择要发送的数据,当DE2上的某一个独立按键被

按下的时候,数据会通过RS232串口发送到PC。

基本要求:掌握串口通信协议,完成串口数据的发送功能

硬件验证要求:在PC机通过“串行通信接口调试助手”软件接收由DE2发

送过来的数据。

在完成基本要求的基础上,可以通过拨码开关来选择奇偶校验的类别。

Verilog HDL程序代码:

module write(clk,rst,dout_ser,button,txclk); input[7:0]button;

input clk; //时钟信号 input rst; // 复位信号 reg [13:0]q; reg m;

reg[9:0] dout_buf,dout_buf1; //输出缓冲寄存器,加了起停位 output reg dout_ser; //串行数据输出

output reg txclk; //发送数据时钟。发数据取9600的波特率 reg txdone=1'b1; //一个字节数据传输完毕标志 reg[3:0] state_tx=0;

always @(posedge clk) //分频,波特率为9600 if(q==2604) begin

q<=2605; txclk<=1; end

else if(q==5208) begin q<=0;

txclk<=0; end else

q<=q+1;

always@(posedge txclk or posedge rst) begin

if(rst) begin

dout_ser<=1'bz; state_tx<=0; txdone<=1'b0; end

else

begin

dout_buf={1'b1,button[7:0],1'b0}; begin //DE2开关检测 if(m==0) begin

dout_buf1<=dout_buf; m<=m+1; end end

begin

if(dout_buf1-dout_buf!=0) begin m<=0;

state_tx<=0; end end begin

case(state_tx) 0:begin

dout_ser<=dout_buf[0];state_tx<=state_tx+1;end

1:begin

dout_ser<=dout_buf[1];state_tx<=state_tx+1;end

2:begin

dout_ser<=dout_buf[2];state_tx<=state_tx+1;end

3:begin

dout_ser<=dout_buf[3];state_tx<=state_tx+1;end

4:begin

dout_ser<=dout_buf[4];state_tx<=state_tx+1;end

5:begin

dout_ser<=dout_buf[5];state_tx<=state_tx+1;end

6:begin

dout_ser<=dout_buf[6];state_tx<=state_tx+1;end

7:begin

dout_ser<=dout_buf[7];state_tx<=state_tx+1;end

8:begin

dout_ser<=dout_buf[8];state_tx<=state_tx+1;end

9:begin

dout_ser<=dout_buf[9];state_tx<=state_tx+1;end

default dout_ser<=1'bz; endcase end end end endmodule

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- haog.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务