4、《=0;/*寄存器变量bclk赋值为逻辑0,使该脉冲信号复位为低电平,以低电平作为开始*/ end elsebegin /*50MHz除以153600(UART实际频率)等于325.5即50_000_000/153600=325.5(波特率除数)*/ if(cnt》324)begin/*如果cnt的数值大于324,即cnt计数脉冲数等于325(0-324个脉冲)*/ cnt《=0;/*50MHz主频信号计数器cnt值,被非阻塞方式复位*/ bclk《=1;/*串口波特率时钟脉冲信号bclk赋值为逻辑1,使该脉冲信号跳变到高电平周期*/ end elsebegin
5、 cnt《=cnt+1;/*50MHz主频信号计数器cnt值被非阻塞方式增量赋值(加1)*/ bclk《=0;//波特率发生器时钟脉冲信号bclk被非阻塞方式赋值为’0’, //使该脉冲信号跳变到低电平周期*/ end end end endmodule 波特率计算 在串行通信中,收发双方对发送或接收的数据速率要有一定的约定,我们通过软件对MCS—51串行口编程可约定四种工作方式。其中,方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率决定。 串行口的四种工作方式对应着三种波特率。由于输人的移位时钟的