Professional Documents
Culture Documents
บทที่ 7 วงจรนับ - Digital
บทที่ 7 วงจรนับ - Digital
บทที่ 7 วงจรนับ - Digital
7 วงจรนับ
7-1
บทที่ 7 วงจรนับ
B A
JB QB JA QA
CK CK CK
KB QB’ KA QA’
“1”
7-2
บทที่ 7 วงจรนับ
7.1 วงจรนับ
วงจรนับเลขฐานสอง
วงจรนับเลขฐานสองเป็ นวงจรนับที่นิยมนํามาใช้งานกันมากโดยจะเป็ นการ
นําเอาฟลิปฟลอปมาต่อพ่วงกันหรื อต่ออันดับกัน เรี ยกเป็ นวงจรนับแบบไบนารี ริปเปิ ล
(Binary ripple counter) หรื อวงจรนับเลขฐานสอง ซึ่ งแบ่งออกได้เป็ น 2 แบบ ได้แก่
แบบนับขึ้น (Counter-up) และแบบนับลง (Counter-down) โดยถือหลักการว่า
7-3
บทที่ 7 วงจรนับ
(ก) ไดอะแกรมเวลา
QB (LSB)
QA (MSB)
(ข) สเตตไดอะแกรม
7-4
บทที่ 7 วงจรนับ
ใหม่ แต่ QA ไม่เปลี่ยนแปลง ซึ่ งก็คือได้ QA = 1 และ QB = 1 นัน่ คือ (11)2 หรื อ (3)10
จนกระทัง่ สัญญาณนาฬิกา CK ลูกที่ 4 ผ่านไป QB เปลี่ยนกลับมาเป็ น 0 ใหม่ และได้ทาํ
ให้ QA เปลี่ยนกลับมาเป็ น 0 ด้วย การทํางานดังกล่าวนี้ จะเห็นได้อย่างชัดเจนจากสเตต
ไดอะแกรมรู ปที่ 7.2(ข)
สําหรับตัวอย่างวงจรนับ 8 คือนับ 0 ถึง 7 หรื อ 000 ถึง 111 โดยใช้ฟลิปฟลอป
จํานวน 3 ตัว (3 บิต) และวงจรนับ 16 คือนับ 0 ถึง 15 หรื อ 0000 ถึง 1111 (4 บิต) โดย
ใช้ฟลิปฟลอปจํานวน 4 ตัว ต่อแบบอันดับกันแสดงในรู ปที่ 7.3 ทั้งนี้ ในการออกแบบ
วงจรนับ 2 ตามที่ได้กล่าวมาได้ใช้ตวั อักษร A เพื่อกําหนดให้เป็ นบิต MSB และตัวอักษร
B กําหนดให้เป็ นบิต LSB ซึ่ งถ้าเป็ นวงจรหลายบิต ฟลิปฟลอปที่รับสัญญาณนาฬิกาเข้า
มาโดยตรงจะเป็ นบิต LSB และบิตสุ ดท้ายที่รับสัญญาณนาฬิกาเข้ามาจะเป็ นบิต MSB ดัง
ตัวอย่างวงจรในรู ปที่ 7.3
D (LSB) C B (MSB) A
CK QD QC QB QA
TD TC TB TA
Q D’ Q C’ Q B’ Q A’
7-5
บทที่ 7 วงจรนับ
วงจรนับถอยหลัง
จากสเตตไดอะแกรมของวงจรนับ 4 ในรู ปที่ 7.2(ข) จะเห็นว่าเป็ นการนับขึ้น
นํามาเขียนใหม่แสดงในรู ปที่ 7.4 (เส้นประ) คือเป็ นลําดับการนับที่มีการทํางานเริ่ มจาก
ค่าน้อยไปค่ามากสุ ด และจะวนอยูอ่ ย่างนั้นจนกว่าจะไม่มีสัญญาณนาฬิกาเข้ามา ซึ่ งหาก
พิจารณาจากวงจรนับดังกล่าวนี้ จะเป็ นการนําเอาเอาต์พตุ QA และ QB มาใช้งาน ซึ่ งถ้าเรา
ได้พิจารณาเอาต์พุต QA และ QB แล้ว พบว่าเอาต์พุตจะเป็ นตรงกันข้ามแสดงการนับ
ดังสเตตไดอะแกรมรู ปที่ 7.4 เดียวกันนี้ (พิจารณาที่เส้นทึบ)
พิจารณาวงจรรู ปที่ 7.4 ตามที่ได้อธิ บายมาแล้วนั้น ในสภาวะเริ่ มต้นของการนับ
ที่เอาต์พตุ QA และ QB เป็ น (00)2 หรื อก็คือ (0)10 ซึ่งเอาต์พุตที่เป็ นตรงข้าม (Complement)
ได้แก่ QA และ QB จะเป็ น (11)2 หรื อ (3)10 และเมื่อสัญญาณนาฬิกาลูกแรกผ่านไป
เอาต์พุต QA และ QB ก็จะเปลี่ยนเป็ น (01)2 หรื อ (1)10 แต่ QA และ QB จะเป็ น (10)2 หรื อ
(2)10 พิจารณาเช่นเดียวกันนี้ ไปเรื่ อยๆ จนกระทัง่ เอาต์พุต QA และ QB เป็ น (11)2 เอาต์พุต
QA และ QB ก็จะเป็ น (00)2 ต่อจากนั้นจึงเริ่ มต้นนับใหม่ สรุ ปก็คือถ้าต้องการให้เป็ น
วงจรนับถอยหลัง ก็ให้นาํ เอาเอาต์พุตคอมพลีเมนต์ ( ) มาใช้งาน แสดงการต่อวงจรใน
รู ปที่ 7.5 ซึ่งเป็ นวงจรนับลงหรื อนับถอยหลัง 3 บิตพร้อมทั้งผลการจําลอง
7-6
บทที่ 7 วงจรนับ
7-7
บทที่ 7 วงจรนับ
7.2 วงจรนับแบบโมดูลสั
การสร้างวงจรนับที่กล่าวมาแล้วนั้น จะเป็ นการนับตามจํานวนของฟลิปฟลอป
คือ เป็ นการนับจํานวน 2n เมื่อ n คือจํานวนของฟลิปฟลอป เช่น ถ้าใช้ฟลิปฟลอป 4 ตัว
จะสามารถนับได้ 0-15 เรี ยกเป็ นการนับ 16 ซึ่งเมื่อนับครบแล้วก็กลับมาเริ่ มต้นที่ 0 ใหม่
แต่ในกรณี ที่ตอ้ งการนับไม่เป็ นจํานวน 2n เช่น นับ 9 หรื อก็คือนับ 0-8 โดยต้องใช้ฟลิป
ฟลอปจํานวน 4 ตัว (ซึ่งโดยปกติแล้วสามารถนับได้สูงสุ ดที่15) อีกตัวอย่างหนึ่ ง นับ 20
หรื อก็คือนับ 0-19 โดยต้องใช้ฟลิปฟลอปจํานวน 5 ตัว (สามารถนับได้สูงสุ ดที่ 31) ซึ่ ง
ในกรณี ที่นบั ไม่ถึงค่าสู งสุ ดนี้ เรี ยกว่าเป็ นวงจรนับแบบโมดูลสั (Modulus counter: Mod)
เช่น วงจรนับ 9 ก็เรี ยกว่า Mod-9 วงจรนับ 20 เรี ยกว่า Mod-20 แต่สาํ หรับการนับ 10
หรื อ Mod-10 จะมีชื่อเรี ยกเฉพาะว่าวงจรนับแบบดีเคด (Decade counter)
วงจรนับแบบโมดูลสั ที่กล่าวมานี้ ตอ้ งใช้ฟลิปฟลอปที่มีขาเคลียร์ (Clear) โดย
เมื่อนับถึงจํานวนที่ตอ้ งการแล้ว ต้องหาสัญญาณมาป้ อนที่ขาเคลียร์เพื่อให้กลับไปเริ่ มนับ
ที่ 0 ใหม่ เช่น วงจรนับ Mod-7 หรื อก็คือนับ 0-6 ดังนั้นจะเคลียร์ ดว้ ย 7 วงจรนับ Mod-14
หรื อก็คือนับ 0-13 จะเคลียร์ดว้ ย 14 เป็ นต้น ทั้งนี้ การเลือกจํานวนของฟลิปฟลอปก็ตอ้ ง
เลือกให้สามารถนับไปถึงได้ดว้ ย เช่น ถ้าต้องการนับ 12 ก็ตอ้ งใช้ฟลิปฟลอปจํานวน 4
ตัว เพราะถ้าใช้ฟลิปฟลอป 3 ตัว จะนับได้สูงสุ ดคือ 7 เป็ นต้น
7-8
บทที่ 7 วงจรนับ
QC (LSB) QB QA (MSB)
(1)
7-9
บทที่ 7 วงจรนับ
ช่วงเวลาเคลียร์ 101
1
CK
0
1
QC
0
1
QB 0
1
QA
0
(0) (1) (2) (3) (4) (0) (1) (2) (3)
เวลา
วงจร Mod-5 ที่ได้ออกแบบขึ้นในรู ปที่ 7.6 นี้ เป็ นการเริ่ มนับจาก 0 ถึง 4 และใช้
5 หรื อ (101)2 เป็ นอินพุตป้ อนกลับ (Feedback) ไปยังขา CLR ของฟลิปฟลอปเพื่อทําการ
เคลียร์ ทั้งนี้ สาํ หรับฟลิปฟลอป B นั้น เอาต์พุต QB = 0 เราจึงต้องใช้ QB = 1 เป็ นอินพุต
แทน สรุ ปก็คือต้องใช้ QA QB QC เป็ นอินพุตให้กบั เกตแบบแอนด์ ซึ่ งจะได้เอาต์พุต
ออกมาเป็ นลอจิก 1 (QA QB QC = 1) ป้ อนให้กบั ขาเคลียร์ ของฟลิปฟลอปทุกตัว
เพื่อให้เอาต์พุต Q ของฟลิปฟลอปทุกตัวกลับไปเริ่ มนับที่ 0 ใหม่ อย่างไรก็ตามสภาวะ
ลอจิกที่เข้ามายังขาเคลียร์ของฟลิปฟลอปนี้สามารถเป็ นได้ท้ งั 0 หรื อ 1 ขึ้นอยูก่ บั ประเภท
ของฟลิ ป ฟลอป แต่ สํา หรั บ วงจรที่ ไ ด้อ อกแบบขึ้ น นี้ ต้องจ่ า ยลอจิ ก ที่ มีส ภาวะเป็ น 1
สังเกตจากขาเคลียร์ ของฟลิปฟลอปเป็ นชนิด Active high (ไม่มีวงกลมเล็กอยูท่ ี่ขา CLR)
ทั้งนี้ ถา้ เป็ นการเคลียร์ดว้ ย 0 หรื อเป็ นชนิด Active low จําเป็ นต้องเปลี่ยนเกตแบบแอนด์
ให้เป็ นเกตแบบแนนด์
7-10
บทที่ 7 วงจรนับ
QC (LSB) QB QA (MSB)
QC QB QA
CK TC TB TA
7-11
บทที่ 7 วงจรนับ
QC (LSB) QB QA (MSB)
QC QB QA
CK TC TB TA
วิธีทาํ
QA QB QC
เลขฐาน 10
(MSB) (LSB)
0 0 0 0
1 0 0 1
2 0 1 0 ใช้สาํ หรับเคลียร์
3 0 1 1
4 1 0 0
5 1 0 1
ตอบ
7-12
บทที่ 7 วงจรนับ
วิธีทาํ
QA QB QC QD
เลขฐาน 10
(MSB) (LSB)
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0 ใช้สาํ หรับเคลียร์
9 1 0 0 1
10 1 0 1 0
11 1 0 1 1
7-13
บทที่ 7 วงจรนับ
QD (LSB) QC QB QA (MSB)
+5V
J Q J Q J Q J Q
CK
CK CK CK CK
K CLR Q’ K CLR Q’ K CLR Q’ K CLR Q’
7.3 วงจรนับแบบซิงโครนัส
วงจรนับแบบไบนารี ริปเปิ ลที่กล่าวมานั้น เรี ยกเป็ นวงจรนับแบบอะซิ งโครนัส
(Asynchronous counter) วงจรนับประเภทนี้ จะมีปัญหาในการใช้งานบางประเภท เช่น
ไม่สามารถทํางานที่ความถี่สูงได้ เนื่ องจากฟลิปฟลอปแต่ละตัวต่อกันแบบอันดับ ทําให้
การเปลี่ยนสภาวะของฟลิปฟลอปแต่ละตัว ต้องรอการเปลี่ยนสภาวะจากฟลิปฟลอปตัว
บิตตํ่าก่อน ดังนั้นการทํางานที่ความถี่สูงจึงอาจเกิดข้อผิดพลาดขึ้นได้ รวมถึงปั ญหาการ
หน่วงเวลา (Delay time) ในฟลิปฟลอปแต่ละตัวด้วย
วงจรนับแบบซิ งโครนัส (Synchronous counter) เป็ นวงจรนับที่สร้างขึ้นจาก
ชุดฟลิปฟลอปที่ได้รับการทริ ก (Trigger) ด้วยสัญญาณนาฬิกาในเวลาเดียวกัน ทําให้
ฟลิปฟลอปแต่ละตัวเปลี่ยนสเตตพร้อมกัน หรื อเรี ยกเป็ นวงจรนับแบบขนาน (Parallel
counter) แสดงการต่อวงจรในรู ปที่ 7.10 วงจรนับแบบนี้จึงสามารถทํางานที่ความถี่สูงได้
สําหรับการออกแบบวงจรซิ งโครนัส เช่นถ้าเราต้องการเลือกใช้ J-K ฟลิปฟลอป ก็เริ่ ม
จากตารางความจริ งของ J-K ฟลิปฟลอปซึ่ งแสดงอีกครั้งในตารางที่ 7.3 โดยได้แสดง
สภาวะเอาต์พตุ Q ทั้งกรณี ที่อินพุตเป็ นลอจิก 0 และ 1
7-14
บทที่ 7 วงจรนับ
อินพุต เอาต์พตุ
J K Q Qn+1 สภาวะการทํางาน
0 0
0 0 คงค่าเดิม
1 1
0 1
1 0 เซต
1 1
0 0
0 1 รี เซต
1 0
0 1
1 1 ท็อกเกิล
1 0
7-15
บทที่ 7 วงจรนับ
การเปลี่ยนสภาวะเอาต์พตุ การควบคุมอินพุต
Qn Qn+1 J K
0 0 0 X
0 1 1 X
1 0 X 1
1 1 X 0
7-16
บทที่ 7 วงจรนับ
ขั้นตอนการออกแบบวงจรนับแบบซิงโครนัส
เพื่อความเข้าใจการออกแบบวงจรซิ งโครนัส จึงได้อธิ บายพร้อมยกตัวอย่าง คือ
ให้ออกแบบวงจรนับลง (Counter down) แบบซิ งโครนัส 3 บิต ซึ่ งมีวิธีการออกแบบดัง
ขั้นตอนต่อไปนี้
111
000 110
001 101
010 100
011
7-17
บทที่ 7 วงจรนับ
7-18
บทที่ 7 วงจรนับ
QB QC QB QC
QA 00 01 11 10 QA 00 01 11 10
0 1 0 0 0 0 X X X X
1 X X X X 1 1 0 0 0
JA = QB QC KA = QB QC
7-19
บทที่ 7 วงจรนับ
QB QC
QA 0 0 01 11 10
0 1 0 X X
1 1 0 X X
JB = QC KB = QC
QB QC QB QC
QA 0 0 01 11 10 QA 00 01 11 10
0 1 X X 1 0 X 1 1 X
1 1 X X 1 1 X 1 1 X
JC = 1 KC = 1
7-20
บทที่ 7 วงจรนับ
7-21
บทที่ 7 วงจรนับ
ตัวอย่ างที่ 7.4 จงออกแบบสร้ า งวงจรนั บ แบบซิ ง โครนั ส ที่ มี ก ารนั บ ดั ง สเตต
ไดอะแกรมในรู ปที่ 7.13
วิธีทาํ
ก. ขั้นตอนที่ 1 พิจารณาจํานวนฟลิปฟลอปที่จะนํามาใช้ พบว่าวงจรนี้นบั
สูงสุ ดที่ (1111)2 เป็ นวงจรนับขนาด 4 บิต จึงต้องใช้ฟลิปฟลอปจํานวน 4 ตัว
7-22
บทที่ 7 วงจรนับ
JA = QC KA = QD
JB = QA KB = QA
7-23
บทที่ 7 วงจรนับ
JC = QB KC = QB
JD = QC KD = QC
7-24
บทที่ 7 วงจรนับ
ตอบ
7-25
บทที่ 7 วงจรนับ
3 5 0 2 6 3 5 0 2 6 …
วิธีทาํ
000
101 010
011 110
7-26
บทที่ 7 วงจรนับ
QB QC QB QC
QA 00 01 11 10 QA 00 01 11 10
0 0 X 1 1 0 1 X 0 1
1 X 0 X 0 1 X 0 X 1
DA = QA QB DB = QC
QB QC
QA 0 0 01 11 10
0 0 X 1 0
1 X 0 X 1
DC = QA QB + QB QC
7-27
บทที่ 7 วงจรนับ
7-28
บทที่ 7 วงจรนับ
2-Bit X0
Clock up/down
counter X1
S
รู ปที่ 7.17 สัญลักษณ์ลอจิกสําหรับวงจรนับขึ้นและลง 2 บิต
เมื่อสวิตช์ S = 0 กําหนดให้นบั ลง และ S = 1 กําหนดให้นบั ขึ้น
7-29
บทที่ 7 วงจรนับ
วิธีทาํ
00
S=1 S=1
S=0 S=0
11 01
S=0 S=0
S=1 S=1
10
7-30
บทที่ 7 วงจรนับ
QB S
QA 00 01 11 10
0 1 0 1 0
1 0 1 0 1
QB S
QA 00 01 11 10
0 1 1 0 0
1 1 1 0 0
DB = QB
ตอบ
7-31
บทที่ 7 วงจรนับ
X0 (LSB) X1 (MSB)
S
DB QB DA QA
CK CK
QB’ QA’
Clock
7-32
บทที่ 7 วงจรนับ
วิธีทาํ
จากสมการอินพุตที่ได้
DA = QA QB
DB = QC
DC = QA QB + QB QC
ได้สมการการเปลี่ยนแปลง
(QA)n+1 = DA
= QA QB
(QB)n+1 = DB
= QC
(QC)n+1 = DC
= QA QB + QB QC
ได้ตารางสเตต เป็ น
7-33
บทที่ 7 วงจรนับ
mn mn +1
m0 m2
m1 m0
m2 m6
m3 m5
m4 m2
m5 m0
m6 m3
m7 m1
m0
m7 m1
m6 m2
m5 m3
m4
7-34
บทที่ 7 วงจรนับ
ตอบ
7.1 จงออกแบบวงจรนับต่อไปนี้
7.1.1 วงจรนับ Mod-7
7.1.2 วงจรนับ Mod-11
7.1.3 วงจรนับ Mod-4 (นับถอยหลัง)
7.2 จากวงจรนับที่ มีการนับดังสเตตไดอะแกรมรู ปข้างล่ าง จงหาสมการอิ นพุต
ของฟลิปฟลอปและออกแบบวงจรดังกล่าวด้วย
7-35
บทที่ 7 วงจรนับ
1 Y=1
3 Y=0 6
2 4
7-36