บทช่วยสอนเริ่มต้นฉบับย่อนี้จะแจกแจงตรรกะ D Flip-Flop เพื่อให้คุณสามารถสร้างวงจรที่ดีขึ้นได้ในวันนี้
D Flip-Flop เป็นวงจรที่เปิดใช้งานด้วยขอบ ซึ่งรวมหมุด D คู่หนึ่งเพื่อจัดเก็บบิต มักใช้เป็นหน่วยการสร้างพื้นฐานในอุปกรณ์อิเล็กทรอนิกส์ดิจิทัลเพื่อสร้างตัวนับหรือบล็อกหน่วยความจํา เช่น การลงทะเบียนการแปล
ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีการทํางาน ตารางความจริง และวิธีสร้างตารางความจริงโดยใช้ลอจิกเกต
วงจรสลักและวงจรพลิกบางครั้งจะซ้อนกันเพราะทั้งคู่สามารถเก็บบิต (1 หรือ 0) บนเอาต์พุตได้ ในทางตรงกันข้ามกับวงจรล็อควงจรพลิกเป็นวงจรซิงโครนัสที่ต้องการสัญญาณนาฬิกา (Clk) วงจรพลิก D จะเก็บค่าใหม่จากอินพุต D เท่านั้นเมื่อนาฬิกาเปลี่ยนจาก 0 เป็น 1 (ปีกขึ้น) หรือจาก 1 เป็น 0 (ปีกล่าง)
AD Flip-Flop ประกอบด้วย D-pin สองตัวคุณสามารถดู D-pin ที่อัปเดตที่ขอบยกด้านล่าง:

แผนภาพเวลาของวงจรนี้แสดงไว้ด้านล่าง แสดงให้เห็นว่า Flip-Flop D ถูกเปิดใช้งานโดยขอบด้านบนอย่างไร เอาต์พุต Q จะเปลี่ยนเฉพาะกับค่าอินพุต D ในเวลาที่นาฬิกาเพิ่มขึ้นจาก 0 เป็น 1
เนื่องจากเอาต์พุต Q จะเปลี่ยนเฉพาะเมื่ออินพุตนาฬิกาเปลี่ยนจาก 0 เป็น 1 คุณจะได้รับตารางความจริงต่อไปนี้:
ในแถวแรกและแถวสุดท้ายของตารางความจริง อินพุตนาฬิกาคือ 0 และ 1 ไม่มีสัญญาณใดที่เป็นสัญญาณขอบ ดังนั้นจึงไม่มีอะไรเกิดขึ้น เอาต์พุต Q จะคงค่าเดิมไว้ ในกรณีนี้ไม่ว่าค่าของอินพุต D จะเป็นเท่าใดเอาต์พุต Q จะไม่เปลี่ยนแปลงมันจะยังคงเหมือนเดิม นี่คือวิธีที่วงจรนี้ "จดจํา" เล็กน้อย
ลองดูแถวกลางสองแถว ที่นี่ อินพุตนาฬิกาจะเพิ่มขึ้นจาก 0 เป็น 1 ดังนั้นคุณจึงมีขอบที่เพิ่มขึ้น ซึ่งหมายความว่าหากอินพุต D เท่ากับ 0 เอาต์พุต Q จะถูกรีเซ็ตเป็น 0 หากอินพุต D เท่ากับ 1 เอาต์พุต Q จะถูกตั้งค่าเป็น 1
หมุด D Flip-Flop ที่คุณพบในชิปที่พร้อมใช้งาน เช่น CD4013 มักจะมีอินพุต Set และ Reset ที่คุณสามารถใช้เพื่อบังคับให้ D Flip-Flop เริ่มต้นด้วยค่า 1 หรือ 0 บนเอาต์พุต การใช้หมุดเหล่านี้บางครั้งเรียกว่า D Flip-Flop "ที่ตั้งไว้ล่วงหน้า"
ข้อเสียอย่างหนึ่งของพิน D คือเอาต์พุตสามารถเปลี่ยนแปลงได้ตลอดเวลาเมื่อพินทริกเกอร์เป็น 1 ดังนั้นหากคุณใช้สัญญาณนาฬิกากับ D-pin เอาต์พุต Q ก็สามารถเปลี่ยนแปลงได้ในช่วงพัลส์บวกที่ขยายออกไป
ในแผนภาพเวลาด้านบน คุณจะเห็นว่าในรอบนาฬิกา เอาต์พุตเป็นทั้ง 1 และ 0 เนื่องจากอินพุต D เปลี่ยนไปตลอดนาฬิกา นั่นเป็นสิ่งที่คุณไม่ต้องการให้เกิดขึ้นในระบบดิจิทัลที่มีการจับเวลา
ในการทําให้ฟลิปฟล็อปนี้เปลี่ยนเอาต์พุตที่ขอบที่เพิ่มขึ้นของสัญญาณนาฬิกาเท่านั้นคุณสามารถสร้างวงจรฟลิปฟล็อป Host-Servant D ซึ่งต้องใช้พิน D สองตัวรวมกันดังนี้:
เอาต์พุตจากพินหลักจะเปลี่ยนเป็นอินพุต D เมื่ออินพุต Clk เท่ากับ 0
ถ้า Clk เท่ากับ 0 แสดงว่าอินพุต Enable ของสลักย่อยจะเท่ากับ 0 ด้วย ดังนั้นจึงไม่มีอะไรเกิดขึ้นกับเอาต์พุตของสลักนี้
แต่ในขณะที่ Clk เพิ่มขึ้นจาก 0 เป็น 1 (ขอบที่เพิ่มขึ้น) อินพุต Enable ของสลักย่อยจะถูกตั้งค่าเป็น 1 นั่นหมายความว่าข้อมูลใด ๆ ที่เอาต์พุตของพินหลัก ณ เวลาที่ Clk เพิ่มขึ้นจาก 0 เป็น 1 จะถูกบันทึกลงในเอาต์พุตของพินรอง
หากคุณแทนที่สัญลักษณ์สําหรับ D-pin ที่สร้างด้วยพอร์ต NAND คุณจะได้รับ:

