预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第页共NUMPAGES10页第PAGE\*MERGEFORMAT10页共NUMPAGES\*MERGEFORMAT10页----本模块的功能是验证实现和PC机进行基本的串口通信的功能。需要在--PC机上安装一个串口调试工具来验证程序的功能。--程序实现了一个收发一帧10个bit(即无奇偶校验位)的串口控--制器,10个bit是1位起始位,8个数据位,1个结束--位。串口的波特律由程序中定义的div_par参数决定,更改该参数可以实--现相应的波特率。程序当前设定的div_par的值是0x104,对应的波特率是--9600。用一个8倍波特率的时钟将发送或接受每一位bit的周期时间--划分为8个时隙以使通信同步.--程序的工作过程是:串口处于全双工工作状态,按动key2,CPLD向PC发送皐elcome"--字符串(串口调试工具设成按ASCII码接受方式);PC可随时向CPLD发送0-F的十六进制--数据,CPLD接受后显示在7段数码管上。libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYUARTISPORT(clk:INstd_logic;rst:INstd_logic;rxd:INstd_logic;--串行数据接收端txd:OUTstd_logic;--串行数据发送端en:OUTstd_logic_vector(7downto0);--数码管使能seg_data:OUTstd_logic_vector(7DOWNTO0);--数码管数据key_input:INstd_logic--按键输入);ENDUART;ARCHITECTUREarchOFUARTIS--//////////////////innerreg////////////////////SIGNALdiv_reg:std_logic_vector(15DOWNTO0);--分频计数器,分频值由波特率决定。分频后得到频率8倍波特率的时钟SIGNALdiv8_tras_reg:std_logic_vector(2DOWNTO0);--该寄存器的计数值对应发送时当前位于的时隙数SIGNALdiv8_rec_reg:std_logic_vector(2DOWNTO0);--寄存器的计数值对应接收时当前位于的时隙数SIGNALstate_tras:std_logic_vector(3DOWNTO0);--发送状态寄存器SIGNALstate_rec:std_logic_vector(3DOWNTO0);--接受状态寄存器SIGNALclkbaud_tras:std_logic;--以波特率为频率的发送使能信号SIGNALclkbaud_rec:std_logic;--以波特率为频率的接受使能信号SIGNALclkbaud8x:std_logic;--以8倍波特率为频率的时钟,它的作用是将发送或接受一个bit的时钟周期分为8个时隙SIGNALrecstart:std_logic;--开始发送标志SIGNALrecstart_tmp:std_logic;--开始接受标志SIGNALtrasstart