**เจเคฟลิปฟล็อป** (อังกฤษ: JK-FlipFlop) เป็นฟลิปฟล็อปที่ทำงานตามตารางสถานะถัดไปด้านล่าง จุดประสงค์สำคัญคือ การใช้แทนอาร์เอสฟลิปฟล็อปซึ่งใช้ค่า R=1 S=1 ไมได้เพราะเกิดภาวะแข่งขัน **เจเคฟลิปฟล็อป** จึงใช้ช่องว่างนี้ขยายให้เกิดการเปลี่ยนสถานะแบบใหม่นั่นคือ การแกว่งค่า (toggle) แทน **เจเคฟลิปฟล็อป** ถูกนำไปต่อสร้าง ฟลิปฟล็อปอื่นๆมาก และสร้างวงจร (implement) ได้ง่าย เพราะมีDon't Care ในตารางสภาวะกระตุ้นมาก

ตารางสถานะถัดไปของเจเคฟลิปฟล็อป

| {\displaystyle J} | {\displaystyle K} | {\displaystyle Q}ปัจจุบัน | สภาวะ |
| --- | --- | --- | --- |
| 0 | 0 | {\displaystyle Q}ก่อนหน้านี้ | คงที่ (hold) |
| 0 | 1 | {\displaystyle 0} | ล้างค่า (reset) |
| 1 | 0 | {\displaystyle 1} | ตั้งค่า (set) |
| 1 | 1 | {\displaystyle {\overline {Q}}}ก่อนหน้านี้ | เปลี่ยนค่า (toggle) |

ตารางสภาวะกระตุ้น

| {\displaystyle Q} | {\displaystyle Q+} | {\displaystyle J} | {\displaystyle K} |
| --- | --- | --- | --- |
| 0 | 0 | 0 | {\displaystyle x} |
| 0 | 1 | 1 | {\displaystyle x} |
| 1 | 0 | {\displaystyle x} | 1 |
| 1 | 1 | {\displaystyle x} | 0 |

การสร้างเจเคฟลิปฟล็อบ
---------------------

J-K ฟลิปฟล็อป จะทำโดยนำ R-S ฟลิปฟล็อปและเพิ่มวงจรลอจิกเข้าไปบางส่วนนอกจากนี้ J-K ฟลิปฟล็อปยังเป็นฟลิปฟล็อปที่สามารถนำไปสร้างเป็นฟลิปฟล็อปประเภทอื่น ๆ ได้อีกด้วย

ในรูปที่1 จะนำเอาเกดแบบ AND สองตัวมาต่อกับ R-S ฟลิปฟล็อปแบบใช้สัญญาณกระตุ้นโดยนำเอาต์พุต Q และ Q- มาป้อนกลับให้เกตแต่ละตัว การป้อนกลับนี้จะทำให้สภาวะที่ Q และ Q- มีค่าเท่ากันนั้นหายไป วงจรนี้จะเรียกว่า J-K ฟลิปฟล็อป โดยมีสัญญาณเข้าสองขาคือ J และ K 

รูปที่ 1 วงจรและสัญลักษณ์ของ JK-FlipFlop

การทำงานของเจเคฟลิปฟล็อบ
------------------------

ฟลิปฟล็อปตามรูป เมื่อสัญญาณกระตุ้น CLK เป็นลอจิก "1" จะเกิดการทำงาน ถ้าเป็นลอจิก "0" จะอยู่ในสภาวะแลตช์ข้อมูล จากรูปจะพบอินพุต J และ K จะมีค่าเป็นไปได้ทั้งหมด 4 รูปแบบ โดยพิจารณาได้ดังต่อไปนี้ (ดูที่รูปประกอบ)

### J = "0" และ K = "0"

กรณีนี้จะทำให้ขา S และ R ของ R-S ฟลิปฟล็อปเป็นลอจิก "0" ทั้งคู่ ทำให้ฟลิปฟล็อปอยู่ในสภาวะคงค่าข้อมูล (latch) โดย Q และ Q- จะเก็บค่าเดิมเอาไว้

### J = "0" และ K = "1"

