r323串口介绍.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
module serial(clk,rst,rxd,txd,en,seg_data,key_input,lowbit); input clk,rst; input rxd;//串行数据接收端 input key_input;//按键输入 output [7:0]en; output[7:0] seg_data; reg[7:0] seg_data; output txd;//串行数据发送端 output lowbit; ////////////////////inner reg//////////////////// reg[15:0] div_reg;//分频计数器,分频值由波特率决定。分频后得到频率8倍波特率的时钟 reg[2:0]??div8_tras_reg;//该寄存器的计数值对应发送时当前位于的时隙数 reg[2:0]??div8_rec_reg;//该寄存器的计数值对应接收时当前位于的时隙数 reg[3:0] state_tras;//发送状态寄存器 reg[3:0] state_rec;//接受状态寄存器 reg clkbaud_tras;//以波特率为频率的发送使能信号 reg clkbaud_rec;//以波特率为频率的接受使能信号 reg clkbaud8x;//以8倍波特率为频率的时钟,它的作用是将发送或接受一个bit的时钟周期分为8个时隙 reg recstart;//开始发送标志 reg recstart_tmp; reg trasstart;//开始接受标志 reg rxd_reg1;//接收寄存器1 reg rxd_reg2;//接收寄存器2,因为接收数据为异步信号,故用两级缓存 reg txd_reg;//发送寄存器 reg[7:0] rxd_buf;//接受数据缓存 reg[7:0] txd_buf;//发送数据缓存 reg[2:0] send_state;//每次按键给PC发送Welcome字符串,这是发送状态寄存器 reg[19:0] cnt_delay;//延时去抖计数器 reg start_delaycnt;//开始延时计数标志 reg key_entry1,key_entry2;//确定有键按下标志 //////////////////////////////////////////////// parameter div_par=16h104;//分频参数,其值由对应的波特率计算而得,按此参数分频的时钟频率是波倍特率的8? ? ? ? ? ? ? ? ? ? ? ?? ?//倍,此处值对应9600的波特率,即分频出的时钟频率是9600*8 //////////////////////////////////////////////// assign txd=txd_reg; assign lowbit=0; assign en=8//7段数码管使能信号赋值 always@(posedge clk ) begin ? ? ? ? if(!rst) begin ? ? ? ? ? ? ? ? cnt_delay=0; ? ? ? ? ? ? ? ? start_delaycnt=0; ? ? ? ???end ? ? ? ? else if(start_delaycnt) begin ? ? ? ? ? ? ? ? if(cnt_delay!=20d800000) begin ? ? ? ? ? ? ? ? ? ? ? ? cnt_delay=cnt_delay+1; ? ? ? ? ? ? ? ???end ? ? ? ? ? ? ? ? else begin ? ? ? ? ? ? ? ? ? ? ? ? cnt_delay=0; ? ? ? ? ? ? ? ? ? ? ? ? start_delaycnt=0; ? ? ? ? ? ? ? ???end ? ? ? ???end ? ? ? ? else begin ? ? ? ? ? ? ? ? if(!key_inputcnt_delay==0) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? start_delaycnt=1; ? ? ? ???end end always@(posedge clk) begin ? ? ? ? if(!rst) ? ? ? ? ? ? ? ? key_entry1=0; ? ? ? ? else begin ? ? ? ? ? ? ? ? if(key_entry2) ? ? ? ? ? ? ? ? ? ? ? ? key_entry1=0; ? ? ? ? ? ? ? ? else if(cnt_delay==20d8

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档