Post on 15-Jan-2020
434 การประยกุตใ์ชว้งจรดิจิตอลจากเง่ือนไขท่ีก าหนด
บทที่ 20 การประยุกต์ใช้วงจรดจิิตอลจากเง่ือนไขที่ก าหนด
การศึกษาวิชาการออกแบบระบบดิจิตอล ผลที่เราคาดหวงัจากการศึกษาคือการที่
สามารถที่จะน าส่ิงที่ได้ศึกษามาประยุกต์ใช้ได้ ดังนั้ นในบทน้ีเราจะศึกษาตัวอย่างการประยกุตใ์ชว้งจรดิจิตอลแบบต่างๆ ที่ไดศึ้กษามา เพือ่เป็นแนวทางในการน าไปใชง้านต่อไป 20.1 การออกแบบวงจรคอมไบเนช่ันจากเง่ือนไข ตัวอย่างที่ 20.1 จงออกแบบวงจรเลือกเสน้ทางตามแผนผงัที่ก าหนดให ้โดยเลือกเสน้ทางที่สั้นและเดินทางไดร้วดเร็วที่สุด โดยการโยกสวติซ์เลือกดงัรูปดา้นล่าง
(ก)
การประยกุตใ์ชว้งจรดิจิตอลจากเง่ือนไขท่ีก าหนด 435
รูปที่ 20.1 แผนผงัเสน้ทางที่ก าหนด วธีิท า (1) วเิคราะห์ Output จากตารางความจริง - จากความเป็นไปไดใ้นการสบัสวทิซ์ ไดท้ีละ 2 สวทิซ์ จะได ้6 สถานะ
- เม่ือพจิารณาระยะทางแลว้ Hwy 4 และ Hwy 5 จะไม่ไดใ้ชเ้พราะระยะทางไกล
รูปที่ 20.2 แสดงการพจิารณาเสน้ทาง
436 การประยกุตใ์ชว้งจรดิจิตอลจากเง่ือนไขท่ีก าหนด
(2) จากการพจิารณาเสน้ทางต่างๆ สามารถสรุปเป็นตารางไดด้งัตารางดา้นล่าง
A B C D Hwy 1 Hwy 2 Hwy 3 Hwy 4 Hwy 5 Hwy 6
0 0 0 0 0 0 0 - - 0 0 0 0 1 0 0 0 - - 0 0 0 1 0 0 0 0 - - 0
0 0 1 1 0 0 0 - - 1
0 1 0 0 0 0 0 - - 0
0 1 0 1 1 0 1 - - 0
0 1 1 0 1 1 0 - - 0
0 1 1 1 0 0 0 - - 0 1 0 0 0 0 0 0 - - 0 1 0 0 1 0 0 1 - - 0
1 0 1 0 0 1 0 - - 0
1 0 1 1 0 0 0 - - 0 1 1 0 0 1 0 0 - - 0
1 1 0 1 0 0 0 - - 0 1 1 1 0 0 0 0 - - 0 1 1 1 1 0 0 0 - - 0
(3) สามารถสรุปสภาวะที่จะให ้LED ติดไดด้งัน้ี A B C D Hwy 1 Hwy 2 Hwy 3 Hwy 4 Hwy 5 Hwy 6
0 0 1 1 0 0 0 - - 1 0 1 0 1 1 0 1 - - 0 0 1 1 0 1 1 0 - - 0 1 0 0 1 0 0 1 - - 0 1 0 1 0 0 1 0 - - 0
การประยกุตใ์ชว้งจรดิจิตอลจากเง่ือนไขท่ีก าหนด 437
1 1 0 0 1 0 0 - - 0 (4) จากตารางเขียนสมการลอจิกไดด้งัน้ี
Hwy 1 = C D + C D + ABC D Hwy 2 = BC D + AC D Hwy 3 = BC D + A C D Hwy 6 = C D (5) เม่ือน าสมการลอจิกมาต่อเป็นวงจรจะไดด้งัรูป
438 การประยกุตใ์ชว้งจรดิจิตอลจากเง่ือนไขท่ีก าหนด
รูปที่ 20.3 วงจรที่ไดจ้ากการออกแบบ (6) จากวงจรสามารถออกแบบดว้ยภาษา VHDL ไดด้งัน้ี
library ieee;
use ieee.std_logic_1164.all;
entity not_gate is
port ( in1: in std_logic;
output: out std_logic);
end not_gate;
architecture behv1 of not_gate is
begin
process (in1)
begin
output<=not in1 ;
end process;
end behv1;
-----------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
entity and_gate is
port ( in1,in2,in3,in4: in std_logic;
output: out std_logic);
end and_gate;
architecture behv2 of and_gate is
begin
process (in1,in2,in3,in4)
begin
output<= in1 and in2 and in3 and in4;
end process;
end behv2;
-----------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
entity or_gate2 is
port ( in1,in2: in std_logic;
output: out std_logic);
end or_gate2;
architecture behv3 of or_gate2 is
begin
process (in1,in2)
begin
output<= in1 or in2 ;
end process;
end behv3;
-----------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
use work.all;
entity Trip_Genis is
port ( input1,input2,input3,input4: in std_logic;
output1,output2,output3,output4: out std_logic);
end Trip_Genis;
architecture struct of Trip_Genis is
การประยกุตใ์ชว้งจรดิจิตอลจากเง่ือนไขท่ีก าหนด 439
component not_gate
port ( in1: in std_logic;
output: out std_logic);
end component;
component and_gate
port ( in1,in2,in3,in4: in std_logic;
output: out std_logic);
end component;
component or_gate2
port ( in1,in2: in std_logic;
output: out std_logic);
end component;
signal i1,i2,i3,i4,m1,m2,m3,m4,m5,s:std_logic;
begin
u1 : not_gate port map(input3,i1);
u2 : not_gate port map(input4,i2);
u3 : not_gate port map(input2,i3);
u4 : not_gate port map(input1,i4);
u5 : and_gate port map(input1,input2,i1,i2,m1);
u6 : and_gate port map(input1,i3,i1,input4,m2);
u7 : and_gate port map(input1,i3,input3,i2,m3);
u8 : and_gate port map(i4,input2,i1,input4,m4);
u9 : and_gate port map(i4,input2,input3,i2,m5);
u10: and_gate port map(i4,i3,input3,input4,output4);
u11: or_gate2 port map(m1,m2,s);
u12: or_gate2 port map(s,m3,output1);
u13: or_gate2 port map(m2,m4,output2);
u14: or_gate2 port map(m3,m5,output3);
end struct;
รูปที่ 20.4 แสดงการออกแบบวงจรดว้ยภาษา VHDL
440 การประยกุตใ์ชว้งจรดิจิตอลจากเง่ือนไขท่ีก าหนด
20.2 การออกแบบวงจรซีเควนเชียลจากเง่ือนไข ตัวอย่างที่ 20.2 จงออกแบบวงจรเคร่ืองใหจ้งัหวะเคร่ืองดนตรีโดยมีเง่ือนไขดงัต่อไปน้ี (1) แสดงผลการนบัจงัหวะเป็นตวัเลข 1 หลกั (2) แสดงผลการนบัจงัหวะดว้ย LED 4 ดวง ตามหอ้งของจงัหวะดนตรี (3) แสดงผลการนบัดว้ยเสียงโดยใชบ้ซัเซอร์
วธีิท า (1) ออกแบบ Block Diagram ของวงจรเคร่ืองให้จงัหวะเคร่ืองดนตรี
รูปที่ 20.5 Block Diagram ของวงจรเคร่ืองให้จงัหวะเคร่ืองดนตรี
Counter Circuit
Decoder Circuit
Combination Sequential
Analog Circuit
LED 1
LED 2
LED 3
LED 4
7 Segment
Buzzer
การประยกุตใ์ชว้งจรดิจิตอลจากเง่ือนไขท่ีก าหนด 441
(2) ออกแบบวงจร Counter และ Decoder (ก) ออกแบบวงจร Counter นบั 4 เป็นส่วนของ Sequential Circuit
รูปที่ 20.6 วงจรส่วนของ Sequential Circuit
(ข) ออกแบบวงจรDecoder เป็นส่วนของ Combination Circuit
ตารางสภาวะวงจร Decoder
INPUT OUTPUT Decimal
A B a b c d e f g LED1 LED2 LED3 LED4
0 0 1 1
0 1 0 1
0 1 1 0
1 1 1 1
1 0 1 1
0 1 1 0
0 1 0 0
0 0 0 1
0 1 1 1
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 2 3 4
442 การประยกุตใ์ชว้งจรดิจิตอลจากเง่ือนไขท่ีก าหนด
(3) ใชผ้งั K-map ในการลดรูปสมการ
B A 0 1 B A 0 1 B A 0 1 B A 0 1
0 0 0 0 1 1 1 1
a = + b = 1 c = + A d = +
B A 0 1 B A 0 1 B A 0 1 B A 0 1
0 0 0 0 1 1 1 1
e = f = AB g = B + A LED1 =
B A 0 1 B A 0 1 B A 0 1
0 0 0 1 1 1
LED2 = LED3 = LED4 = AB
รูปที่ 20.7 แสดงการลดรูปสมการดว้ยแผนผงัคาร์โนห์
0 1
1 0
1 0
1 1
1 1 1 0
1 1
0 1
0 1
1 0 1 0
0 0
1 0
1 0
0 0
0 1 1 0
0 1
1 1 1 0
1 0
0 0
1 0
0 0
1 0
0
0 1
0 0
1 0
0 0
0 1
1 0
การประยกุตใ์ชว้งจรดิจิตอลจากเง่ือนไขท่ีก าหนด 443
(4) วงจรที่ไดจ้ากสมการ ในผงั K-map
รูปที่ 20.8 วงจรในส่วนของการถอดรหสัที่ไดจ้ากการลดรูปสมการ
444 การประยกุตใ์ชว้งจรดิจิตอลจากเง่ือนไขท่ีก าหนด
(5) จากวงจรน ามาเขียนภาษา VHDL ไดด้งัน้ี
library ieee;
Use ieee.std_logic_1164.all;
------------------------------------------
Entity Music_Step is
Port( A,B: in std_logic;
a_s,b_s,c,d,e,f,g,Led1,Led2,Led3,Led4: out
std_logic);
End Music_Step ;
----------------------------------------
Architecture behv of Music_Step is
Begin
Process(A,B)
Begin
a_s <= A xor B;
b_s <= '1';
c <= (not B) or B;
d <= A xor B;
e <= (not A) and B;
f <= A and B;
g <= B or A;
Led1 <= (not A )and (not B);
Led2 <= (not A )and B;
Led3 <= A and (not B);
Led4 <= A and B;
End Process;
End behv ;
รูปที่ 20.9 แสดงการน าวงจรที่ไดจ้ากการลดรูปมาเขียนสมการ
การประยกุตใ์ชว้งจรดิจิตอลจากเง่ือนไขท่ีก าหนด 445
20.3 การประยุกต์ใช้วงจรรวมในการแปลงระหว่างดิจิตอลและอนาลอ็ก จากวงจรการแปลงอนาลอกเป็นดิจิตอล และดิจิตอลเป็นอนาล็อกในบทที่แลว้
เราสามารถน าวงจรรวมมาประยกุตใ์ชไ้ด้ดงัตวัอยา่งด้านล่างน้ี วงจรการต่อ ADCO804 เพื่อทดสอบการท างานในกระบวนการแปลงอนาล็อกเป็นดิจิตอลแสดงในรูปที่ 20.9 โดยต่อแรง ดนัอนาลอกอินพตุเขา้ที่ขา Vin (+) และ Vin (-) ต่อจุดดินใช ้R 10 k เป็นชนิดปรับค่าได้ปรับค่าแรงดันด้านเขา้ของวงจรตั้งแต่ 0 ถึง 5.12 V สวิตช์สตาร์ท (Start) ต่อเขา้กับขา WR และ INTR ส าหรับขา CS และ RD ต่อลงจุดดิน ขาสัญญาณนาฬิกา CLK out, CLK in ต่อ R, C ภายนอก โดยใชส้ญัญาณนาฬิกาภายใน ADC0804 และขา Vref /2 เปิดวงจร ดงันั้นจะรับ Vin ได ้0-5 V และมีค่าความแยกชัดเท่ากับ 19.6 mV ต่อบิต เม่ือปรับค่า R 10 k ด้านอินพุตไปต าแหน่งต ่าสุด (Vin = 0 V) ไบนารีเอาตพ์ุตจะเป็น “0” ทั้ง 8 บิต และเม่ือปรับค่า R 10 k ไปต าแหน่งสูงสุด (Vin - 5 V) ไบนารีเอาตพ์ตุจะเป็น “1” ทั้ง 8 บติ
รูปที่ 20.10 วงจรการทดสอบ ADC0804 ท าหนา้ที่เป็นตวัแปลง A/D
เม่ือน าวงจรรวมเบอร์ ADC0804 ไปสร้างประยกุตเ์ป็นมิเตอร์วดัแสง (Light meter) ได้ดงัรูปที่ 20.10 โดยต่อโฟโตเ้ซลล์ในวงจรคือ R3 ดงันั้นการเปล่ียนแปลงค่า R ของโฟโตเ้ซลล์จะท าให้แรงดันตกคร่อม R2 (แรงดัน Vin) เปล่ียนแปลงไป ผลคือขอ้มูลดิจิตอลเอาต์พุต จะเปล่ียนแปลงไปตามปริมาณความสวา่งของแสงที่ตกกระทบโฟโตเ้ซลล ์(R3)
446 การประยกุตใ์ชว้งจรดิจิตอลจากเง่ือนไขท่ีก าหนด
รูปที่ 20.11 วงจรการวดัแสงดว้ย ADC0804 วงจรการวดัแสงด้าย ADC0804 สามารถดัดแปลงให้แสดงผลกับตวัแสดงผลเลข 7
ส่วน ชนิดแอโนดร่วม โดยใช้ตวัขบัชนิดทีทีแอลเบอร์ 7447 ดังรูปที่ 20.11 โดยใช้ดิจิตอลเอาตพ์ุตเพียง 4 บิต D7 – D4 และใชส้ัญญาณนาฬิกาความถ่ี 1Hz จากวงจรอะสเตเบิลที่ใชไ้ทม์เมอร์เบอร์ 555 เพื่อให้วงจรรวม ADC0804 อ่านค่าการเปล่ียนแปลงความสว่างของแสงที่ตกกระทบ R3 ทุก 1 วนิาที
รูปที่ 20.12 วงจรวดัแสงที่แสดงผลดว้ยตวัเลข 7 ส่วน อ่านค่าทุก 1 วนิาที
การประยกุตใ์ชว้งจรดิจิตอลจากเง่ือนไขท่ีก าหนด 447
แบบฝึกหัดที่ 20 1. จงยกตวัอยา่งวงจรการประยกุตใ์ชดิ้จิตอลกบัชีวติประจ าวนัมา 3 วงจร 2. น าวงจรที่ยกตวัอยา่งทั้ง 3 วงจร ในขอ้ 1 มาออกแบบ 3. เขียนวงจรจากขอ้ 2 ดว้ยภาษา VHDL