寄存器是什么?:

cubemx 计数器 计数器clrn_寄存器

先讲讲基本寄存器:

cubemx 计数器 计数器clrn_cubemx 计数器_02

不出所料,寄存器是用触发器做出来的,拿其中的一个输出当存储就可以了。这里使用了带有带有异步清0端的D.(CLRN就是清零的。注意到那个非了吗?低电平有效)

Clrn=0,当然是清零了。记住了,异步的输入端是不用看clk和ce的脸色的,想清零就清零。想要保持的话,就不能清零(Clrn=1),还不能受外界干扰,Lord(也就是CE)还得是0,把触发器锁住不许你改。想要改的话,CE=1(也就是Lord),ClrN=1(别给我清零了)加上时钟就可以了。En是控制最上面的三态器件的,也就控制了读取。

cubemx 计数器 计数器clrn_cubemx 计数器_03

可以看到,就是用EF控制使用ABCD中的哪一个寄存器,读出数据传给上面,用LdG,LdH控制要不要接受。

cubemx 计数器 计数器clrn_cubemx 计数器_04

一开始的时候X都是0,加上Y就是Y自己,结果送到D那,变成了Q,也就是X回来,又和Y加,结果又回到Q···只要CLK来一回就加一会。

cubemx 计数器 计数器clrn_嵌入式硬件_05

cubemx 计数器 计数器clrn_触发器_06

并行加法器需要一个叫超前进位的玄学东西,还不太懂。印象中那个很简单的结构是比较大小的。

cubemx 计数器 计数器clrn_cubemx 计数器_07

cubemx 计数器 计数器clrn_触发器_08

接下来讲移位寄存器:

cubemx 计数器 计数器clrn_触发器_09

cubemx 计数器 计数器clrn_cubemx 计数器_10

 这个的用处只是加延迟。

cubemx 计数器 计数器clrn_cubemx 计数器_11

 每个都能输出,每位都有延迟,这下就有“向右移”的效果了。

cubemx 计数器 计数器clrn_嵌入式硬件_12

这下就可以转转转了,不过有点浪费状态,还需要预制。

现在介绍可以双向移位的:

cubemx 计数器 计数器clrn_cubemx 计数器_13

这个功能的实现非常复杂,可以通过算逻辑式来判断:

cubemx 计数器 计数器clrn_嵌入式硬件_14

cubemx 计数器 计数器clrn_寄存器_15

cubemx 计数器 计数器clrn_寄存器_16

cubemx 计数器 计数器clrn_嵌入式硬件_17

这里要注意一下,上面一直没提CLK是因为他到处都是:

cubemx 计数器 计数器clrn_cubemx 计数器_18

节拍的脉冲要比一个CLK要大,否则可能会输不进去,错过时机。

 

cubemx 计数器 计数器clrn_触发器_19

用verilog实现的例子,都很简单:

cubemx 计数器 计数器clrn_单片机_20

cubemx 计数器 计数器clrn_cubemx 计数器_21

接下来学计数器:

cubemx 计数器 计数器clrn_触发器_22

cubemx 计数器 计数器clrn_cubemx 计数器_23

cubemx 计数器 计数器clrn_触发器_24

cubemx 计数器 计数器clrn_cubemx 计数器_25

先介绍异步的:

cubemx 计数器 计数器clrn_单片机_26

cubemx 计数器 计数器clrn_寄存器_27

JK始终是1,所以会一直反转,一有机会就反转。可以看到,Q2反转的机会是Q3的两倍,Q1反转的机会又是Q2的两倍,所以会有8种情况。

cubemx 计数器 计数器clrn_cubemx 计数器_28

 现在是同步的:

cubemx 计数器 计数器clrn_触发器_29

cubemx 计数器 计数器clrn_cubemx 计数器_30

假如一开始在有效循环内,那当然好,直接开始循环了;假如不在,也不怕,这个是可以自启动的,从110到111最后自动进入循环。

cubemx 计数器 计数器clrn_嵌入式硬件_31

这个是刚才提到过的, 只会一直转转转(环形移位寄存器)。

cubemx 计数器 计数器clrn_cubemx 计数器_32

可以看到,最后面那个(也就是Y0)是0的时候,就会向开头输入一个1,然后就开始不断变化·····

cubemx 计数器 计数器clrn_寄存器_33

cubemx 计数器 计数器clrn_寄存器_34

cubemx 计数器 计数器clrn_cubemx 计数器_35

 接下来就是用verilog实现的方法:

cubemx 计数器 计数器clrn_寄存器_36

cubemx 计数器 计数器clrn_寄存器_37

cubemx 计数器 计数器clrn_触发器_38

cubemx 计数器 计数器clrn_cubemx 计数器_39

接下来讲讲节拍发生器:

cubemx 计数器 计数器clrn_cubemx 计数器_40

感觉之前的计数器就是节拍发生器?

cubemx 计数器 计数器clrn_触发器_41

cubemx 计数器 计数器clrn_寄存器_42

可见我们之前看到的环形计数器就是节拍器。

cubemx 计数器 计数器clrn_cubemx 计数器_43

cubemx 计数器 计数器clrn_触发器_44