ฟลิปฟล็อป D เป็นวงจรที่มีประโยชน์มาก คุณสามารถรวมฟลิปฟล็อป D หลายตัวเพื่อสร้างรีจิสเตอร์การแปลและตัวนับ เช่น วงจรเหล่านี้ถูกใช้กันมากในอุปกรณ์อิเล็กทรอนิกส์ดิจิทัล อย่างไรก็ตาม คุณไม่จําเป็นต้องสร้างเองตั้งแต่เริ่มต้น คุณสามารถใช้ชิป CD4013 ที่มีฟลิปฟล็อป D สองตัวแทนได้
ตัวอย่างวงจร: การลงทะเบียนการกระจัด
ในการสร้างรีจิสเตอร์กะ ให้เชื่อมต่อเอาต์พุตของฟลิปฟล็อปหนึ่งตัวเข้ากับอินพุตของฟลิปฟล็อปถัดไป บิตใหม่จะเข้าสู่ฟลิปฟล็อปแรกทางด้านซ้าย บิตที่เก็บไว้ในรองเท้าแตะอื่นๆ จะถูกเลื่อนไปทางขวาหนึ่งตําแหน่ง
สิ่งนี้มีประโยชน์ตัวอย่างเช่นเพื่อรับพินเอาต์พุตเพิ่มเติมจาก Arduino หรือไมโครคอนโทรลเลอร์อื่น ๆ . ในการควบคุมการลงทะเบียนการแปล คุณต้องมีพินข้อมูลและพินนาฬิกา ดังนั้นด้วยขาเพียงสองขาจาก Arduino คุณสามารถควบคุมพินด้านนอกได้มากเท่าที่คุณต้องการโดยใช้การลงทะเบียนการแปล
ตัวอย่างวงจร: ตัวนับวงแหวน
หากคุณใช้เอาต์พุตจากฟลิปฟล็อปตัวสุดท้ายในรีจิสเตอร์กะและเชื่อมต่อกับอินพุตของฟลิปฟล็อปตัวแรก คุณจะได้ตัวนับวงแหวน ตั้งค่าฟลิปฟล็อปตัวใดตัวหนึ่งที่ขึ้นต้นด้วย 1 จากนั้นค่า 1 นี้จะถูกเลื่อนอย่างต่อเนื่องใน Ring Counter
IC 4017 เป็นชิปที่มีฟังก์ชันการทํางานคล้ายกัน แต่มีเอาต์พุตสูงสุด 10 เอาต์พุตแทนที่จะเป็นเพียง 4 เอาต์พุตดังข้างต้น สิ่งนี้ทําให้เป็นชิปที่น่าสนใจซึ่งคุณสามารถใช้สร้างแถบ LED ของ Knight Rider เป็นต้น