กรณีนี้ขา S จะเป็น "0" ถ้าภาวะเดิมของฟลิปฟล็อปมี Q = "1" และ Q- = "0" จะทำให้อินพุต R เป็น "1" ดังนั้น S = "0" และ R = "1" หมายความว่าฟลิปฟล็อปอยู่ในสถานะล้างค่า (reset) และถ้าภาวะเดิมของฟลิปฟล็อปมี Q = "0" และ Q- = "1" จะทำให้ขา R เป็น "0" ดังนั้น เมื่อ S = "0" (J = "0") ฟลิปฟล็อปจะคงค่าข้อมูล (latch) ทำให้ Q = "0" และ Q- = "1" ตามเดิม
สรุปได้ว่า ถ้า J = "0" และ K = "1" จะทำให้ J-K ฟลิปฟล็อป อยู่ในสภาวะถูกล้างค่า (reset)

### J = "1" และ K = "0"

กรณีนี้อาศัยหลักการวิเคราะห์ตามแบบที่สอง จะพบว่าจะทำให้ฟลิปฟล็อปอยู่ในสภาวะตั้งค่า (set)

### J = "1" และ K = "1"

กรณีนี้ถ้าภาวะเดิม Q = "1" และ Q- = "0" ทำให้อินพุต S เป็น "0" และ R เป็น "1" จะทำให้ฟลิปฟล็อปถูกล้างค่า (reset) โดย Q จะเปลี่ยนเป็นลอจิก "0" 
ถ้าภาวะเดิม Q = "0" และ Q- = "1" ทำให้อินพุต S เป็น "1" และ R เป็น "0" จะทำให้ฟลิปฟล็อปถูกตั้งค่าใหม่ (set) โดย Q จะเป็นลอจิก "1" 
ดังนั้นสรุปได้ว่าถ้า J = "1" และ K = "1" เมื่อมีสัญญาณพัลส์เข้ามา เอาต์พุตของฟลิปฟล็อปจะเปลี่ยนเป็นค่าตรงกันข้ามจากสภาวะเดิม เราเรียกการเปลี่ยนแปลงนี้ว่า Toggle Action หรือการกลับค่าของสัญญาณ การทำงานของ J-K ฟลิปฟล็อป เมื่อมีสัญญาณกระตุ้นเข้ามาสามารถสรุปได้ดังตารางต่อไปนี้

รูปที่ 2 ตารางแสดงสถานะของสัญญาณต่างของ JK-Flipflop

มาสเตอร์-สเลฟ เจเคฟลิปฟล็อบ
---------------------------

เนื่องจากวงจรของ J-K ฟลิปฟล็อป จะต้องนำสัญญาณทางเอาต์พุตป้อนกลับมาทางอินพุต การใช้งานบางประเภทจะทำให้ฟลิปฟล็อปทำงานผิดพลาดได้ ถ้าหากมีการใช้ J-K ฟลิปฟล็อป แบบมีสัญญาณพัลส์ควบคุม (Cp) จะนำ J-K ฟลิปฟล็อป สองตัวมาต่อกัน เรียกว่า Master-Slave J-K ฟลิปฟล็อป โดยตัวแรก เรียกว่า Master ตัวที่สอง เรียกว่า Slave ดังรูป โดยให้ขา Q ของ Master ต่อกับขา J ของ Slave และ Q- ของ Master ต่อกับขา K ของ Slave

รูปที่ 3 JK-FlipFlop แบบ Master-Slave ที่กระตุ้นด้วยลอจิกบวก
จากรูป จะพบว่าถ้าให้สัญญาณควบคุมเป็น "1" จะทำให้เกตแบบ AND ตัวที่ 1 และ 2
ส่งข้อมูลจาก J,K เข้าไปใน Master และขณะนั้นตัว Slave จะอยู่ในสภาวะคงค่าข้อมูล (latch) แต่ถ้าสัญญาณควบคุมเป็น "0" จะทำให้ตัว Master อยู่ในสภาวะคงค่าข้อมูล ส่วนตัว Slave จะรับข้อมูลจาก Q และ Q- ของ Master เข้ามา และทำงานตามที่ตัว Master ได้คงค่าข้อมูลเอาไว้ สำหรับสัญลักษณ์ของ Master –Slave J-K ฟลิปฟล็อป จะเหมือนกับ J-K ฟลิปฟล็อป ธรรมดา

