JK触发器实现四分频
时间: 2024-03-10 21:40:22 浏览: 332
JK触发器可以通过连接实现二分频和四分频电路。下面是JK触发器实现四分频的步骤:
1.将第一个JK触发器的J、K端连在一起接高电平“1”,第二个JK触发器的J、K端连接在一起,接到第一个JK触发器的输出端Q。
2.输入1kHz的方波。
3.用示波器分别观察和记录CP0、Q0、Q1的波形。
4.理解二分频,四分频的概念。
代码实现如下:
```python
# JK触发器实现四分频
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
# 设置引脚
CP0 = 11
J0 = 13
K0 = 15
Q0 = 19
J1 = 21
K1 = 23
Q1 = 29
# 设置引脚模式
GPIO.setup(CP0, GPIO.OUT)
GPIO.setup(J0, GPIO.OUT)
GPIO.setup(K0, GPIO.OUT)
GPIO.setup(Q0, GPIO.IN)
GPIO.setup(J1, GPIO.OUT)
GPIO.setup(K1, GPIO.OUT)
GPIO.setup(Q1, GPIO.IN)
# 初始化引脚状态
GPIO.output(CP0, GPIO.LOW)
GPIO.output(J0, GPIO.HIGH)
GPIO.output(K0, GPIO.HIGH)
GPIO.output(J1, GPIO.HIGH)
GPIO.output(K1, GPIO.HIGH)
# 产生1kHz的方波
def square_wave():
while True:
GPIO.output(CP0, GPIO.HIGH)
time.sleep(0.0005)
GPIO.output(CP0, GPIO.LOW)
time.sleep(0.0005)
# 观察和记录CP0、Q0、Q1的波形
def observe_wave():
while True:
print("CP0: ", GPIO.input(CP0))
print("Q0: ", GPIO.input(Q0))
print("Q1: ", GPIO.input(Q1))
time.sleep(1)
# 启动方波和观察波形的线程
try:
t1 = threading.Thread(target=square_wave)
t2 = threading.Thread(target=observe_wave)
t1.start()
t2.start()
except:
print("Error: unable to start thread")
# 清理GPIO口
GPIO.cleanup()
```
阅读全文