รูปที่ 4 การทำงานของ Master-Slave

  

ฟลิปฟล็อปประเภทนี้ถ้ามีข้อมูลเข้ามาทางขา J และ K เอาต์พุตจะเปลี่ยนแปลงเมื่อมีสัญญาณเข้ามาทาง Cp (เปลี่ยนจากลอจิก "1" เป็นลอจิก "0" หรือเปลี่ยนจากลอจิก "0" เป็นลอจิก "1") สัญลักษณ์ของ J-K ฟลิปฟล็อปแบบกระตุ้นด้วยขอบขาขึ้นและขาลงแสดงได้ดังรูป

รูปที่ 5 สัญลักษณ์ของ JK-FlipFlop ที่กระตุ้นด้วยขอบบวกและขอบลบ
ในรูป (ก) ค่าเอาต์พุต Q ของฟลิปฟล็อปจะเปลี่ยนแปลงเมื่อมีขอบขาขึ้นเข้ามาหรืออินพุต Cp เปลี่ยนจากลอจิก "0" เป็นลอจิก "1" ส่วนรูป (ข) จะเป็นการกระตุ้นด้วยขอบขาลง เอาต์พุต Q จะเปลี่ยนแปลงเมื่ออินพุต Cp เปลี่ยนจากลอจิก "1" เป็นลอจิก "0" ในขาของไอซีประเภทนี้จะเขียนลาเบลเป็น Cp การทำงานของ J-K ฟลิปฟล็อปที่กระตุ้นด้วยขอบขาลงแสดงได้ดังรูป (ข)

รูปที่ 6 (ก) และ 6 (ข) ฟังก์ชันการทำงานของฟลิปฟล็อปที่กระตุ้นด้วยขอบขาลง

ไอซีเจเคฟลิปฟล็อป
-----------------

ไอซีเบอร์ 7476 และ 74LS76 เป็นไอซี J-K ฟลิปฟล็อปที่นิยมใช้กันมาก โดยภายในไอซีจะประกอบด้วย J-K ฟลิปฟล็อปสองตัว และมีขาอินพุตอะซิงโครนัสสองขา (RD และ SD) ขาอินพุตซิงโครนัสสามขา (Cp , J , K) ไอซีเบอร์ 7476 จะกระตุ้นด้วยขอบขาขึ้น และภายในฟลิปฟล็อปแต่ละตัวจะมีโครงสร้างแบบ Master – Slave ส่วนเบอร์ 74LS76 จะกระตุ้นด้วยขอบขาลง ดังรูป เป็นสัญลักษณ์และลักษณะขาของ 74LS76 ในรูป (ก) และค่าในตารางจะเห็นว่า ขาอินพุตอะซิงโครนัส RD และ SD จะแอกทีฟลอจิก "0" โดยถ้าขา SD ถูกเซตเป็นลอจิก "0" จะทำให้เอาต์พุต Q เป็นลอจิก "1" และถ้าขา RD เป็นลอจิก "0" จะทำให้ฟลิปฟล็อปถูกรีเซตเอาต์พุต Q จะเป็นลอจิก "0"

รูปที่ 8 สัญลักษณ์ทางลอจิกของฟลิปฟล็อปและลักษณะขาของไอซี 74LS76
รูปที่ 9 สัญลักษณ์ทางลอจิกของฟลิปฟล็อปและลักษณะขาของไอซี 74LS76
ในการใช้งานแบบซิงโครนัสจะใช้ขาอินพุต J , K และ Cp และให้ลอจิก "1" กับขาอะซิงโครนัส RD และ SD โดยอินพุต J-K จะถูกอ่านเข้าไปในฟลิปฟล็อปหลังจากที่ขอบขาลงเข้ามายัง Cp เป็นเวลา 20 ns ดังนั้นในการใช้งานเราต้องอินพุตข้อมูลกับ J-K ก่อนเป็นเวลา 20 ns เนื่องจากเวลาหน่วงภายในฟลิปฟล็อปเอง

ดูเพิ่ม
-------

* ฟลิปฟล็อป
* อาร์เอสฟลิปฟล็อป
* ดีฟลิปฟล็อป
* ทีฟลิปฟล็อป